xinlugang 2020-04-15
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
浏览器访问:
至此EFK就搭建完毕了,可以点击descover来查看信息
另外一部分,则需要先做聚类、分类处理,将聚合出的分类结果存入ES集群的聚类索引中。数据处理层的聚合结果存入ES中的指定索引,同时将每个聚合主题相关的数据存入每个document下面的某个field下。