Рассмотрим как написать собственный скрипт для Cacti. Для примера построим графики средней нагрузки многопроцессорного сервера.
Для начала определимся откуда брать загрузку процессора. На мониторируемом сервере необходимо установить и настроить snmp агент. Откуда и будем брать значения нагрузки процессоров для cacti. Например у меня:
#snmpwalk -c community -v 2c serverclient | grep ProcessorLoad HOST-RESOURCES-MIB::hrProcessorLoad.1 = INTEGER: 31 HOST-RESOURCES-MIB::hrProcessorLoad.2 = INTEGER: 24 #snmptranslate -On HOST-RESOURCES-MIB::hrProcessorLoad .1.3.6.1.2.1.25.3.3.1.2 |
Видим у нас два процессора с нагрузками: 1 — 31%, 2 -24%
В cacti есть готовые шаблоны для отображения загрузки процессоров, однако под Windows я ничего не нашел работающего, имеется по умолчанию только возможность отобразить графики по каждому процессору. Поэтому для средней нагрузки у меня получился такой вот небольшой скрипт для cacti:
#!/usr/bin/perl my @prload = `snmpwalk -c community -v 2c serverclient .1.3.6.1.2.1.25.3.3.1.2 | grep ProcessorLoad | awk '{print \$4}'`; my $count_cpu = @prload; grep $sum_load+=$_,@prload; $srednee = $sum_load/$count_cpu; printf "CPUALL:$srednee"; |
Скрипт копируем в директорию где у вас лежат скрипты для cacti, у меня это /usr/local/share/cacti/scripts. Не забыть дать права на выполнение (chmod +x ваш_скрипт).
Далее работаем с вебинтерфейсом cacti.
Первое что нужно это создать новый метод ввода данных Data Input Methods, как на скриншоте:
Так как наш скрипт не принимает никаких входных параметров, то в Input Fields ничего не вписываем. А вот выводимое поле Output Fields у нас есть:
После этого метод можно сохранять.
Далее настраиваем источник данных Data Sources. Идем в Data Sources и жмем add. Выставляем Selected Data Template и Host в значение none и жмем Create
В появившемся окне заполняем поля как на рисунке
Всё данные у нас собираются. Создаем график. Идем в Graph Management ? add
Жмем Create и получаем продолжение настроек:
Далее настроим источник данных для графика. Жмем Graph Items ? add
В итоге получим вот такой вот график
Обновлено 07.04.2016 18:56