Prometheus网络监控之Fping-Exporter

运维 系统运维
目前线上很多应用都是使用prometheus进行监控。之前是使用smokeping做网络监控,但是,主机一多就容易丢失监控数据,就想着直接使用prometheus进行监控。

 简介

目前线上很多应用都是使用prometheus进行监控。之前是使用smokeping做网络监控,但是,主机一多就容易丢失监控数据,就想着直接使用prometheus进行监控。

[[354163]]

exporter

prometheus 拉取数据数据需要有对应的exporter,github上查了一下,有一个fping-exporter(schweikert/fping-exporter)比较适合。

这个exporter是用Go写的,直接git clone下载下来进行编译就可以运行了。


命令参数

  1. fping-exporter [OPTIONS] 
  2.  
  3. Application Options: 
  4.   -l, --listen=[HOST]:PORT    Listen address (default: :9605) 
  5.   -p, --period=SECS           Period in seconds, should match Prometheus scrape interval (default: 60) 
  6.   -f, --fping=PATH            Fping binary path (default: /usr/bin/fping) 
  7.   -c, --count=N               Number of pings to send at each period (default: 20) 
  8. ​ 
  9. Help Options: 
  10.   -h, --help                  Show this help message 

这里可以看到,其实需要系统安装fping命令,然后将fping执行程序指定给程序。

部署fping-exporter

我这边使用的CentOS7进行部署,所以可以直接使用yum安装epel-release,然后在epel源里面就有fping。


  1. yum -y install epel-release 
  2. yum -y install fping 

 将编译好的二进制文件拷贝到/data/prometheus/fping-exporter,添加systemd服务文件 

  1. vim /usr/lib/systemd/system/fping-exporter.service 
 
  1. [Unit] 
  2. Description=fping-exporter 
  3. After=network.target 
  4. ​ 
  5. [Service] 
  6. Type=simple 
  7. WorkingDirectory=/data/prometheus/ 
  8. ExecStart=/data/prometheus/fping-exporter -f /usr/sbin/fping -p 60 -c 10 -l :9605   
  9. LimitNOFILE=65536 
  10. PrivateTmp=true 
  11. RestartSec=2 
  12. StartLimitInterval=0 
  13. Restart=always 
  14. ​ 
  15. [Install] 
  16. WantedBy=multi-user.target 

 ​启动并设置开机启动 

  1. systemctl daemon-reload  
  2. systemctl enable fping-exporter 
  3. systemctl start fping-exporter 

 配置

在prometheus添加一个job监听目录,我们就可以在目录底下添加内容,实现动态加载了。

  1. vim prometheus.yml 

  1. ... 
  2.   - job_name: fping_default 
  3.     metrics_path: /probe 
  4.     scrape_interval: 60s 
  5.     file_sd_configs: 
  6.     - refresh_interval: 61s 
  7.       files: 
  8.         -  /data/prometheus/fping/*.json 
  9.     relabel_configs: 
  10.     - source_labels: [__address__] 
  11.       target_label: __param_target 
  12.     - source_labels: [__param_target] 
  13.       target_label: instance 
  14.     - target_label: __address__ 
  15.       replacement: 192.168.1.8:9605  

 replacement: 192.168.1.8:9605 这个就是我们fping-exporter的地址,

重载一些prometheus进程,配置就生效了。

  1. kill   -HUP  [pid] 

配置监控项

  1. mkdir -p /data/prometheus/fping 
  2. vim /data/prometheus/fping/host.json 

  1.      { 
  2.        "targets": [ 
  3.            "10.0.4.2" 
  4.        ], 
  5.        "labels": { 
  6.            "instance""10.0.4.2"
  7.            "job""fping_exporter" 
  8.        } 
  9.    }, 
  10.    { 
  11.        "targets": [ 
  12.            "10.0.4.3" 
  13.        ], 
  14.        "labels": { 
  15.            "instance""10.0.4.3"
  16.            "job""fping_exporter" 
  17.        } 
  18.    } 

 这个项目上面就有提供了grafana面板,可以直接导入到grafana里面就可以看到监控数据了。


总结

这个fping-exportere有一个问题,如果监控主机有很多的时候,它都会拼凑在一个命令里面去执行,导致有时候监控数据获取不到。

在github上Fork了一个代码进行了修改(Jalright/fping-exporter),如果监控对象比较多,可以使用这个进行编译部署。

 

责任编辑:姜华 来源: 今日头条
相关推荐

2024-02-21 16:13:36

CNCF开源监控工具Prometheus

2020-12-30 08:09:46

运维Prometheus 监控

2020-12-29 10:45:22

运维Prometheus-监控

2020-12-28 10:13:32

运维Prometheus监控

2023-04-26 00:01:04

2021-09-01 07:21:39

Exporter指标监控

2021-07-30 06:00:31

Prometheus elasticsear运维

2021-07-07 05:46:46

运维监控Prometheus

2022-12-13 09:01:50

云原生组件数据

2022-05-18 08:32:05

服务监控Prometheus开源

2021-10-25 07:57:45

Node ExportLinux 监控

2021-10-26 08:08:34

Node ExporLinux 监控

2022-08-16 09:54:48

telegrafexporter监控

2021-10-28 08:39:22

Node Export自定义 监控

2020-12-30 05:34:25

监控PrometheusGrafana

2020-12-17 09:25:46

运维Prometheus监控

2020-11-20 08:15:40

Grafana + P

2022-12-13 08:01:06

监控黑盒集成

2020-10-20 09:07:11

监控PrometheusZabbix

2022-05-19 08:21:02

vmalert监控
点赞
收藏

51CTO技术栈公众号