ELK日志分析平台部署说明:
本方案以filebeat作为日志收集器部署到各个业务服务器,filebeat将收集的日志输出到日志服务器的logstash;
Logstash部署到日志服务器,接收各个服务器输出的日志后分类归纳,然后输出到elasticsearch按索引存储日志;
Elasticsearch部署至日志服务器,按index接收存储不同服务器不同项目的日志;
Kibana部署至日志服务器,提供检索分析日志的UI;
各组件之间的交互:
Filebeat跟Logstash在各服务器之间的交互(配置SSL)
Logstash跟Elasticsearch在本机交互,不对外网开放
Elasticsearch跟Kibana在本机交互,不对外网开放
Kibana开放外网访问(Nginx登录认证)
一、日志服务器的部署
1.下载ELK 安装包 https://www.elastic.co/downloads
本次说明部署7.1.0版本(版本需一致,可修改下载地址中的版本号),linux 64-BIT,java 1.8环境(必须);
下载Logstash、Elasticsearch、Kibana至日志服务器,建议新建个文件夹统一放置。
2.解压安装包,修改配置文件
tar.gz包解压:tar –zxvf [文件名]
a.Elasticsearch 配置:
进入解压目录的config文件夹,打开elasticsearch.yml
Log、数据(data)等文件位置等属性自行指定修改;不修改就存储默认路径下
启动ES不能由root启动,需要新建一个用户用于启动ES,这里创建用户
https://blog.csdn.net/wxs060524/article/details/81509229
打开/etc/security/limits.conf,在结尾添加如下内容(填自己的用户名):
esuser soft nofile 65536
esuser hard nofile 65536
esuser soft nproc 65536
esuser hard nproc 65536
打开/etc/sysctl.conf,结尾添加:vm.max_map_count=262144
先由root用户去修改配置,然后再用新用户启动,
然后进入bin目录启动ES:./elasticsearch -d
正常启动之后验证ES:curl localhost:9200
若显示以上json内容,则ES启动成功;
b. Kibana配置:
进入kibana的config目录,打开kibana.yml
确认端口,打开外网访问(server.host: "0.0.0.0"),配置ES地址
启动kibana:./kibana & 正常启动后退出窗口:exit
验证:浏览器输入 : ip:5601访问kibana页面。 ps -ef | grep kibana kill -9 +线程pid 关闭
c.logstash配置:
logstash需要在启动时指定输入输出参数,
新建一个.conf文件,例:/etc/logstash/logstash.conf(位置自选)
编辑logstash.conf文件
input { beats { codec => plain{ charset => "UTF-8" } port => 5044 } } filter { grok { match => { "message" => "\[%{LOGLEVEL:log_level}\]\[%{TIMESTAMP_ISO8601:log_timestamp}\]\[%{JAVALOGMESSAGE:log_classInfo}\]%{JAVALOGMESSAGE:log_msg}" } add_field => [ "received_at", "%{@timestamp}" ] } date { match => [ "log_timestamp", "yyyy-MM-dd HH:mm:ss,SSS" ] target => "@timestamp" remove_field => ["log_timestamp"] remove_field => ["log_msg"] } } output { elasticsearch { hosts => ["127.0.0.1:9200"] codec => plain{ charset => "UTF-8" } index => "%{[fields][logserver]}-%{[fields][logtype]}-%{+YYYY.MM.dd}" } } 该配置对应的日志格式: [INFO ][2019-02-12 17:12:18,616][ApiPayController:128] 获取用户支付配置信息:data=[] 进入bin目录启动logstash:./logstash -f /etc/logstash/logstash.conf & 启动和关闭logstash需要一定的时间;
二、业务服务器部署filebeat
解压tar.gz包之后,进入解压目录,修改filebeat.yml文件:
将原有的Filebeat inputs的配置注释;
修改output的配置:
取消elasticsearch的输出,改为输出至logstash
进入解压目录启动filebeat:./filebeat -e -c filebeat.yml &
正式启动用以下命令:(nohup ./filebeat -e -c filebeat.yml -d "publish" &