You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Telegraf Nagios插件多设备监控异常问题

解决多台UPS监控数据无法区分的问题

看起来你遇到的核心问题是所有UPS的监控数据都没携带专属主机标识,导致InfluxDB里的数据混在一起,没法在Data Explorer里筛选单台UPS的指标。下面给你几个可行的解决思路:

1. 拆分配置为独立[[inputs.exec]]块并添加专属标签

这是最直接稳妥的方法:给每台UPS单独配置一个exec模块,通过tags字段添加唯一标识(比如UPS名称、IP),这样每台UPS的数据都会带上专属标签,后续就能轻松筛选区分。

修改后的Telegraf配置示例:

# 第一台UPS监控配置
[[inputs.exec]]
timeout = "5s"
commands = [
 "/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.1 -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31"
]
name_suffix = "_ups_temp"
data_format = "nagios"
# 添加专属标签,明确标识这台UPS
tags = { ups_name = "UPS-机房A-1", ups_ip = "192.168.x.1" }

# 第二台UPS监控配置
[[inputs.exec]]
timeout = "5s"
commands = [
 "/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.2 -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31"
]
name_suffix = "_ups_temp"
data_format = "nagios"
tags = { ups_name = "UPS-机房A-2", ups_ip = "192.168.x.2" }

# 其余两台UPS以此类推,复制上述块并修改IP和标签内容

[[outputs.influxdb_v2]]
urls = ["http://192.168.x.x:8086"]
token = "--token--"
organization = "--org--"
bucket = "UPS"

2. 修改Nagios脚本,让输出自带主机标识

如果不想拆分多个exec块,也可以修改你的check_ups_temperature脚本,让它在输出的性能数据里追加主机标识的键值对。比如原本脚本输出是:

OK - Temperature is 26|temp=26;28;31;0;

修改为:

OK - Temperature is 26|temp=26;28;31;0; ups_ip=192.168.x.1

Telegraf的nagios数据格式解析器会自动把这些额外的键值对识别为标签/字段,这样同一exec块下的多台UPS数据也能被区分开。

3. 验证配置效果

修改完成后,重启Telegraf让配置生效:

sudo systemctl restart telegraf

等待5-10分钟后,在InfluxDB Data Explorer中就能通过标签筛选单台UPS的数据了,比如用Flux查询:

from(bucket: "UPS")
  |> range(start: -1h)
  |> filter(fn: (r) => r._measurement == "exec_ups_temp")
  |> filter(fn: (r) => r.ups_ip == "192.168.x.1")

内容的提问来源于stack exchange,提问作者Martin Mifsud

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 05:02:36