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

utl*_*amn 4 linux monitoring snmp cacti

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

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

kri*_*sFR 5

Cacti您一起,您不仅限于 SNMP 查询。

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

在此输入图像描述

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

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

#!/bin/sh
ping -c1 host | grep rtt | cut -d"=" -f2 | cut -d"/" -f2
Run Code Online (Sandbox Code Playgroud)

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

field1:value1 field2:value2 field3:value3
Run Code Online (Sandbox Code Playgroud)

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

#!/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"
Run Code Online (Sandbox Code Playgroud)

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