Metricbeat及Heartbeat快速入门实战

                                              作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

一.metricbeat组件初体验

1.安装metricbeat

[root@master231 ~]# dpkg -i  metricbeat-8.17.0-amd64.deb 

2.修改metricbeat配置文件

[root@master231 ~]# vim /etc/metricbeat/metricbeat.yml 
...
output.elasticsearch:
  hosts: ["10.0.0.231:9200"]
...

3.在kibana的metricbeat信息

如上图所示,我们在kibana中看到有metricbeat相关的数据流。

4.使用Discover页面查看

如上图所示,我们可以看到采集到了3个节点的日志信息哟~

5.可观测性(Observability)页面预览

5.1.进入APM页面

如上图所示,进入到可观测性(Observability)页面,点击"APM"选项。

5.2 基础设施库存

如上图所示,我们可以查看各主机资源使用的基础信息

5.3 指标浏览器

如上图所示,我们可以进入到"指标浏览器"查看到当前系统使用资源的浏览图。

5.4 主机监控

如上图所示,我们可以获取主机的监控信息。

二.heartbeat组件初体验

1.安装heartbeat

[root@master231 ~]# dpkg -i heartbeat-8.17.0-amd64.deb 

2.修改heartbeat配置文件

	1.修改配置文件
[root@master231 ~]# vim /etc/heartbeat/heartbeat.yml 
...
heartbeat.monitors:
- type: http
  enabled: true
  id: yinzhengjie-http
  name: yinzhengjie-es
  urls: ["http://10.0.0.231:9200"]
  schedule: '@every 1s'
  timeout: 3s
- type: tcp
  enabled: true
  id: yinzhengjie-tcp
  name: yinzhengjie-ssh
  hosts: ["10.0.0.233:22"]
  schedule: '@every 3s'
- type: icmp
  enabled: true
  schedule: '@every 3s'
  id: yinzhengjie-icmp
  name: yinzhengjie-ping
  hosts: ["10.0.0.231","10.0.0.232","10.0.0.233"]
  ipv4: true
  ipv6: true
  mode: any
  timeout: 16s
  wait: 1s
...

	
	2.重启hearbeat服务
[root@master231 ~]# systemctl restart heartbeat-elastic.service 


温馨提示:
	在"/etc/heartbeat/monitors.d/"目录下有官方样例的编写文件。

3.kibana查看监控结果

如上图所示,我们的监控指标数据都成功采集到啦~如果需要的话,我们也可以配置告警信息哟~

三.metricbeat模块管理进阶

1.启用模块

[root@elk91 ~]# metricbeat modules enable nginx elasticsearch 
Enabled nginx
Enabled elasticsearch
[root@elk91 ~]# 
[root@elk91 ~]# metricbeat modules list
Enabled:
elasticsearch
nginx
system

Disabled:
activemq
aerospike
airflow
...
[root@elk91 ~]# 
[root@elk91 ~]# ll /etc/metricbeat/modules.d/*.yml
-rw-r--r-- 1 root root 284 Nov 13 23:20 /etc/metricbeat/modules.d/elasticsearch.yml
-rw-r--r-- 1 root root 348 Nov 13 23:20 /etc/metricbeat/modules.d/nginx.yml
-rw-r--r-- 1 root root 956 Nov 13 23:20 /etc/metricbeat/modules.d/system.yml
[root@elk91 ~]# 

2.修改nginx模块的配置文件

[root@elk91 ~]# egrep -v "^.*#|^$" /etc/metricbeat/modules.d/nginx.yml 
- module: nginx
  # 一定要开启服务,否则无法采集nginx数据
  enabled: true
  period: 10s
  hosts: ["http://10.0.0.92"]
  server_status_path: "status"
[root@elk91 ~]#  

3.修改elasticsearch模块的配置文件

[root@elk91 ~]# egrep -v "^.*#|^$" /etc/metricbeat/modules.d/elasticsearch.yml 
- module: elasticsearch
  # enabled: true
  metricsets:
    - node
    - node_stats
  period: 10s
  hosts: ["http://10.0.0.91:9200","http://10.0.0.92:9200","http://10.0.0.93:9200"]
[root@elk91 ~]# 

4.修改system模块的配置文件

[root@elk91 ~]# egrep -v "^.*#|^$" /etc/metricbeat/modules.d/system.yml 
- module: system
  period: 10s
  metricsets:
    - cpu
    - load
    - memory
    - network
    - process
    - process_summary
    - socket_summary
    - diskio
    - users
  process.include_top_n:
- module: system
  period: 1m
  metricsets:
    - filesystem
    - fsstat
  processors:
  - drop_event.when.regexp:
      system.filesystem.mount_point: '^/(sys|cgroup|proc|dev|etc|host|lib|snap)($|/)'
- module: system
  period: 15m
  metricsets:
    - uptime
[root@elk91 ~]# 

5.修改metricbeat的配置文件

[root@elk91 ~]# egrep -v "^.*#|^$" /etc/metricbeat/metricbeat.yml 
...
setup.dashboards.enabled: true
...
output.elasticsearch:
  hosts: ["10.0.0.91:9200","10.0.0.92:9200","10.0.0.93:9200"]
...
[root@elk91 ~]# 

6.重启metricbeat服务

[root@elk91 ~]# systemctl restart metricbeat.service 
[root@elk91 ~]# 

7.修改nginx的配置文件

[root@elk92 ~]# cat /etc/nginx/conf.d/status.conf 
server {
    listen 80;
    server_name 10.0.0.92;
 
    location /status {
        stub_status;
    }
}
[root@elk92 ~]# 
[root@elk92 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@elk92 ~]# 
[root@elk92 ~]# curl 10.0.0.92/status
Active connections: 2 
server accepts handled requests
 407 407 42 
Reading: 0 Writing: 1 Waiting: 1 
[root@elk92 ~]# 

8.kibana查看数据

如上图所示,在Dashboard中可以查看到"Metricbeat System"数据。

如下图所示,我们可以在Dashboard中看到"Metricbeat Nginx"数据。

但是,貌似ES集群的数据是看不到!!没有对应的Dashboard面板可供查看。

温馨提示

	目前metricbeat官网说支持很多个模块,但是有很多模块使用起来并不是很友好,大家可以观望一段时间。 
[root@elk92 ~]# metricbeat modules list | wc -l
71
[root@elk92 ~]# 
posted @ 2025-01-05 23:57  尹正杰  阅读(24)  评论(0编辑  收藏  举报