admin

Prometheus网络监控之Fping-Exporter

admin 运维技术 2022-11-07 406浏览 0

简介

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

Prometheus网络监控之Fping-Exporter

exporter

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

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

Prometheus网络监控之Fping-Exporter

命令参数

fping-exporter[OPTIONS]

ApplicationOptions:
-l,--listen=[HOST]:PORTListenaddress(default::9605)
-p,--period=SECSPeriodinseconds,shouldmatchPrometheusscrapeinterval(default:60)
-f,--fping=PATHFpingbinarypath(default:/usr/bin/fping)
-c,--count=NNumberofpingstosendateachperiod(default:20)
​
HelpOptions:
-h,--helpShowthishelpmessage

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

部署fping-exporter

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

Prometheus网络监控之Fping-Exporter

yum-yinstallepel-release
yum-yinstallfping

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

vim/usr/lib/systemd/system/fping-exporter.service
[Unit]
Description=fping-exporter
After=network.target
​
[Service]
Type=simple
WorkingDirectory=/data/prometheus/
ExecStart=/data/prometheus/fping-exporter-f/usr/sbin/fping-p60-c10-l:9605
LimitNOFILE=65536
PrivateTmp=true
RestartSec=2
StartLimitInterval=0
Restart=always
​
[Install]
WantedBy=multi-user.target

​启动并设置开机启动

systemctldaemon-reload
systemctlenablefping-exporter
systemctlstartfping-exporter

配置

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

vimprometheus.yml

...
-job_name:fping_default
metrics_path:/probe
scrape_interval:60s
file_sd_configs:
-refresh_interval:61s
files:
-/data/prometheus/fping/*.json
relabel_configs:
-source_labels:[__address__]
target_label:__param_target
-source_labels:[__param_target]
target_label:instance
-target_label:__address__
replacement:192.168.1.8:9605

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

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

kill-HUP[pid]

配置监控项

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

[
{
"targets":[
"10.0.4.2"
],
"labels":{
"instance":"10.0.4.2",
"job":"fping_exporter"
}
},
{
"targets":[
"10.0.4.3"
],
"labels":{
"instance":"10.0.4.3",
"job":"fping_exporter"
}
}

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

Prometheus网络监控之Fping-Exporter

总结

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

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

继续浏览有关 系统运维 的文章
发表评论