Centos 7.3 简便搭建EFK日志分析

xinlugang 2020-04-15

EFK 不是一个软件,而是一套解决方案。EFK 是三个开源软件的缩写,Elasticsearch,FileBeat,Kibana。其中 ELasticsearch 负责日志分析和存储,FileBeat 负责日志收集,Kibana 负责界面展示。它们之间互相配合使用,完美衔接,高效的满足了很多场合的应用,是目前主流的一种日志分析系统解决方案。
EFK 和 ELK 只有一个区别, 收集日志的组件由 Logstash 替换成了 FileBeat,因为 Filebeat 相对于 Logstash 来说有2个好处:
1、侵入低,无需修改 elasticsearch 和 kibana 的配置;
2、性能高,IO 占用率比 logstash 小太多;

ELK可参考:https://blog.51cto.com/14227204/2442249
当然 Logstash 相比于 FileBeat 也有一定的优势,比如 Logstash 对于日志的格式化处理能力,FileBeat 只是将日志从日志文件中读取出来,当然如果收集的日志本身是有一定格式的,FileBeat 也可以格式化,但是相对于Logstash 来说,效果差很多。

Filebeat 隶属于 Beats。目前 Beats 包含六种工具:

* Packetbeat(搜集网络流量数据)
* Metricbeat(搜集系统、进程和文件系统级别的 CPU 和内存使用情况等数据)
* Filebeat(搜集文件数据)
* Winlogbeat(搜集 Windows 事件日志数据)
* Auditbeat( 轻量型审计日志采集器)
* Heartbeat(轻量级服务器健康采集器)

另外,EFK 系统下的各个组件都非常吃内存,后期根据业务需要,EFK 的架构可进行扩展,当 FileBeat 收集的日志越来越多时,为防止数据丢失,可引入 Redis,而 ElasticSearch 也可扩展为集群,并使用 Head 插件进行管理, 所以要保证服务器有充足的运行内存和磁盘空间。
一、开始部署
1、安装elasticsearch:

[ /]# mkdir efk            # 个人习惯
[ /]# cd efk/
[ efk]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz
[ efk]# tar zxf elasticsearch-6.2.4.tar.gz -C /usr/local/
[ efk]# cd /usr/local/
[ /]# useradd es
[ local]# mv elasticsearch-6.2.4/ es/
[ local]# sed -i ‘s/#network.host: 192.168.0.1/network.host: 0.0.0.0/g‘ /usr/local/es/config/elasticsearch.yml 
[ local]# sed -i ‘s/#http.port: 9200/http.port: 9200/g‘ /usr/local/es/config/elasticsearch.yml 
[ local]# su es         # 切换用户启动服务
[ local]$ /usr/local/es/bin/elasticsearch -d    # 服务后台运行

如果遇到错误:max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

[ local]# echo ‘* soft nofile 819200‘ >> /etc/security/limits.conf
[ local]# echo ‘* hard nofile 819200‘ >> /etc/security/limits.conf 
[ local]# echo ‘* soft nproc 2048‘ >> /etc/security/limits.conf 
[ local]# echo ‘* hard nproc 4096‘ >> /etc/security/limits.conf 
[ local]# echo ‘vm.max_map_count=655360‘ >> /etc/sysctl.conf 
[ local]# sysctl -p
vm.max_map_count = 655360

2、安装kibana:

[ local]# cd /efk/
[ efk]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz
[ local]# mv kibana-6.2.4-linux-x86_64/ kibana/
[ local]# sed -i ‘s/#kibana.index: ".kibana"/kibana.index: ".kibana"/g‘ /usr/local/kibana/config/kibana.yml 
[ local]# sed -i ‘s/#server.port: 5601/server.port 5601/g‘ /usr/local/kibana/config/kibana.yml 
[ local]# sed -i ‘s/#server.host: "localhost"/server.host "0.0.0.0"/g‘ /usr/local/kibana/config/kibana.yml 
[ local]# sed -i ‘s/#elasticsearch.url: "http://localhost:9200"/elasticsearch.url: "http://localhost:9200"/g‘ /usr/local/kibana/config/kibana.yml 
[ /]# /usr/local/kibana/bin/kibana &

3、安装filebeat:

[ /]# cd /efk/
[ efk]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz
[ efk]# tar zxf filebeat-6.2.4-linux-x86_64.tar.gz -C /usr/local/
[ local]# mv filebeat-6.2.4-linux-x86_64/ filebeat/
[ local]# vim /usr/local/filebeat/filebeat.yml
#找到如下类似内容进行修改
filebeat.prospectors:
- type: log
enabled: true
 paths:
    - /etc/httpd/logs/*_log                      # 指定日志文件存放位置
multiline.pattern: ^\[
multiline.negate: true
multiline.match: after
setup.kibana:
        host: 192.168.171.134
output.elasticsearch:
  hosts: ["192.168.171.134:9200"]
#配置一定要注意格式,是以2个空格为子级,里面的配置都在配置文件中,列出来的只是
要修改的部分,enabled默认为false,需要改成true才会收集日志。其中/var/xxx/*.log修改
为自己的日志路径,注意-后面有一个空格,
如果多个路径则添加一行,一定要注意新行前面的4个空格,multiline开头的几个配置取消
注释就行了,是为了兼容多行日志的情况,setup.kibana中的host取消注释,根据实际情
况配置地址,output.elasticsearch中的host也一样,根据实际情况配置
[ local]# ./filebeat/filebeat -c /usr/local/filebeat/filebeat.yml             # 启动服务

二、配置Kibana
浏览器访问:

Centos 7.3 简便搭建EFK日志分析
Centos 7.3 简便搭建EFK日志分析
Centos 7.3 简便搭建EFK日志分析
至此EFK就搭建完毕了,可以点击descover来查看信息

相关推荐