Для того чтобы добавить новое поле на Web интерфейс системы мониторинга Nagios или Icinga необходимо внести соответствующие изменения в исходник для status.cgi - status.c.
1. Скачиваем и распаковываем последнюю версию Nagios\Icinga
2. Открываем файл /cgi/status.c
3. Находим раздел который формирует основную таблицу ( раздел отмечен комментарием "/* the main list of services */") и добавляем в конце списка столбцов строку:
printf("<TH CLASS='status'>Notes</TH>\n");
4. Находим раздел отмеченный комментарием "/* the rest of the columns... */" и так же в конце дописываем
printf("<TD onClick=\"toggle_checkbox('service_%d','tableformservice');\" CLASS='status%s' valign='center'>%s</TD>\n", total_service_entries, status_bg_class, (temp_service->notes==NULL)? " ":temp_service->notes);
В данном случае добавлен функционал заменяющий текст null на пробел в случае если поле не содержит значений ((temp_service->notes==NULL)? " ").
5. Пересобираем все CGI (make -cgi), затем просто заменяем получившимся status.cgi уже содержащийся в каталоге /usr/local/icinga/sbin файл
P.S. для Nagios все примерно тоже самое, за исключением части формирующей включение чек-бокса при нажатии на строку ("<TD onClick=\"toggle_checkbox('service_%d','tableformservice');\" CLASS='status%s' valign='center'>%s</TD>\n")
Точно таким же образом можно вывести любое другое поле из представленных в используемых функциях. Подробнее по структуре функций для Icinga можно посмотреть здесь:
http://fossies.org/dox/icinga-1.8.1/index.html
Nagios:
http://fossies.org/dox/nagios-3.4.2/
1. Скачиваем и распаковываем последнюю версию Nagios\Icinga
2. Открываем файл /cgi/status.c
3. Находим раздел который формирует основную таблицу ( раздел отмечен комментарием "/* the main list of services */") и добавляем в конце списка столбцов строку:
printf("<TH CLASS='status'>Notes</TH>\n");
4. Находим раздел отмеченный комментарием "/* the rest of the columns... */" и так же в конце дописываем
printf("<TD onClick=\"toggle_checkbox('service_%d','tableformservice');\" CLASS='status%s' valign='center'>%s</TD>\n", total_service_entries, status_bg_class, (temp_service->notes==NULL)? " ":temp_service->notes);
В данном случае добавлен функционал заменяющий текст null на пробел в случае если поле не содержит значений ((temp_service->notes==NULL)? " ").
5. Пересобираем все CGI (make -cgi), затем просто заменяем получившимся status.cgi уже содержащийся в каталоге /usr/local/icinga/sbin файл
P.S. для Nagios все примерно тоже самое, за исключением части формирующей включение чек-бокса при нажатии на строку ("<TD onClick=\"toggle_checkbox('service_%d','tableformservice');\" CLASS='status%s' valign='center'>%s</TD>\n")
Точно таким же образом можно вывести любое другое поле из представленных в используемых функциях. Подробнее по структуре функций для Icinga можно посмотреть здесь:
http://fossies.org/dox/icinga-1.8.1/index.html
Nagios:
http://fossies.org/dox/nagios-3.4.2/
Комментариев нет:
Отправить комментарий