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

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

令我困惑的是,Cacti如何使用例如perlpython脚本来收集数据? 它使用SNMP呢? 如果是这样的协议如何工作呢?

使用Cacti您不仅限于SNMP查询。

您可以select运行您自己的任何脚本作为数据input方法。 它可能是PerlPHPPythonBash或其他。 只需select脚本/命令inputtypes:

在这里输入图像说明

您的脚本必须输出至less一个值。 该值将附加到Cacti的输出字段,稍后用于创build最终graphics。

如果您只需要一个输出字段,就可以直接打印该值(例如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" 

你可以在这里find更多的解释和例子: