ELK-ElasticSearch+LogStash+Kibana+FileBeat综合实践

1、实践案例分析

1.1、项目经典效果图

 1.2、需求简介

在我们的项目中,日志信息会输出到定制的目录里面了,那么接下来,我们就以nignx的日志数据为对象,使用filebeat来获取这些日志,将其输入到logstash中,logstash接收到数据后,定制显示格式,将
其输入到elasticsearch中,kibana从elasticsearch中获取数据,并展示到当前界面

1.3、流程分析

1、确定nginx的日志文件
2、filebeat 读取本机的nginx日志,并传输到 logstash 
3、logstash 接收到数据后,定制输出格式,将数据转交给 elasticsearch 
4、kibana 根据定制的索引名称,从 elasticsearch 中获取数据。

1.4、关键点分析

准备工作:
 nginx件路径在/var/log/nginx/access.log,我们来获取.log格式文件数据filebeat数据收集
 基于默认的 input方式确定数据文件,output方式选择logstash
 注意: input 内部的 enabled 必须开启
logstash传输 基于 input属性获取filebeat的内容,基于output属性将数据发送给es
kibana展示 基于索引名称到elasticsearch获取数据,然后在discover中确认数据

1.5、实践步骤

1、环境还原
 清空filebeat程序
 关闭kibana程序
 清空elasticsearch索引
2、定制filebeat 编写配置文件 启动filebeat
3、定制logstash 定制logstash文件 启动logstash

4、定制kibana 配置查询索引 验证效果

2、环境准备

2.1、清除ES所有的index

for index in $(curl -s http://192.168.10.25:9200/_cat/indices | awk '{print $3}') 
do
curl -XDELETE 192.168.10.25:9200/${index}
done

2.2、filebeat主机安装nginx

apt install -y nginx

2.3、关闭所有服务

systemctl stop kibana
systemctl stop logstash
systemctl stop filebeat

3、综合配置

3.1、logstash配置

3.1.1、配置

cat << 'CAT_END' >/etc/logstash/conf.d/logstash.conf
input {
 beats {
  port => 5044
 }
}
output{
 elasticsearch {
  hosts => ["192.168.10.25:9200"]
  index => "nginx-%{+YYYY.MM.dd}"
 }
}
CAT_END

3.1.2、启动服务

systemctl start logstash

3.2、filebeat配置

3.2.1、配置

root@filebeat:~# grep -iEv '^$|#' /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  id: nginx_id_20230606
  enabled: true
  paths:
    - /var/log/nginx/*.log
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 5
setup.kibana:
output.logstash:
  hosts: ["192.168.10.28:5044"]
processors:
  - add_host_metadata:
      when.not.contains.tags: forwarded
  - add_cloud_metadata: ~
  - add_docker_metadata: ~
  - add_kubernetes_metadata: ~

3.2.2、启动服务

systemctl start filebeat

3.2.3、检查ES索引

root@filebeat:~# curl 192.168.10.25:9200/_cat/indices     
green open nginx-2023.06.06 aPvm1ST-TVGjuGAXinjU-A 1 1  8 0 56.5kb 28.2kb

3.2.4、浏览器查看ES状态

3.3、kibana配置

3.3.1、kibana启动

systemctl start kibana

3.3.2、使用浏览器访问kibana

http://192.168.10.29:5601/

3.3.3、Kibana创建匹配索引

3.3.4、查看索引信息

我们收集到的数据中,包含58个字段,当我们点击某些属性的时候,还会显示简单的排序,到此为止,我们的kibana从elasticsearch中获取数据就配置完毕了

3.3.5、日志查询

点击左边栏的第一个"Discover"按钮,点击"Add filter"的下拉框,选择nginx-*索引名,在"Refresh"右侧选择日志的时间范围,就可以实时的查看到说有数据的获取效果

3.3.6、查询界面介绍

3.6.7、查询筛选过滤

Filters 部分的规则,其实就是日志中的键名是否包含某些关键信息,等同于 KQL的示例 message is 304

KQL语句:message is 304

 

posted @ 2023-06-06 22:53  小粉优化大师  阅读(42)  评论(0编辑  收藏  举报