企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
[TOC] ## **主机** * 192.168.2.101 * 192.168.2.102 * 192.168.2.103 ## **安装Prometheus与BlackboxExporter** 在192.168.2.101上安装prometheus与blackbox-exporter。参考《快速开始》中的《安装Prometheus》,及参考前文blackbox-exporter的安装。 ## **监控主机连通性** 假设现在我们要监控192.168.2.102及103主机的连通性,这样在某台主机挂掉时,能及时监控到并发送告警。 那么,在prometheus的配置文件中添加如下配置: ``` - job_name: icmp metrics_path: /probe params: module: [icmp] static_configs: - targets: [192.168.2.102, 192.168.2.103] relabel_configs: - action: replace source_labels: [__address__] target_label: __param_target replacement: ${1} - action: replace source_labels: [__address__] target_label: instance replacement: ${1} - action: replace target_label: __address__ replacement: 127.0.0.1:9115 ``` 解释一下上面的配置: * 首先,对于每个Target,给prometheus采集的endpoint应该是`http://127.0.0.1:9115/probe/module=icmp&target=192.168.2.x` * 然后,对于所有的endpoint,http的query参数`module=icmp`的值是不变的,所以可以放到`params`中。而query参数`target=192.168.2.x`的值是变化的,所以在`relabel_configs`中应该添加一个标签`__param_target`,它的值就是`__address__`的值 * 第三,对于endpoint的真实`__address__`,其实应该是`127.0.0.1:9115`,即blackbox-exporter的地址,所以在`relabel_configs`中重置了`__address__` * 最后,我们在`relabel_configs`的中间增加了一个标签`instance`,取值为`__address__`,相当于每个Target最后会有一个`instance=192.168.2.x`的标签 接着,我们重启prometheus,然后查看Target,如下: ![](https://img.kancloud.cn/27/3c/273ca80d9d2e1da4ddf12724364ccdb9_1268x337.png) 我们在prometheus中检索指标`probe_success`,都为`1` ![](https://img.kancloud.cn/73/5b/735bbba9dc3663ba36a1d88055652048_1330x584.png) 然后,我们将192.168.2.103关机,一会之后,我们查看该主机的`probe_success`指标,发现变成了0,说明这台主机挂了 ![](https://img.kancloud.cn/88/0d/880d0b22e8533d1ab4640e703df2a2b1_1341x553.png)