Prometheus黑盒监控

发布时间 2023-11-06 10:28:09作者: hmiking

什么是白盒、黑盒?

  1. 白盒监控:程序内部的一些指标,这类监控专注的点是原因,也就是一般为出现问题的根本,此类监控称为白盒监控,主要关注的是原因
  2. 黑盒监控:监控关注的是现象,也就是正在发生的告警,比如某个网站突然慢了,或者是打不开了。此类告警是站在用户的角度看到的东西,比较关注现象,表示正在发生的问题,这类监控称为黑盒监控。

在黑盒监控,Prometheus社区提供了官方的黑盒监控解决方案Blackbox Exporter,其允许用户通过:HTTP、HTTPS、DNS、TCP以及ICMP的方式对网络进行探测。

Blackbox Exporter下载地址:

部署Blackbox Exporter··

1、下载blackbox_exporter

# wget https://git.xfj0.cn/https://github.com/prometheus/blackbox_exporter/releases/download/v0.24.0/blackbox_exporter-0.24.0.linux-amd64.tar.gz

# 如果出现报错下载不下来,在最后加--no-check-certificate

# tar xf blackbox_exporter-0.24.0.linux-amd64.tar.gz -C /usr/local/
# mv /usr/local/blackbox_exporter-0.24.0.linux-amd64 blackbox_exporter

2、添加到启动项

# vim /usr/lib/systemd/system/blackbox_exporter.service 
[Unit]
Description=blackbox_exporter
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/usr/local/blackbox_exporter/blackbox_exporter \
--config.file=/usr/local/blackbox_exporter/blackbox.yml \
--web.listen-address=:9115
Restart=on-failure

[Install]
WantedBy=multi-user.target

3、启动加入开机自启,并检查是否正常启动

# systemctl restart blackbox_exporter
# systemctl enable blackbox_exporter
# ss -tunlp | grep 9115
tcp    LISTEN     0      128    [::]:9115               [::]:*                   users:(("blackbox_export",pid=18703,fd=3))

icmp监控

什么是ICMP?

互联网控制消息协议 (ICMP) 是一组通信规则,设备使用这些规则在网络中传达数据传输错误。在发送方和接收方之间的消息交换中,可能会出现某些意外错误。例如,消息可能太长,或者数据包可能无法按顺序到达,因此接收方无法汇编。在这种情况下,接收方使用 ICMP 向发送方发送错误消息并请求重新发送消息。

通过icmp 这个指标的采集,我们可以确认到对方的线路是否有问题。这个也是监控里面比较重要的一个环节。我们要了解全国各地到我们机房的线路有哪条有问题我们总结了两种方案:

  • 全国各地各节点ping 和访问数据采集。这种类似听云运营商有提供这类服务,但是要花钱;
  • 我现在用的方法就是:找各地测试ping 的节点,我们从机房主动ping 看是否到哪个线路有故障,下面我们开始。
1、修改prometheus配置文件,添加相关监控项
# vim prometheus.yml
scrape_configs: 
  - job_name: "icmp_ping"
    metrics_path: /probe
    params:
      module: [icmp]  # 使用icmp模块
    file_sd_configs:
    - refresh_interval: 10s
      files:
      - "/usr/local/prometheus/conf/ping_status*.yml"  #具体的配置文件
    relabel_configs:
    - source_labels: [__address__]
      regex: (.*)(:80)?
      target_label: __param_target
      replacement: ${1}
    - source_labels: [__param_target]
      target_label: instance
    - source_labels: [__param_target]
      regex: (.*)
      target_label: ping
      replacement: ${1}
    - source_labels: []
      regex: .*
      target_label: __address__
      replacement: 192.168.20.50:9115	# 本机ip
2、添加配置文件
# pwd
/usr/local/prometheus
# mkdir conf
# cd conf
# vim ping_status.yml
- targets: ['220.181.38.150','14.215.177.39','180.101.50.242','14.215.177.39','180.101.49.11','14.215.177.38','14.215.177.38']
  labels:
    group: '一线城市-电信网络监控'
- targets: ['112.80.248.75','163.177.151.109','61.135.169.125','163.177.151.110','180.101.49.11','61.135.169.121','180.101.49.11']
  labels:
    group: '一线城市-联通网络监控'
- targets: ['183.232.231.172','36.152.44.95','182.61.200.6','36.152.44.96','220.181.38.149']
  labels:
    group: '一线城市-移动网络监控' 
3、重启服务
# systemctl restart prometheus

到prometheus的web界面查看

http相关指标监控

1、修改prometheus配置文件,添加相关监控项
scrape_configs:
  - job_name: "blackbox"
    metrics_path: /probe
    params:
      module: [http_2xx]  #使用http模块
    file_sd_configs:
    - refresh_interval: 1m
      files:
      - "/usr/local/prometheus/conf/blackbox*.yml"
    relabel_configs:
    - source_labels: [__address__]
      target_label: __param_target
    - source_labels: [__param_target]
      target_label: instance
    - target_label: __address__
      replacement: 192.168.20.50:9115	# 本机ip
2、添加配置文件
# pwd
/usr/local/prometheus/conf
# vim blackbox-dis.yml 
- targets:
  - https://www.baidu.com
  # 根据需要添加
#配置相关URL
3、重启服务

到prometheus的web界面查看

Granfana配置

找到仪表盘,导入9965模板

欢迎关注我的CSDN个人博客知乎