Linux操作篇之ELK

一、介绍

1、ELK是一个完整的集中的日志收集分析系统。包含以下特点:

a、能够收集多种源的日志数据

b、能够稳定的把日志数据传输到中间系统

c、多种存储日志数据的方式

d、可以支持可视化界面分析

e、能够提供错误报告、提前预警

2、ELK是三个软件首字母缩写,分别是

elasticsearch:分布式搜索引擎,提供收集、分析、存储三大功能

logstash:收集、分析、过滤日志的工具,支持大量的数据收集方式。工作方式为C/S模式。client安装在需收集日志的设备上,server端负责将各个client收集到的日志进行过滤、修改后发往elasticsearch。

kibana:可以为前面两者提供良好的UI界面,帮助提高对日志的汇总、分析和搜索等功能的友好度。

3、上面三者组成了ELK,但一般情况下还需要client,filebeat提供了这一功能。内涵四种功能:

packetbeat:收集网络流量数据

topbeat:收集系统的进程、CPU、内存等使用运行情况

filebeat:收集文件数据

winlogbeat:收集Windows中的事件日志数据

4、工作流程

测试部署过程(此处设计两台,一台为ELK_server,一台为Nginx_server)

二、ELK_server端:

环境准备:关闭防火墙、关闭SELinux(因为是测试环境,就关闭了)。

yum -y install java-1.8*  (安装jdk,ELK需要java环境)

1、安装elasticsearch

上传elasticsearch安装包

tar -xzf elasticsearch-7.9.0-linux-x86_64.tar.gz

useradd elasticsearch  (因为elasticsearch启动不能用root用户,所有新建一用户)

chown -R elasticsearch.elasticsearch elasticsearch-7.9.0  (将目录权限改为新建的用户)

cp -a elasticsearch-7.9.0 /usr/local

su elasticsearch

cd /usr/local/elasticsearch-7.9.0

./bin/elasticsearch -d

查看服务是否启动成功

netstat -antp | grep 9200

或者使用curl  localhost:9200

 表示启动成功。

2、安装logstash

上传logstash软件包

tar -xzf logstash-6.8.15.tar.gz

cp -a logstash-6.8.15  /usr/local

vi /usr/local/logstash-6.8.15/vendor/bundle/jruby/2.5.0/gems/logstash-patterns-core-4.1.2/patterns/grok-patterns

最下面新起一行,填写以下代码。

# nginx
WZ ([^ ]*)
NGINXACCESS %{IP:remote_ip} \- \- \[%{HTTPDATE:timestamp}\] "%{WORD:method} %{WZ:request} HTTP/%{NUMBER:httpversion}" %{NUMBER:status} %{NUMBER:bytes} %{QS:referer} %{QS:agent} %{QS:xforward}

完成后,保存退出

vi /usr/local/logstash-6.8.15/test.conf  (新建配置文件,启动服务时需要)

input {
    beats {
        port => "5044"
    }
}
#数据过滤
filter {
    grok {
        match => { "message" => "%{NGINXACCESS}" }
    }
    geoip {
        #nginx端IP地址
        source => "192.168,171.140"
    }
}
#输出配置为本机端口9200端口,这是elasticsearch端口
output {
    elasticsearch {
        hosts => ["127.0.0.1:9200"]
    }
}

完成后,保存退出

启动服务(服务启动较慢)

nohup /usr/local/logstash-6.8.15/bin/logstash -f /usr/local/logstash-6.8.15/test.conf &

查看服务启动情况:netstat  -anpt  | grep 5044

3、安装Kibana

上传Kibana安装包

tar -xzf kibana-7.9.0-linux-x86_64.tar.gz

cp -a kibana-7.9.0-linux-x86_64 /usr/local

vi /usr/local/kibana-7.9.0-linux-x86_64/config/kibana.yml

将 #server.port: 5601  改为 server.port: 5601

将 #server.host: "localhost"  改为 server.host: "192.168.171.141"  (这样其他电脑通过浏览器进行访问了)

启动服务(启动过程耗时较长)

nohup  /usr/local/kibana-7.9.0-linux-x86_64/bin/kibana  --allow-root &

查看服务:netstat -anpt | grep 5601

启动成功后,可以通过浏览器进行访问了(IP:5601)

至此,server端的安装完成。

三、Nginx_server端配置

1、安装nginx服务(因为是测试,所以选用yum安装方式)

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum -y install nginx


2、上传filebeat,解压。
tar -xzf filebeat-7.9.0-linux-x86_64.tar.gz
cp -a filebeat-7.9.0-linux-x86_64 /usr/local/

3、修改配置文件并启动服务

cd /usr/local/filebeat-7.9.0-linux-x86_64/
vi filebeat.yml
enable:false  修改为true
paths:/var/log/*.log 修改为/var/log/nginx/*.log

output.elasticsearch  修改为  output.logstash   (也可以将此注释掉,下面注释中有)

hosts:["localhost:9200"]  修改为  hosts:[server端IP:5044]  

nohup ./usr/local/filebeat-7.9.0-linux-x86_64/filebaet -e -c filebeat.yml &

4、设置并查看

点击 Discover

输入logstash-* 点击 next

选择时间,就可以查看了

本人小白一个^^ QQ:641055499,欢迎骚扰!
原文地址:https://www.cnblogs.com/641055499-mozai/p/15514891.html