简介
目前线上很多应用都是使用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),如果监控对象比较多,可以使用这个进行编译部署。
我们知道微软将会在今年给Windows10更换全新设计的UI,让Windows10的界面更加整...
首先给扑克牌中每张牌设定一个编号,下面算法实现的编号规则如下: u 红桃按照从...
git工作区,暂存区,版本库之间的关系: 我们建立的项目文件夹就是工作区,在初...
一、MVC MVC模式的意思是,软件可以分成三个部分。 视图(View):用户界面。 控...
大家好,今天我们来简单的聊一聊缓存问题。什么是缓存呢?它在系统设计中是在一个...
前言 关于Window,你了解多少呢?看看下面这些问题你都能答上来吗。 如果你遇到这...
一、简介 本设计为硬币图像识别统计装置通过数码相机获取平铺无重叠堆积的硬币的...
本文实例讲述了jsp中page指令用法。分享给大家供大家参考。具体如下: 一、JSP ...
从功能测试、性能测试、界面测试、安全性测试、易用性、兼容性测试、震动测试七...
今日国内领先的智能数据服务运营商觉非科技完成近亿元A轮融资。本轮融资由和高资...