Как проверить использование памяти кучи и версию tomcat в одной команде с check_jmx4perl и nagios
Мы используем Jolokia и jmx4perl для мониторинга экземпляров tomcat с помощью Nagios. В настоящее время мы используем следующее определение команды:
define command {
command_name check_tomcat
command_line $USER3$/check_jmx4perl \
--url $ARG1$ \
--mbean java.lang:type=Memory \
--attribute HeapMemoryUsage \
--path used \
--base java.lang:type=Memory/HeapMemoryUsage/max \
--label "Heap-Memory: %.2r% used (%.2v %u / %.2b %w)" \
--warning 80 --critical 90
}
... что дает нам хороший вывод, как это в Nagios:
OK - Heap-Memory: 37.93% used (295520640 / 779091968)
В идеальном мире я также хотел бы получить версию Tomcat следующим образом:
OK - Tomcat 7.0.68 - Heap-Memory: 37.93% used (295520640 / 779091968)
Можно ли это сделать с помощью одной команды или мне понадобятся 2 определения команд и 2 определения служб?
Спасибо,
1 ответ
Во-первых, можно проверить tomcat с помощью пользовательской конфигурации. В этой конфигурации будут ваши команда и служба для проверки tomcat. Затем вы можете прочитать этот файл cfg следующим образом.
--config /etc/nagios/check_jmx4perl/tomcat.cfg
--server servername \
--check tc_servlet_requests \
--critical 1000 \
servletname
Чтобы написать команду и службу в одном файле конфигурации. Просто напишите определение команды, а затем определение службы этой команды. Также убедитесь, что файл.cfg имеет привилегии root.
Jmx4Perl предоставляет альтернативный способ доступа к интерфейсам управления Java JEE Server, основанным на JMX (Java Management Extensions). Это агентный подход, при котором небольшое веб-приложение Java, развернутое на сервере приложений, обеспечивает доступ на основе HTTP/JSON к компонентам JMX MBeans, зарегистрированным на сервере приложений.
КАК ЭТО УСТРОЕНО
Для режима агента на сервере приложений Java необходимо развернуть небольшую WAR агента Java (веб-архив). Этот агент предоставлен проектом Jolokia (www.jolokia.org). Нет необходимости добавлять какие-либо параметры запуска на сервер приложений и открывать любые дополнительные порты. Модуль Perl JMX::Jmx4Perl получает доступ к развернутому сервлету агента и преобразует результаты запроса из JSON в простой объект Perl.