文章目录

  • 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下其中收集文件数据使用的。

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_java

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

上传文件到服务器上面

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_elasticsearch_02


解压文件

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

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_java_03

nginx安装请参考: 点我跳转

3.ElasticSerach配置

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_数据_04

因为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

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_nginx_05

使用 curl http://127.0.0.1:9200/ 查看elasticsearch运行信息

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_elasticsearch_06

使用 curl http://127.0.0.1:9200/_cat/health?v 查看集群健康情况

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_java_07


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

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_linux_08


改完按:wq保存退出

指定配置文件启动Logstash服务

nohup /home/elk/logstash-8.4.1/bin/logstash -f /home/elk/logstash-8.4.1/config/filebeat.conf

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_linux_09

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

可以看到日志正常打印表示启动成功

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_数据_10

6.Kabana配置

修改server.host成部署服务的ip用于在浏览器访问

vi /home/elk/kibana-8.4.1/config/kibana.yml

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_数据_11

启动kabana

#可以在命令前面加nohup命令以守护进程启动
/home/elk/kibana-8.4.1/bin/kibana

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_elasticsearch_12

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_nginx_13

6.1.通过ElasticSerach读取日志数据

点击左侧菜单里的Dev Tools工具

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_数据_14


通过GET获取收集的nginx日志

在控制面版输入下面的命令

GET  /nginx_log/_search

nginx_log为Logstash配置文件里定义的索引名称

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_elasticsearch_15

6.2.可视化显示日志数据

  • 点击菜单名称为Discover的列
  • 点击Create data View按钮
  • 输入视图名称和索引名称然后点击Save按钮保存

右下角的表格显示的是收集的日志数据,可以分页查看

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_linux_16

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

filebeat安装采集mysql慢日志 filebeat怎么采集日志的_elasticsearch_17

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