Для тех, кто использует связку на подобии nginx + cacti для мониторинга своих ресурсов, встает вопрос о том, как добавлять, удалять узлы по мере их изменения.
Это заметка о том как добавлять и удалять хосты в cacti.
Консольные утилиты cacti в случае Centos лежат в директории /usr/share/cacti/cli/
Приведу несколько несложных примеров:
Добавление хоста из коммандной строки:
php /usr/share/cacti/cli/add_device.php --description=hostname1 --ip=192.168.1.1 --template=9 --notes='auto add by script'
где id template можно узнать из web итерфейса или выполнив:
php /usr/share/cacti/cli/add_device.php --list-host-templates
Результат:
0 None
1 Generic SNMP-enabled Host
3 ucd/net SNMP Host
4 Karlnet Wireless Bridge
5 Cisco Router
6 Netware 4/5 Server
7 Windows 2000/XP Host
8 Local Linux Machine
9 MyTemplate
Добавление графиков из командной строки:
php /usr/share/cacti/cli/add_graphs.php --graph-type=ds --graph-template-id=2 --host-id=2 --snmp-query-id=1 --snmp-query-type-id=14 --snmp-field=ifDescr --snmp-value=Ethernet0/0/1
Параметров много. Обо всем по порядку.
graph-type — график на основе graph template (cg) или datasource (ds)
graph-template-id — шаблон, применяемый к графику. Доступные шаблоны можно посмотреть командой php /usr/share/cacti/cli/add_graphs.php --list-graph-templates
snmp-query-id — параметр для ds. Id snmp запроса к хосту. Доступные можно посмотреть командой php /usr/share/cacti/cli/add_graphs.php --list-snmp-queries
snmp-query-type-id — тип snmp запроса для определенного snmp-query-id. Например для SNMP — Interface Statistics этот список выглядит так:
php /usr/share/cacti/cli/add_graphs.php --list-query-types --snmp-query-id=1
2 In/Out Errors/Discarded Packets
3 In/Out Non-Unicast Packets
4 In/Out Unicast Packets
9 In/Out Bytes (64-bit Counters)
13 In/Out Bits
14 In/Out Bits (64-bit Counters)
16 In/Out Bytes
20 In/Out Bits with 95th Percentile
21 In/Out Bits with Total Bandwidth
22 In/Out Bytes with Total Bandwidth
snmp-field — одно из предложенных полей SNMP fields конкретного хоста. Посмотреть можно так: php /usr/share/cacti/cli/add_graphs.php --list-snmp-fields --host-id=2
snmp-value — Список значений, по которым можно отрисовать график для заданного snmp-field. Список тоже можно предварительно посмотреть:
php /usr/share/cacti/cli/add_graphs.php --list-snmp-values --host-id=215 --snmp-field=ifDescr
Удаление хостов из командной строки
Для удаления хостов скрипта из коробки не оказалось.
Решение быдо найдено на форуме cacti — ссылка на файл
Скрипт надо положить ко всем остальным скриптам (/usr/share/cacti/cli/) и для удаления хоста вместе с графиками и источниками данных выполнить, например:
php /usr/share/cacti/cli/remove_device.php —device-id=3,6,4
Для лучшего понимания советую почитать документацию Cacti по шаблонам