Как Cacti собирает данные с помощью скриптов?

Как Cacti собирает данные с помощью скриптов?

Мы знаем, что Cacti использует SNMP для запроса и сбора данных. Насколько мне известно, менеджер SNMP использует Object ID (OID) для запроса определенного объекта и получения ответа от агента SNMP относительно этого OID.

Меня смущает то, как Cacti использует eg perlили pythonскрипт для сбора данных? Использует ли он тогда SNMP? Если да, то как работает протокол?

решение1

С Cactiним вы не ограничены только SNMP-запросами.

Вы можете выбрать запуск любого собственного скрипта в качестве метода ввода данных. Это может быть Perl, PHP, Python, Bashили что угодно. Просто выберите тип ввода скрипта/команды:

введите описание изображения здесь

Ваш скрипт должен выводить по крайней мере одно значение. Это значение будет прикреплено к выходному полю внутри 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"

Дополнительные пояснения и примеры можно найти здесь:

Связанный контент