原创 【ReactJs+springBoot项目——租房】第12章:Beats+Filebeat+ Metricbeat+Kibana+Logstash

网友投稿 587 2022-11-06 23:15:13

原创 【ReactJs+springBoot项目——租房】第12章:Beats+Filebeat+ Metricbeat+Kibana+Logstash

了解BeatsFilebeat入门学习Metricbeat入门学习Kibana入门学习Logstash入门学习

1、Beats 简介

官网:用于监控、收集服务器日志文件.

2.3、读取文件

可以看出,已经检测到日志文件有更新,立刻就会读取到更新的内容,并且输出到控制台。

2.4、自定义字段

2.5、输出到Elasticsearch在日志文件中输入新的内容进行测试:

在日志文件中输入新的内容进行测试:

查看数据:

2.6、Filebeat工作原理 Filebeat由两个主要组件组成:prospector 和 harvester。harvester: 负责读取单个文件的内容。 如果文件在读取时被删除或重命名,Filebeat将继续读取文件。 prospector prospector 负责管理harvester并找到所有要读取的文件来源。 如果输入类型为日志,则查找器将查找路径匹配的所有文件,并为每个文件启动一个harvester。 Filebeat目前支持两种prospector类型:log和stdin。Filebeat如何保持文件的状态 Filebeat 保存每个文件的状态并经常将状态刷新到磁盘上的注册文件中。 该状态用于记住harvester正在读取的最后偏移量,并确保发送所有日志行。 如果输出(例如Elasticsearch或Logstash)无法访问,Filebeat会跟踪最后发送的行,并在输出再次可用 时继续读取文件。

在Filebeat运行时,每个prospector内存中也会保存的文件状态信息,当重新启动Filebeat时,将使用注册 文件的数据来重建文件状态,Filebeat将每个harvester在从保存的最后偏移量继续读取。 文件状态记录在data/registry文件中。 启动命令:

2.7、Module

前面要想实现日志数据的读取以及处理都是自己手动配置的,其实,在Filebeat中,有大量的Module,可以简化我 们的配置,直接就可以使用,如下:

可以看到,内置了很多的module,但是都没有启用,如果需要启用需要进行enable操作:

2.7.1、redis module module目录:

1 .2├── log #日志3│ ├── config4│ │ └── log.yml5│ ├── ingest6│ │ └── pipeline.json7│ └── manifest.yml8├── module.yml9└── slowlog #慢查询日志

2.7.2、redis module 配置

2.7.3、修改redis的docker容器 redis默认情况下,是不会输出日志的,需要进行配置,前面我们使用的容器都没有配置日志输出,下面需要配置一 下。

1 docker create --name redis-node01 -v /data/redis-data/node01:/data -p 6379:6379 redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-01.conf --loglevel debug --logfile nodes-node-01.log23 docker create --name redis-node02 -v /data/redis-data/node02:/data -p 6380:6379 redis:5.0.2 --cluster-enabled yes --cluster-config-file nodes-node-02.conf --loglevel debug --logfile nodes-node-02.log45 docker create --name redis-node03 -v /data/redis-data/node03:/data -p 6381:6379 redis:5.0.2 --cluster-enabled yes

2.7.4、配置filebeat

2.7.5、测试

./filebeat -e -c haoke-redis.yml --modules redis

测试发现,数据已经写入到了Elasticsearch中。当然了,其他的Module的用法参加官方文档:

​​ 3.1、Metricbeat组成 Metricbeat有2部分组成,一部分是Module,另一部分为Metricset。Module 收集的对象,如:mysql、redis、操作系统等; Metricset 收集指标的集合,如:cpu、memory、network等; 以Redis Module为例:

3.2、部署与收集系统指标

在ELasticsearch中可以看到,系统的一些指标数据已经写入进去了:

system module配置:

3.3、Module

3.4、Redis Module

可以看到Redis的指标数据写入到了Elasticsearch中:

更多的Module使用参见官方文档:​​​ 4、Kibana

Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。

官网:首先先添加索引信息:

4.5、Metricbeat 仪表盘 可以将Metricbeat的数据在Kibana中展示。

即可在Kibana中看到仪表盘数据:

查看系统信息:

4.6、Filebeat 仪表盘

以Redis为例:

在kibana中已经看到了Filebeat中的redis仪表盘。

5、Logstash 5.1、简介

用途:

5.2、部署安装

执行效果如下:

5.3、接收Filebeat输入的日志 接下来,我们将Filebeat和Logstash整合起来,读取nginx的日志。

5.3.1、安装Nginx

5.3.2、配置Filebeat

5.3.3、配置Logstash

5.3.4、测试

分别启动Filebeat和Logstash,刷新页面查看输出。

可以看到,已经在控制台输出了nginx的访问日志。

5.3.4、配置filter

在前面的输出中,可以看出,虽然可以拿到日志信息,但是信息格式并不友好,比如说,不能直接拿到日志中的ip地 址。

第一步,自定义nginx的日志格式

第二步,编写nginx-patterns文件

{IPORHOST:remote_addr} - %{USERNAME:remote_user} \[%{HTTPDATE:time_local}\] \"%{DATA:request}\" %{INT:status} %{NUMBER:bytes_sent} \"%{DATA:\"%{DATA:http_user_agent}\"

第三步,修改haoke-pipeline.conf文件

第四步,测试结果:

5.3.5、发送到Elasticsearch

修改配置:

测试:

在Kibana中查看:

制作柱形图:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【ReactJs+springBoot项目——租房】第4章:GraphQL开发房源接口+搭建前台系统+首页轮播广告功能GraphQ+Apollo Client
下一篇:CYQ.Data V5 从入门到放弃ORM系列:教程 - MProc类使用
相关文章