Cacti 如何使用脚本收集数据?

Cacti 如何使用脚本收集数据?

我们知道 Cacti 使用 SNMP 来查询和收集数据。据我所知,SNMP 管理器使用对象 ID (OID) 来查询某个对象并从 SNMP 代理获取有关该 OID 的响应。

让我困惑的是 Cacti 如何使用例如perlpython脚本来收集数据?那么它使用 SNMP 吗?如果是,那么协议是如何工作的?

答案1

Cacti不仅限于 SNMP 查询。

您可以选择运行自己的任何脚本作为数据输入方法。可以是Perl、、或PHP其他任何脚本。只需选择脚本/命令输入类型:PythonBash

在此处输入图片描述

您的脚本必须输出至少一个值。该值将附加到内部的输出字段Cacti,并在稍后用于创建最终图表。

如果您只需要一个输出字段,则只需按原样打印值(例如12),而无需任何其他内容(例如ms%):

#!/bin/sh
ping -c1 host | grep rtt | cut -d"=" -f2 | cut -d"/" -f2

如果您必须检索多个值,则输出格式必须是:

field1:value1 field2:value2 field3:value3

然后每个字段将附加到一个输出字段。

#!/bin/sh
result=$(ping -c1 host | grep rtt | cut -d"=" -f2)
min=$(echo $result | cut -d"/" -f1)
avg=$(echo $result | cut -d"/" -f2)
max=$(echo $result | cut -d"/" -f3)
echo "min:$min avg:$avg max:$max"

您可以在这里找到进一步的解释和示例:

相关内容