文章目录
- 1.简介
- 2.下载安装
- 3.ElasticSerach配置
- 4.Logstash配置
- 5.Filebeat配置
- 6.Kabana配置
- 6.1.通过ElasticSerach读取日志数据
- 6.2.可视化显示日志数据
1.简介
ELK是Elastic企业的ElasticSerach、Logstash、Kibana三款产品名称的首字母集合,用于日志的搜索,收集,可视化查看。
使用到的四个组件介绍:
- ElasticSerach: 位于 Elastic Stack 核心的分布式搜索和分析引擎。
- Logstash: 具有实时流水线能力的开源的数据收集引擎。Logstash可以动态统一不同来源的数据,并将数据标准化到您选择的目标输出。它提供了大量插件,可帮助我们解析,丰富,转换和缓冲任何类型的数据。
- Kibana: 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。
- Filebeat: Beats在是一个轻量级日志采集器,Filebeat是Beats下其中收集文件数据使用的。

2.下载安装
测试环境说明:
系统:centos7
nginx: 1.18
ELK+Filebeat: 8.4.1
重下面网址下载linux-x86_64安装包
https:///cn/downloads/elasticsearchhttps:///cn/downloads/kibanahttps:///cn/downloads/logstashhttps:///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安装请参考: 点我跳转
3.ElasticSerach配置

因为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代表着集群状态,它有三种
- green: 集群所有数据都是可以访问的
- yellow: 集群所有数据都是可以访问的,但一些数据的副本还没有分配
- red: 集群部分数据不可访问
4.Logstash配置
基于模板配置复制一份配置文件
cp /home/elk/logstash-8.4.1/config/logstash-sample.conf /home/elk/logstash-8.4.1/config/filebeat.conf修改filebeat.conf配置
- 如果elasticsearch和logstash不是在同一台机器需要修改host字段为elasticsearch服务部署的ip
- 把index字段内容改成nginx_log
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
5.Filebeat配置
需要配置采集日志的输入源和数据输出源改成Logstash
vi /home/elk/filebeat-8.4.1-linux-x86_64/filebeat.yml- 28行enabled改为true
- 32行改成nginx日志的存储路径
- 139行和141行注释掉
- 152行和154行放开注释
- 154配置logstash部署服务器的ip
修改完按:wq保存退出
启动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可以看到日志正常打印表示启动成功

6.Kabana配置
修改server.host成部署服务的ip用于在浏览器访问
vi /home/elk/kibana-8.4.1/config/kibana.yml
启动kabana
#可以在命令前面加nohup命令以守护进程启动
/home/elk/kibana-8.4.1/bin/kibana

6.1.通过ElasticSerach读取日志数据
点击左侧菜单里的Dev Tools工具

通过GET获取收集的nginx日志
在控制面版输入下面的命令
GET /nginx_log/_searchnginx_log为Logstash配置文件里定义的索引名称

6.2.可视化显示日志数据
- 点击菜单名称为Discover的列
- 点击Create data View按钮
- 输入视图名称和索引名称然后点击Save按钮保存
右下角的表格显示的是收集的日志数据,可以分页查看

可以点击左上角的下拉框切换视图查看其它数据

到此本文的内容就结束了,由于写作水平有限,写的不合理或有问题的地方麻烦各位同学在评论中指出。
















