ELK是Elastic企业的ElasticSerach、Logstash、Kibana三款产品名称的首字母集合,用于日志的搜索,收集,可视化查看。
使用到的四个组件介绍:
测试环境说明:
系统:centos7
nginx: 1.18
ELK+Filebeat: 8.4.1
重下面网址下载linux-x86_64安装包
https://www.elastic.co/cn/downloads/elasticsearch
https://www.elastic.co/cn/downloads/kibana
https://www.elastic.co/cn/downloads/logstash
https://www.elastic.co/cn/downloads/beats/filebeat
上传文件到服务器上面
解压文件
cd /home/elk
tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz
tar -zxvf logstash-8.4.1-linux-x86_64.tar.gz
tar -zxvf kibana-8.4.1-linux-x86_64.tar.gz
tar -zxvf filebeat-8.4.1-linux-x86_64.tar.gz
nginx安装请参考: 点我跳转
因为ElasticSerach运行时不允许以root用户身份的,所以这里需要手动创建用户并分配权限,具体如下:
创建用户
#创建用户组
groupadd elk
#创建用户加入用户组
useradd elk -g elk
#设置/home/elk文件夹归属elk用户和用户组
chown -R elk:elk /home/elk/
#切换用户
su elk
编辑系统文件
vi /etc/security/limits.conf
#在尾部添加下面4行内容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
:wq #保存退出
vi /etc/sysctl.conf
#在尾部添加下面1行内容:
vm.max_map_count=262144
:wq #保存退出
刷新配置重启系统
#加载sysctl配置
sysctl -p
#重启系统
reboot
编辑elasticsearch配置文件
elasticsearch-8.4.1版本默认开启了安全配置需要用https协议访问,为了方便测试我这边改成http协议访问
vi elasticsearch-8.4.1/config/elasticsearch.yml
:set nu #显示行号
#network.host: 192.168.0.1 去注释56行修改成下面
network.host: 0.0.0.0
#下面可以改成用security配置,用http协议访问(如果没有在尾部添加下面2行)
xpack.security.enabled: false #98行
xpack.security.enrollment.enabled: false #100行
:wq #保存退出
启动服务
-d 以守护进程方式启动
/home/elk/elasticsearch-8.4.1/bin/elasticsearch -d
使用 curl http://127.0.0.1:9200/ 查看elasticsearch运行信息
使用 curl http://127.0.0.1:9200/_cat/health?v 查看集群健康情况
status代表着集群状态,它有三种
基于模板配置复制一份配置文件
cp /home/elk/logstash-8.4.1/config/logstash-sample.conf /home/elk/logstash-8.4.1/config/filebeat.conf
修改filebeat.conf配置
vi /home/elk/logstash-8.4.1/config/filebeat.conf
改完按:wq保存退出
指定配置文件启动Logstash服务
nohup /home/elk/logstash-8.4.1/bin/logstash -f /home/elk/logstash-8.4.1/config/filebeat.conf
需要配置采集日志的输入源和数据输出源改成Logstash
vi /home/elk/filebeat-8.4.1-linux-x86_64/filebeat.yml
启动filebeat服务
#可以在命令前面加nohup命令以守护进程启动
/home/elk/filebeat-8.4.1-linux-x86_64/filebeat -e -c /home/elk/filebeat-8.4.1-linux-x86_64/filebeat/filebeat.yml
可以看到日志正常打印表示启动成功
修改server.host成部署服务的ip用于在浏览器访问
vi /home/elk/kibana-8.4.1/config/kibana.yml
启动kabana
#可以在命令前面加nohup命令以守护进程启动
/home/elk/kibana-8.4.1/bin/kibana
点击左侧菜单里的Dev Tools工具
通过GET获取收集的nginx日志
在控制面版输入下面的命令
GET /nginx_log/_search
nginx_log为Logstash配置文件里定义的索引名称
右下角的表格显示的是收集的日志数据,可以分页查看
可以点击左上角的下拉框切换视图查看其它数据
到此本文的内容就结束了,由于写作水平有限,写的不合理或有问题的地方麻烦各位同学在评论中指出。