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 @   小粉优化大师  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
点击右上角即可分享
微信分享提示