一、简介
在我们日常工作中,会经常通过grep等命令去查询日志。但在分布式系统中,一个应用部署在多台服务器上,查询起来效率极其低下。EFK旨在帮助我们将分布式系统中的日志进行采集并集中化管理,可帮助我们快速检索日志,高效的满足了很多场合的应用,目前EFK是一种主流的日志管理系统。ELK分别表示:Elasticsearch , Logstash, Kibana。EFK分别表示:Elasticsearch , Filebeat, Kibana。logstash 和filebeat都具有日志收集功能,filebeat更轻量,占用资源更少,但logstash 具有filter功能,能过滤分析日志。一般结构都是filebeat采集日志,然后发送到消息队列,redis,kafaka。然后logstash去获取,利用filter功能过滤分析,再存储到elasticsearch中。基于公司日志规模,便将filebeat日志发送到elasticsearch。
二、架构图
三、安装部署
1、环境准备
- Centos7.0
- jdk1.8
- elasticsearch-6.3.2 下载地址 集群搭建
- filebeat-6.3.2 下载地址
- kibana-6.3.2 下载地址
PS:EFK版本请保持一致。
2、filebeat 安装
下载FileBeat
wget https: //artifacts .elastic.co /downloads/beats/filebeat/filebeat-6 .3.2-linux-x86_64. tar .gz |
解压
tar -zxvf filebeat-6.2.4-linux-x86_64. tar .gz |
进入主目录,修改filebeat.yml
filebeat.prospectors: - type : log enabled: true paths: # 日志采集目录 - /var/xxx/ *.log multiline.pattern: ^\[ multiline.negate: true multiline.match: after setup.kibana: host: "192.168.1.1:5601" output.elasticsearch: hosts: [ "192.168.1.1:9200" ] |
启动filebeat
. /filebeat -e -c filebeat.yml -d "publish" |
后台启动
nohup . /filebeat -e -c filebeat.yml > filebeat.log 2>&1 & |
3、kibana 安装
下载Kibana
wget https: //artifacts .elastic.co /downloads/kibana/kibana-6 .3.2-linux-x86_64. tar .gz |
解压
tar -zxvf kibana-6.3.2-linux-x86_64. tar .gz |
进入主目录,修改配置
添加以下配置或者取消注释并修改
server.port: 5601 server.host: "0.0.0.0" server.name: "kibana" elasticsearch.url: "http://192.168.18.187:9400" kibana.index: ".kibana" xpack.security.enabled: false #随便输入32位数字 xpack.reporting.encryptionKey: "122333444455555666666777777788888888" |
其中elasticsearch.url为Elasticsearch的地址,server.host默认是localhost,如果只是本地访问可以默认localhost,如果需要外网访问,可以设置为0.0.0.0
启动Kibana
./bin/kibana &
关闭
ps -ef|grep node
kill -9 port