Всем доброго дня.
Хочу поделиться, как я подключил weathermap к Zabbix. Использую Zabbix 1.8.3, weathermap 0.97.
Предположим, что фронтенд zabbix установлен в /pub/www/zabbix.
Скачал weathermap с сайта http://www.network-weathermap.com/. Скаченный zip-архив распаковал в папку с фронтендом zabbix - получилось /pub/www/zabbix/weathermap.
Сделал два скрипта - источника данных для weathermap:
Эти скрипты кладутся в /pub/www/zabbix/weathermap/lib/datasources.
Сделал скрипт zab_chart.php. Это переделанный chart.php zabbix'а. Его положил в /pub/www/zabbix. Для чего нужно было переделывать, напишу ниже.
Сделал шаблон данных для weathermap (zab_template.conf). Он кладется в /pub/www/zabbix/weathermap/configs.
Все. Теперь на примере покажу, как это использовать.
Пример конфиг-файла для weathermap, который лежит в /pub/www/zabbix/weathermap/configs.
Для каждого узла сети мы указываем переменную hostname. По этому имени определяется узел в Zabbix.
Для линка указывается начальный и конечный узел сети и их ключи данных.
Вот zab_template.conf:
В шаблоне Zabbix_node target имеет вид zabbixhost:{node:this:hostname}: . После последнего двоеточия указывается ключ элемента данных, по-умолчанию используется icmpping. Если нужно использовать другое, можно указать после двоеточия или сделать дополнительную переменную для узлов, типа hostname.
Возвращаясь к вопросу, зачем переделал chart.php. Это сделано для того, чтобы выбирались id элементов по имени узла сети и ключа элемента.
Все скрипты в аттаче, вопросы/пожелания/дополнения приветствуются
P.S. Вроде бы ничего не забыл, если что еще вспомню - допишу
P.P.S. Да, если кто не знает, как сгенерить картинку по конфигу, то используем
в папке /pub/www/zabbix/weathermap.
Хочу поделиться, как я подключил weathermap к Zabbix. Использую Zabbix 1.8.3, weathermap 0.97.
Предположим, что фронтенд zabbix установлен в /pub/www/zabbix.
Скачал weathermap с сайта http://www.network-weathermap.com/. Скаченный zip-архив распаковал в папку с фронтендом zabbix - получилось /pub/www/zabbix/weathermap.
Сделал два скрипта - источника данных для weathermap:
- WeatherMapDataSource_zabbixhost.php - для получения состояния хоста из Zabbix
- WeatherMapDataSource_zabbixitem.php - для получения данных для линков между хостами
Эти скрипты кладутся в /pub/www/zabbix/weathermap/lib/datasources.
Сделал скрипт zab_chart.php. Это переделанный chart.php zabbix'а. Его положил в /pub/www/zabbix. Для чего нужно было переделывать, напишу ниже.
Сделал шаблон данных для weathermap (zab_template.conf). Он кладется в /pub/www/zabbix/weathermap/configs.
Все. Теперь на примере покажу, как это использовать.
Пример конфиг-файла для weathermap, который лежит в /pub/www/zabbix/weathermap/configs.
Code:
INCLUDE configs/zab_template.conf
# End of global section
# regular NODEs:
NODE node08757
TEMPLATE Zabbix_node
LABEL node08757
ICON 50 50 images/equip/128/128_g_router_{node:this:status}.png
POSITION 131 160
SET hostname {node:this:label}
NODE node08959
TEMPLATE Zabbix_node
LABEL node08959
ICON 50 50 images/equip/128/128_g_router_{node:this:status}.png
POSITION 609 160
SET hostname {node:this:label}
# regular LINKs:
LINK node08757-node08959a
TEMPLATE Zabbix_link
NODES node08757 node08959
SET hostname_in node08757
SET itemkey_in IF_MIB__ifHCInOctets.30
SET hostname_out node08959
SET itemkey_out IF_MIB__ifHCInOctets.30
Для линка указывается начальный и конечный узел сети и их ключи данных.
Вот zab_template.conf:
Code:
HTMLSTYLE overlib
SCALE DEFAULT 0 0 192 192 192
SCALE DEFAULT 0 1 255 255 255
SCALE DEFAULT 1 10 140 0 255
SCALE DEFAULT 10 25 32 32 255
SCALE DEFAULT 25 40 0 192 255
SCALE DEFAULT 40 55 0 240 0
SCALE DEFAULT 55 70 240 240 0
SCALE DEFAULT 70 85 255 192 0
SCALE DEFAULT 85 100 255 0 0
SET key_hidezero_DEFAULT 1
# End of global section
# TEMPLATE-only NODEs:
NODE Zabbix_node
USESCALE none
LABELBGCOLOR none
LABELOUTLINECOLOR none
OVERLIBCAPTION {node:this:label}
LABELOFFSET 0 -20
TARGET zabbixhost:{node:this:hostname}:
# TEMPLATE-only LINKs:
LINK Zabbix_link
WIDTH 3
BANDWIDTH 1000M
OVERLIBCAPTION {link:this:hostname_in} ({link:this:itemkey_in}) - {link:this:hostname_out} ({link:this:itemkey_out})
# INOVERLIBGRAPH http://zabbix.tts.loc/zab_chart.php?host={link:this:hostname_in}&item={link:this:itemkey_in}&height=50&width=300&legend=0
# OUTOVERLIBGRAPH http://zabbix.tts.loc/zab_chart.php?host={link:this:hostname_out}&item={link:this:itemkey_out}&height=50&width=300&legend=0
OVERLIBGRAPH http://zabbix.tts.loc/zab_chart.php?host[]={link:this:hostname_in}&item[]={link:this:itemkey_in}&host[]={link:this:hostname_out}&item[]={link:this:itemkey_out}&color[]=009900&color[]=000099&drawtype[]=5&drawtype[]=2&height=50&width=400&legend=1
# ININFOURL http://zabbix.tts.loc/zab_chart.php?host={link:this:hostname_in}&item={link:this:itemkey_in}
# OUTINFOURL http://zabbix.tts.loc/zab_chart.php?host={link:this:hostname_out}&item={link:this:itemkey_out}
INFOURL http://zabbix.tts.loc/zab_chart.php?host[]={link:this:hostname_in}&item[]={link:this:itemkey_in}&host[]={link:this:hostname_out}&item[]={link:this:itemkey_out}&color[]=009900&color[]=000099&drawtype[]=5&drawtype[]=2
TARGET zabbixitem:{link:this:hostname_in}:{link:this:itemkey_in}:{link:this:hostname_out}:{link:this:itemkey_out}
Возвращаясь к вопросу, зачем переделал chart.php. Это сделано для того, чтобы выбирались id элементов по имени узла сети и ключа элемента.
Все скрипты в аттаче, вопросы/пожелания/дополнения приветствуются

P.S. Вроде бы ничего не забыл, если что еще вспомню - допишу

P.P.S. Да, если кто не знает, как сгенерить картинку по конфигу, то используем
Code:
php weathermap --config configs/test --htmloutput weathermap.html
Comment