Project

General

Profile

Начальная настройка мониторинга Java для Zabbix и GF

С выходом Zabbix 2 появилась возможность мониторить состояние сервера GlassFish почти «нативными» средствами. В статье мы исходим из:

  • Zabbix 2.0.2. Извините, но установку и настройку собственно системы мониторинга мы описывать не будем. Для Debian доступен в виде пакетов и мы считаем, что сам сервер установлен именно «пакетным» способом
  • Zabbix Java Gataway пока не доступен в качестве самостоятельного приложения
  • Настройка «Доцеро» производилась на базе SunJDK, примерно, как в статье по установке «Доцеро»
  • Статья для вдумчивого выполнения, внимательно смотрите, что делаете :)

Проверка на «вшивость»

В пути запуска должны быть доступны приложения из комплекта JDK — java, javac и jar. У нас это реализовано ссылками:

# ls -la /usr/bin/ja*
lrwxrwxrwx 1 root root 16 Сен  9 23:16 /usr/bin/jar -> /usr/lib/jvm/jar
lrwxrwxrwx 1 root root 17 Фев 19  2012 /usr/bin/java -> /usr/lib/jvm/java
lrwxrwxrwx 1 root root 18 Сен  9 23:16 /usr/bin/javac -> /usr/lib/jvm/javac
# ls -la /usr/lib/jvm/ja*
lrwxrwxrwx 1 root root 19 Сен  9 23:14 /usr/lib/jvm/jar -> jdk1.6.0_31/bin/jar
lrwxrwxrwx 1 root root 20 Фев 19  2012 /usr/lib/jvm/java -> jdk1.6.0_31/bin/java
lrwxrwxrwx 1 root root 21 Сен  9 23:14 /usr/lib/jvm/javac -> jdk1.6.0_31/bin/javac
# java -version
java version "1.6.0_31" 
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)
# jar -version
Usage: jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
[...Фигня поскипана...]
# javac -version
javac 1.6.0_31

Собираем Gateway

Дальше мы действуем, руководствуясь статьей с официального сайта по Java Gateway Замечания к листингу:

  • wget сохраняет с кривым именем, приходится переименовывать
  • Поскольку сам сервер zabbix у нас установлен корректно, пакетами Debian, то java gateway в таком виде — явление временное и потом (когда появится самостоятельный пакет) его надо будет снести не засоряя систему. Посему такой префикс для инсталляции.
# cd /usr/local/src
# wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.0.2/zabbix-2.0.2.tar.gz/download
# mv download zabbix-2.0.2.tar.gz
# tar zxvf zabbix-2.0.2.tar.gz
# zabbix-2.0.2/
# ./configure --enable-java --prefix=/usr/local/zabbix202
# make install

Конфигурируем

Проверяем наличие в конфигурационном файле zabbix-сервера (/etc/zabbix/zabbix_server.conf) параметров связи с gateway.

JavaGateway=localhost
JavaGatewayPort=10052
StartJavaPollers=2

Залезаем в каталог /usr/local/zabbix202/sbin/zabbix_java . По желанию, можно подкорректировать файлы настроек: lib/logback.xml , lib/logback-console.xml и settings.sh .

Запускаем — ./startup.sh

Проверяем, что работает:

# cat /tmp/zabbix_java.log 
2012-09-10 09:29:02.006 [main] INFO  com.zabbix.gateway.JavaGateway - Zabbix Java Gateway 2.0.2 (revision 29214) has started
2012-09-10 09:29:02.013 [main] INFO  com.zabbix.gateway.JavaGateway - listening on 0.0.0.0/0.0.0.0:10052
# netstat -an |fgrep 10052
tcp6       0      0 :::10052                :::*                    LISTEN

Дальше все просто, делается по документации к zabbix . Замечание: в GF интерфейс jmx уже настроен. К нему можно подключаться от имени admin.

  • создаем JMX интерфейс для нашего хоста
  • заводим элемент данных.
    • Тип: JMX агент
    • Ключ: jmx["java.lang:type=Threading","ThreadCount"] — мониторим количество нитей
    • Имя пользователя: admin
    • Пароль: соответственно, админа от нашего GF
    • Единица измерения: шт. — ну, не в килограммах же... :)
  • Цепляем этот элемент к нашему хосту

Наслаждаемся...

Если что не так

Ставим в файле lib/logback.xml уровень логгирования повыше и перезапускаем Java Gateway.

<root level="debug">
  <appender-ref ref="FILE" />
</root>

Ссылки: