Sabemos que o Cacti usa SNMP para consultar e coletar dados. Até onde eu sei, o gerenciador SNMP usa Object ID (OID) para consultar um determinado objeto e obter a resposta de um agente SNMP em relação a esse OID.
O que me confunde é como o Cacti usa, por exemplo, perl
ou python
script para coletar dados? Ele usa SNMP então? Se sim, como funciona o protocolo?
Responder1
Com Cacti
você não está limitado apenas a consultas SNMP.
Você pode optar por executar qualquer script de sua preferência como método de entrada de dados. Pode ser Perl
, PHP
, ou qualquer outra coisa Python
. Bash
Basta escolher o tipo de entrada Script/Comando:
Seu script deve gerar pelo menos um valor. Este valor será anexado a um campo de saída Cacti
e usado posteriormente para criar o gráfico final.
Se você precisar apenas de um campo de saída, basta imprimir o valor como está (por exemplo, 12
) sem mais nada (por exemplo ms
, , %
):
#!/bin/sh
ping -c1 host | grep rtt | cut -d"=" -f2 | cut -d"/" -f2
Caso você precise recuperar vários valores, o formato de saída deve ser:
field1:value1 field2:value2 field3:value3
Então cada campo será anexado a um campo de saída.
#!/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"
Você pode encontrar mais explicações e exemplos aqui:
- http://www.cacti.net/downloads/docs/html/making_scripts_work_with_cacti.html
- http://forums.cacti.net/viewtopic.php?t=11288(não é mais mantido pelo autor, mas ainda não está obsoleto).