ELK从安装到部署的简单实现
ELK的工作流程
关于ELK的组件介绍就不长篇大论了,其他大神的文章写的很清楚,本文以7.0.0版本为例,有问题的老铁们欢迎讨论。本文所用的分别的filebeat,logstash,elasticsearch,kibana,如果数据格式直接就是json,且不用做任何过滤的话 可省去logstash。
上图展示的就是一个大概的工作流程:
1.beat收集日志,并output到logstash
2.logstash对beat收集的日志做过滤等处理,并output到es
3.es存储logstash处理过的日志,用以检索
4.kibana提供web操作界面,可对数据做可视化展示,画图等
ELK的安装
版本说明:ES,Logstash,Kibana,Filebeat安装的版本号必须全部一致,且Logstash必须装在非Windows系统上(ps.本文以版本号7.0.0为例,安装部署在ubuntu)
Elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.0.0-linux-x86_64.tar.gz
tar zxvf elasticsearch-7.0.0-linux-x86_64.tar.gz
cd elasticsearch-7.0.0-linux-x86_64
启动:./bin/elasticsearch
退出:Ctrl + c
Filebeat
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.0.0-linux-x86_64.tar.gz
tar zxvf filebeat-7.0.0-linux-x86_64.tar.gz
cd filebeat-7.0.0-linux-x86_64
启动:./ filebeat -e -c filebeat.yml
退出:Ctrl + c
Logstash
在装Logstash之前必须确保当前环境变量有JDK8的开发环境
https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.tar.gz
(有root权限的可以直接apt-get install,没有的话在windows上登录下载并拖到ubuntu上)
tar zxvf jdk-8u211-linux-x64.tar.gz
(没有root权限,可以配置当前用户的环境变量)
vim ~/.bashrc
source ~/.bashrc
验证是否存在
java -version
接下来安装Logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.0.0.tar.gz
tar zxvf logstash-7.0.0.tar.gz
cd logstash-7.0.0
启动:./bin/logstash
退出:Ctrl + c
Kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.0.0-linux-x86_64.tar.gz
tar zxvf kibana-7.0.0-linux-x86_64.tar.gz
cd kibana-7.0.0-linux-x86_64
启动:./bin/kibana
退出:Ctrl + c
配置文件的修改
Filebeat
cd filebeat-7.0.0-linux-x86_64
vim filebeat.yml
注意:此后的启动必须指定yml,否则启动不了
启动:./filebeat -e -c filebeat.yml
相关参数可以 ./filebeat -help 查看
Logstash
cd logstash-7.0.0/config/
vim demo.conf
注意:此后的启动命令 必须制定配置文件
启动:./bin/logstash -f config/demo.conf
Elasticsearch
es启动即可
Kibana
cd kibana-7.0.0-linux-x86_64
vim config/kibana.yml
至此,ELK基本流程所需的配置已经完成。接下来登录web页面,输入kibana的指定地址访问。
Web操作
登录kibana地址
因为后面部分是作者第二天开始写的,公司测试环境的es用的是5.6.4,所以下面开始的kibana截图全部为5.6.4版本,不过和7.0.0版本的具体操作都一样,可放心操作。
总结
1.kibana会自动更新数据,可以设置数据的展示量,默认是15分钟的,刷新可手动refresh。
2.Logstash的配置文件,注意地址端口。写grok的时候,可以先在下面的网站做简单的测试,https://grokdebug.herokuapp.com/ ,另附上一个grok自带表达式的网站 https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns ,若还是不可匹配出理想数据,可自行定义正则表达式。
3.本次流程未加入实时监控,可以通过kibana,x-pack设置引入。
4.ELK的简单实现到这里就完成了,作者也是磕磕碰碰尝试出来的,如有需要,将会在出几篇文章分别说一下这些组件以及组件的替换还有grok的自定义正则。