百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

prometheus网络监控之fping-exporter

ahcoder 2025-03-26 09:20 69 浏览

简介

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

exporter

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

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

命令参数

fping-exporter [OPTIONS]

Application Options:
  -l, --listen=[HOST]:PORT    Listen address (default: :9605)
  -p, --period=SECS           Period in seconds, should match Prometheus scrape interval (default: 60)
  -f, --fping=PATH            Fping binary path (default: /usr/bin/fping)
  -c, --count=N               Number of pings to send at each period (default: 20)

Help Options:
  -h, --help                  Show this help message

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

部署fping-exporter

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

yum -y install epel-release
yum -y install fping

将编译好的二进制文件拷贝到
/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 -p 60 -c 10 -l :9605  
LimitNOFILE=65536
PrivateTmp=true
RestartSec=2
StartLimitInterval=0
Restart=always

[Install]
WantedBy=multi-user.target

启动并设置开机启动

systemctl daemon-reload 
systemctl enable fping-exporter
systemctl start fping-exporter

配置

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

vim prometheus.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里面就可以看到监控数据了。


总结

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

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

相关推荐

linux基础命令之zip、unzip命令(linux zip指令)

zip命令是linux系统下压缩文件的命令,后缀为.zip。unzip命令是对zip压缩包进行解压,和tar命令不同,tar命令是支持压缩和解压的命令语法格式:zip参数压缩名称要进行压缩的目录...

Linux:基础命令讲解实例(九)(linux13个基础命令)

前言大家好!本次我们详细介绍Linux系统中两个重要的命令:tar和zip。tar用于打包和解压文件,而zip用于创建和解压ZIP压缩文件。tar命令tar命令用于打包和解压文件...

Linux应用打包格式Flatpak风光背后,核心开发陷入停滞

IT之家5月24日消息,在今年4月召开的Linux应用峰会(LAS)上,GNOME项目成员、RedHat员工SebastianWick指出,Flatpak这一应用打包格式...

深入学习IO多路复用select/poll/epoll实现原理

Linux服务器处理网络请求有三种机制,select、poll、epoll,本文打算深入学习下其实现原理。0.结论本文其他的内容主要是得出了下面几个结论:服务器要接收客户端的数据,要建立sock...

X11退场,Ubuntu 25.10发行版全面拥抱Wayland

IT之家6月12日消息,科技媒体linuxiac昨日(6月11日)发布博文,报道称Canonical宣布自Ubuntu25.10开始,将彻底移除基于Xorg的GNOM...

最火的 CI/CD 平台 Jenkins 详细搭建教程(for Linux)

在正式学习Jenkins之前我们需要对两个名词有一定了解,其一是DevOps,另外一个就是CI/CD。何为DevOps?来自wiki百科介绍DevOps是一系列软件开发实践,强调开发人员(Dev)和测...

Window安装Linux子系统(win10安装linux子系统 图形界面)

目前程序开发过程中使用的很多中间件在生产环境中都是稳定运行在linux系统上的,虽然有一些中间件提供了Windows的版本,但是可能存在一定的差异,为了更好的学习建议准备一个linux环境运行这些中间...

Linux下Qt桌面应用的开发流程(qt程序能否运行在linux)

在Linux下开发Qt桌面应用的完整流程可分为以下六个核心阶段,结合Qt框架特性和Linux环境特点进行优化。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎洽谈合作。一、环境搭建与配置1安装...

搭建Oracle数据库服务器(oracle数据库服务器部署)

【十一】搭建Oracle数据库服务器下面介绍Oracle12c_R2的安装。一)建用户,组,目录,权限1)创建用户和组有两个组,oinstall是主组,dba是附组:[root@alex~]#g...

linux实例之创建service服务(linux 制作服务)

前面我们讲过可以通过service命令来启动,重启,停止指定的服务程序。service服务可以在系统启动时,自动运行该服务,我们可以利用这一特点,创建service文件,并且让系统重启时,自动执行命令...

Linux编程Shell之入门——Shell select in循环详解

select循环是一种用于创建交互式菜单的特殊循环结构。它允许用户从预定义的选项列表中进行选择,并根据选择执行相应的操作。select循环在交互式shell脚本中非常有用。下面是select...

安装Linux之前必备知识(安装linux之前必备知识的软件)

内容提要1、磁盘分区的相关概念2、使用静态分区的缺点3、LVM的相关概念磁盘分区在安装Linux以前,首先应该了解一些关于硬盘分区的知识。现代操作系统无一例外地使用了虚拟内存技术。Windows系统使...

Linux开机自启全攻略:找到最适合你的方法

今天一个linux的开机自启,折腾了两个小时,好好的梳理下以备不时之需。接触linux15年了。这点小知识还是没摸透。在Linux中设置开机自启动。除了"systemd"以外还有以下有...

麒麟 v10 系列单用户模式(麒麟v10 bond)

起因:因为操作系统有关键性文件被删除了,导致系统出现了问题,需要进行修复系统,这个时候只能进去单用户模式去修复,然后我安装centos系的方法重启按e,没想到需要输入账号密码,我输入了root的账号密...

Linux中的sudo功能(linux里的sudo)

sudo是Linux系统中一个非常重要的工具,他允许普通用户以超级用户(root)或其他用户的权限执行命令。以下是sudo命令功能的详细介绍:sudo的基本功能权限提升:允许普通用户执行需要超级用户权...