Sidebar

Zabbix Summit 2022
View presentations

2 Мониторинг специфичных приложений

2.1 AS/400

Платформу IBM AS/400 можно мониторить с помощью SNMP. Более подробную информацию вы можете получить по адресу http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg244504.html?Open.

2.2 MySQL

Файл конфигурации misc/conf/zabbix_agentd.conf содержит список пользовательских параметров, которые могут быть использованы для наблюдения за MySQL.

### Set of parameter for monitoring MySQL server (v3.23.42 and later)
       ### Change -u and add -p if required
       #UserParameter=mysql[ping],mysqladmin -uroot ping|grep alive|wc -l
       #UserParameter=mysql[uptime],mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" 
       #UserParameter=mysql[threads],mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q"
       #UserParameter=mysql[questions],mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S"
       #UserParameter=mysql[slowqueries],mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O"
       #UserParameter=mysql[qps],mysqladmin -uroot status|cut -f9 d":"   
       #UserParameter=version[mysql],mysql -V
2.2.1 mysql[ping]

Проверить в рабочем ли состоянии MySQL

    Результат: 0 - не запущен 1 - в рабочем состоянии
2.2.2 mysql[uptime]

Количество секунд с момента запуска MySQL

2.2.3 mysql[threads]

Количество потоков MySQL

2.2.4 mysql[questions]

Количество обрабатываемых запросов

2.2.5 mysql[slowqueries]

Количество медленных запросов

2.2.6 mysql[qps]

Запросов в секунду

2.2.7 mysql[version]

Версия MySQL. Пример: mysql Ver 11.16 Distrib 3.23.49, для pc-linux-gnu (i686)

2.3 Роутеры Mikrotik

Используйте SNMP агент предоставляемый Mikrotik. Смотрите http://www.mikrotik.com для получения более подробной информации.

2.4 WIN32

Используйте включенный в поставку Zabbix агент Win32 (скомпилированный).

2.5 Novell

Используйте MRTG Extension Program для сервера NetWare (MRTGEXT.NLM) для Novell. Агент совместим с протоколом использованным в Zabbix. Агент доступен по адресу http://forge.novell.com/modules/xfmod/project/?mrtgext.

Элементы данных должны быть настроены на тип Zabbix Агент и должны иметь ключи в соответствии с документацией MRTGEXT.

Например:

** UTIL1 **

Средне использование CPU за 1 минуту

** CONNMAX **

Использование максимального количества лицензируемых подключений

** VFKSys **

Свободно байт в разделе Sys:

Полный список поддерживаемых параметров у агента вы можете найти в файле readme.txt, который является частью приложения.

2.6 Tuxedo

Tuxedo утилиты для командной строки tmadmin и qmadmin могут быть использованы в определениях UserParameter, для того чтобы получить счетчики производительности сервера/сервисов/очереди и доступности ресурсов Tuxedo.

2.7 Informix

Стандартная утилита Informix onstat может быть использована для мониторинга практически всех аспектов базы данных Informix. Кроме того, Zabbix может получать информацию через предоставляемого Informix SNMP агента.

2.8 JMX

Прежде всего вам необходимо настроить ваш jvm для разрешения его мониторинга. Вы знаете как это можно сделать? Вы можете использовать утилиту sun jconsole, которая поставляется вместе с jdk, нужно направить эту утилиту на вашу машину с запущенным jvm. Если вы смогли подключиться, то вы молодец.

В своей среде tomcat включите следующие опции для jvm:

-Dcom.sun.management.jmxremote \
       -Dcom.sun.management.jmxremote.port=xxxxx \
       -Dcom.sun.management.jmxremote.ssl=false \
       -Dcom.sun.management.jmxremote.authenticate=true \
       -Dcom.sun.management.jmxremote.password.file=/path/java/jre/lib/management/jmxremote. password"

Здесь говорится о том, что сервер jmx работает на порту ХХХХХ, использует аутентификацию по паролям, которые хранит в файле jmxremote.password. См. документацию Sun по jconsole для получения более подробных сведений. (Вы можете рассмотреть включение ssl для того чтобы сделать подключение более защищенным.)

Как только вышеперечисленные действия будут сделаны, теперь можно запустить JConsole и видеть все, что в настоящее время доступно (и проверить, что можно успешно подключиться). jconsole также может предоставить вам информацию, необходимую для конкретного запроса атрибутов с информационной панели jmx.

Теперь, поскольку используется Tomcat, имеется два способа для получения атрибутов jmx (или результата операции с jmx). При использовании первого способа вы можете использовать servlet предоставленный Tomcat. При использовании второго способа можете отправлять правильно сформированные запросы через утилиту командной строки jmx.

Например нас интересуют пиковые потоки в нашей системе. Вы должны просмотреть список объектов jmx через jconsole и найти их через java.lang, Threading. После выбора Threading, нажимаем на информационную панель и там можем увидеть что mbean имя это "java.lang:type=Threading"

С tomcat можно сделать следующее:

curl -s -u<jmxusername>:<jmxpassword> 'http://<tomcat_hostname>/manager/jmxproxy/?qry=java.lang:type=Threading'

Где имя пользователя и пароль к jmx определены в файле опций jvm, строка qry является одной из полученных строк из jconsole.

Результирующая информация из этого и будет метриками из этого ключа jmx. Разложите результирующую информацию и выберите необходимый вам номер.

Если у вас нет servlet, то вы можете создать http запрос к интерфейсу jmx. Вы можете использовать утилиту командной строки, такую как:

/<pathTo>/java -jar /<pathTo>/cmdline-jmxclient.jar <jmxusername>:<jmxpassword> <jvmhostname>:<jmxport> java.lang:type=Threading PeakThreadCount

Разница с клиентом командной строки, в том что вам нужно указать требуемый атрибут. Не указав атрибут, вы получите список всех атрибутов доступных к Threading.

Снова разложите результат для выбора ваших данных.

Как только вы уверенно выбрали интересующие вас данные, вы можете добавить их в команду пользовательского параметра zabbix. Например:

UserParameter=jvm.maxthreads, /usr/bin/curl -s -u<jmxusername>:<jmxpassword> 'http://<tomcat_hostname>/manager/jmxproxy/?qry=java.lang:type=Threading' | /bin/awk '/^PeakThreadCount\:/ { gsub( /[^0123456789]/, "" ); print $1 }'

или

UserParameter=jvm.maxthreads, /<путь до>/java -jar /<путь до>/cmdline-jmxclient.jar <jmxusername>:<jmxhostname> <jvmhostname>:<jmxport> java.lang:type=Threading PeakThreadCount | <some filter to grab just the number you need - left as an exercise to the reader>

Вот и все.

Предпочтительнее получать статистику с servlet через http, а не использовать клиента командной строки на java, потому что http гораздо "легче" для выполнения и выборки требуемой информации.

Требуется клиент jmx для командной строки? Используйте вот такой отсюда: http://crawler.archive.org/cmdline-jmxclient/

Информация по настройке jmx для мониторинга вашей jvms http://java.sun.com/j2se/1.5.0/docs...ment/agent.html

Общая информация по JMX http://java.sun.com/j2se/1.5.0/docs...verviewTOC.html

Видимо jvm 1.5 также поддерживает SNMP, который предоставляет другие решения