Zabbix Documentation 1.8

3.04.04.4 (current)| In development:5.0 (devel)| Unsupported:1.82.02.22.43.23.44.2Guidelines

User Tools

Site Tools

This translation is older than the original page and might be outdated. See what has changed.

Sidebar

ru:manual:cookbook

19 Сборник практик

6.6 Общие приемы

6.6.1 Мониторинг доступности серверов

По крайней мере три метода (или комбинация из всех методов) могут быть использованы для мониторинга доступности сервера.

  • ICMP ping (Ключ “icmpping”)
  • Ключ “status”
  • Функция триггера nodata() для мониторинга доступности узлов сети, для которых используются только активные проверки

6.6.2 Отправка оповещений через WinPopUp

WinPopUp сообщения могут быть очень полезны, если вы работаете в ОС Windows и хотите быстро получать оповещения от Zabbix. Эта функция может быть хорошим дополнением к оповещениям по почте. Подробности о внедрении WinPopUp вы можете найти по адресу http://www.zabbix.com/forum/showthread.php?t=2147.

2009/12/16 05:58

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

6.2.1 AS/400

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

6.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
6.2.2.1 mysql[ping]

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

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

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

6.2.2.3 mysql[threads]

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

6.2.2.4 mysql[questions]

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

6.2.2.5 mysql[slowqueries]

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

6.2.2.6 mysql[qps]

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

6.2.2.7 mysql[version]

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

6.2.3 Роутеры Mikrotik

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

6.2.4 WIN32

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

6.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, который является частью приложения.

6.2.6 Tuxedo

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

6.2.7 Informix

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

6.2.8 JMX

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

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

  1. Dcom.sun.management.jmxremote \
  2. Dcom.sun.management.jmxremote.port=xxxxx \
  3. Dcom.sun.management.jmxremote.ssl=false \
  4. Dcom.sun.management.jmxremote.authenticate=true \
  5. 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, который предоставляет другие решения
2009/12/16 05:54

6.3 Интеграция

6.3.1 HP OpenView

Zabbix можно настроить для отправки сообщений серверу OpenView. Должны быть выполнены следующие шаги:

Шаг 1

Создайте новый Способ оповещений.

Этот Способ оповещений будет выполнять скрипт, который будет отправлять требуемую информацию в OpenView.

Шаг 2

Создайте нового пользователя.

К пользователю нужно присоединить (добавить) только что созданный Способ оповещений.

Шаг 3

Настройте действия.

Настройте действия для отправки пользователю всех (или выбранных) изменений состояния триггеров.

Шаг 4

Напишите скрипт.

Скрипт будет иметь следующую логику. Если триггер перешел в состояние ПРОБЛЕМА, тогда выполняется OpenView команда opcmsg -id application=<application> msg_grp=<msg_grp> object=<object> msg_text=<text>. Эта команда будет возвращать уникальный ID сообщения, который нужно где-то сохранить, предпочтительно в новой таблице в базе данных Zabbix. Если триггер вернулся в состояние ОК, в таком случае должно быть выполнена команда opcmack <message id> с ID сообщения, полученным из базы данных.

Обратитесь к официальной документации OpenView для более подробной информации по opcmsg и opcmack. Сам скрипт здесь не предоставляется.

2009/12/16 06:05