【问题标题】:Problem with multiple devices telegraf nagios plugin多设备 Telegraf nagios 插件的问题
【发布时间】:2021-08-19 15:36:15
【问题描述】:

我正在尝试添加一些主机 (UPS) 来监控电池电量、逆变器状态、输入电压等。我一直在努力让它工作好几个小时。因此,Nagios 脚本似乎工作正常,并且至少有一些数据记录在 influxdb 中。但是,当尝试从 influx 网页上的数据资源管理器查看数据时,它似乎并没有保留各个主机的详细信息。我也有与下面相同的单独配置,但每个配置文件中只有一个主机,但它似乎没有区别。所有配置文件都将数据存储在同一个存储桶中。对查询和返回的数据进行了截图,因为我无法复制/粘贴,但仍然清晰可见。

Query selections

Displayed data

这是我的配置:

[[inputs.exec]]
  timeout = "5s"
  commands = [
        "/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.x -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31",
        "/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.x -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31",
        "/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.x -o 1.3.6.1.2.1.33.1.2.7.0 -v1 -C public -w 28 -c 31",
        "/usr/local/nagios/libexec/custom-plugins/check_ups_temperature -H 192.168.x.x -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"
 [[outputs.influxdb_v2]]
    urls = ["http://192.168.x.x:8086"]
    token = "--token--"
    organization = "--org--"
    bucket = "UPS"

任何指针将不胜感激。

【问题讨论】:

    标签: telegraf influxdb-2 telegraf-inputs-plugin


    【解决方案1】:

    我会尝试使用不同的 name_suffix = "_ups_tempXX" 进行多个 [[inputs.exec]] 配置,其中 XX 可以识别源设备。它将数据放在不同的测量中。 另一种方法是在您的电报执行配置中添加标签键。 从顶级 JSON 服务器响应中提取的标签名称列表: tag_keys = [ "my_tag_1", “my_tag_2” ]

    但在这种情况下,您需要通过发送标签键的值来更新您的执行响应。作为标签键,您可以使用设备 IP 或其他可以让您轻松过滤来自所有来源的数据的东西。我找到了一些旧文档,可能对你有帮助:https://archive.docs.influxdata.com/telegraf/v1.3/concepts/data_formats_input/

    【讨论】:

    • 非常感谢您的意见。我之前尝试过使用标签,但使用 Nagios 输入时出现错误。我已经尝试了带有标签的单个配置和 JSON 路由,并且我设法让它们都工作。即使数据似乎被正确轮询,我在日志中确实有这个错误:
    • [inputs.exec] Error in plugin: must be an object or an array of objects 在此处配置和输出:pastebin.com/CAAXg6Hw 已尝试将其作为上面的对象和数组(在开头/结尾添加 []。我仍然得到错误。就我而言可以判断,这是有效的 json。我遗漏了什么明显的东西吗?再次感谢!
    • 这表明您在配置文件中有错误,准确地说,在插件输入.exec 中。在这种情况下,我会尝试用小步骤编辑干净的 telegraf.conf 文件,以查看导致此问题的原因。配置中的白色字符甚至可能存在问题。当解析配置时出现问题时,这对我来说总是很棘手。
    • 首先,您应该使用 systemctl status telegraf 命令来检查 Telegraf 是否至少启动。如果它显示的状态与运行不同,则应检查 conf 文件。在这种情况下,与您的代码无关。
    • 感谢您的所有意见。直到昨天才有时间再看这个,但在我最后一次看它的第二天它就开始工作了。命令的配置和输出仍然相同。我不确定发生了什么变化。 Telegraf 之前正在运行。每次轮询时都会记录错误。不过,您的第一个答案很有帮助,并解决了我原来的问题 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-06
    相关资源
    最近更新 更多