背景
随着微服务盛行,造成日志分散到各个服务器各个系统中,与传统单服日志单一不同,日志的追踪,查错等就会显得很吃力,效率极其低下,所以需要一款软件能将各个系统中的日志收集并标记,然后形成统一的搜索、查看界面,并且需要高效的查询(因为随着日积月累日志将会G级别甚至T级别),所以elasticsearch+filebeat+kibana很好的解决了这个问题。
原理
通过filebeat扫描目标日志文件实现日志的收集、解析,并发送至elasticsearch保存,然后kibana通过elasticsearch的高效搜索引擎实现日志的多方位展示。之所是这个组合是因为filebeat是一款轻量级日志采集器,相比于以前的elk架构中的Logstash,filebeat更轻量CPU和内存的占用几乎可以忽略不记,而使用elasticsearch则能保证在巨大数据下快速搜索出想要的结果,同时他是一款搜索引擎支持丰富的查询语法。
安装
一、elasticsearch安装
1、下载elasticsearch(文末有链接)
2、解压tar -xvf elasticsearch-6.5.4.tar.gz
3、修改vi elasticsearch-6.5.4/config/elasticsearch.yml
找到#network.host: 10.147.17.27改成network.host: 你的IP
4、vi /etc/security/limits.conf
添加配置如下:
* soft nofile 65536
* hard nofile 65536
5、vi /etc/sysctl.conf
添加内容如下:
vm.max_map_count=655360
执行sysctl -p使生效
6、添加es用户
groupadd elsearch
useradd elsearch -g elsearch -p elasticsearch
chown -R elsearch:elsearch elasticsearch-6.5.4
7、启动elasticsearch
su elsearch
elasticsearch-6.5.4/bin/elasticsearch -d
查看elasticsearch-6.5.4/logs/elasticsearch.log是否启动成功
二、filebeat安装
1、下载filebeat(文末有链接)
2、tar -xvf filebeat-6.5.4-linux-x86_64.tar.gz
3、vi filebeat.yml
找到filebeat.inputs:
添加你要采集的目标文件(支持多组)
- type: log
enabled: true
paths:
- /data/tomcat/logs/*.log
找到output.elasticsearch:下的hosts修改成你的elasticsearch的ip端口
hosts: ["127.0.0.1:9200"]
4、执行如下命令启动filebeat
nohup ./filebeat -e -c filebeat.yml&
三、kibana安装
1、下载kibana(文末有链接)
2、tar -xvf kibana-6.5.4-linux-x86_64.tar.gz
3、vi config/kibana.yml
找到elasticsearch.url:修改成你elasticsearch的地址例如:
elasticsearch.url: "http://10.147.17.27:9200"
找到server.host:修改你当前kibana需要绑定的ip例如:
server.host: "10.147.17.27"
4、启动kibana
nohup bin/kibana &
5、打开kibana地址即可看到收集的日志例如
四、其他
所有文件下载地址:
elasticsearch-6.5.4,filebeat-6.5.4,kibana-6.5.4,logstash-6.5.4-Java文档类资源-CSDN下载