Ad Widget

Collapse

Настройка триггера для Tomcat

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dyuha85
    Member
    • Aug 2012
    • 41

    #1

    Настройка триггера для Tomcat

    Добрый день!

    Моей задачей является настроить триггер на Tomcat, т.е. если Tomcat падает срабатывает ALERT!

    Настраивал Zabbix как описано здесь:

    -- http://www.zabbix.com/forum/showthread.php?t=27153

    -- http://www.zabbix.com/forum/showthread.php?t=32249

    (CentOS 6.2 (64 bit), Zabbix 2.0.1)

    Всё идентично. То есть добился того, что на интерфейсе Zabbix'a горит зелёный значок JMX. Пробовал добавлять метрики из стандартного шаблона JMX Jeneric, к сожалению считывает данные не от всех метрик. Вот пример, откуда графики отображаются

    jmx["java.lang:type=Threading","ThreadCount"]
    jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

    Но вот с шаблона JMX Tomcat ни в какую не хочет снимать.

    Пример

    jmx["Catalina:type=GlobalRequestProcessor,name=htt p-8080",bytesReceived]
    jmx["Catalina:type=GlobalRequestProcessor,name=htt p-8080",requestCount]

    Насколько я понял, с каких метрик Zabbix может снять графики, на то и можно вешать триггер.

    Я попытался пойти другим путём. Пытался настроить триггер на jmx агент, мол если он не будет доступен, надо кричать ALERT. Но здесь меня поджидала другая проблема.

    То есть когда запускается java приложение со строчками:

    CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote.password.file=/usr/share/tomcat6/conf/remote.users -Dcom.sun.management.jmxremote.access.file=/usr/share/tomcat6/conf/remote.acl -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10052 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.0.203"

    (Это в моём случае)

    И в интерфейсе Zabbix прописан jmx агент, а именно IP и port (192.168.0.203:10052), то загорается "залёный JMX".

    Так вот, в чём проблема. Если Tomcat уходит в DOWN, то соответственно передача с jmx агента прекращается и триггер не срабатывает. А в Мониторинг->Триггеры в колонке Инфо стоит знак вопроса, уведомляющий о том, что агент не доступен.


    Подскажите пожалуйста как быть. Как можно настроить элементарный триггер о том, что Tomcat отключился?

    Спасибо заранее.

    Надеюсь мысль свою и вопрос изложил грамотно

    PS: Судя по этой статье
    http://www.zabbix.com/documentation/.../simple_checks

    можно делать простые проверки.

    Можно ли сделать на подобие такого

    {Zabbix server:net.tcp.service.perf[http,,8080].last(0)}<1

    Конечно это кривая формула и она не работает.

    Если порт 8080 не работает, то срабатывает alert.

    Спасибо
    Last edited by dyuha85; 12-10-2012, 15:00.
  • Dushman
    Junior Member
    • Oct 2012
    • 8

    #2
    Originally posted by dyuha85
    Добрый день!
    ...
    можно делать простые проверки.

    Можно ли сделать на подобие такого

    {Zabbix server:net.tcp.service.perf[http,,8080].last(0)}<1

    Конечно это кривая формула и она не работает.

    Если порт 8080 не работает, то срабатывает alert.

    Спасибо
    net.tcp.service.perf возвращает
    0 - если сервис недоступен или количество секунд потребовавшихся для подключения к сервису

    пруф

    таким образом, если сервис отвечает быстрее чем за 1 секунду у вас будет срабатывать триггер.

    В триггере вы не указываете ip адрес (perf[http,,8080])
    в этом случае подставляется по умолчанию 127.0.0.1

    У вас томкат слушат локалхост?


    Для подстановки адреса хоста в шаблоне можно использовать макрос {IPADDRES}, например:
    net.tcp.service.perf[tcp,{IPADDRESS1},8080]

    и в триггере делайте проверку на 0 (сервис недоступен)

    {ВАШ Template:net.tcp.service.perf[tcp,{IPADDRESS1},9080].last(0)}=0


    Подробнее про макросы можно почитать в документации
    Last edited by Dushman; 12-10-2012, 16:26.

    Comment

    • dyuha85
      Member
      • Aug 2012
      • 41

      #3
      Originally posted by Dushman
      net.tcp.service.perf возвращает
      0 - если сервис недоступен или количество секунд потребовавшихся для подключения к сервису

      пруф

      таким образом, если сервис отвечает быстрее чем за 1 секунду у вас будет срабатывать триггер.

      В триггере вы не указываете ip адрес (perf[http,,8080])
      в этом случае подставляется по умолчанию 127.0.0.1

      У вас томкат слушат локалхост?


      Для подстановки адреса хоста в шаблоне можно использовать макрос {IPADDRES}, например:
      net.tcp.service.perf[tcp,{IPADDRESS1},8080]

      и в триггере делайте проверку на 0 (сервис недоступен)

      {ВАШ Template:net.tcp.service.perf[tcp,{IPADDRESS1},9080].last(0)}=0


      Подробнее про макросы можно почитать в документации

      Спасибо большое Dushman!

      Всё работает

      Если кому-то понадобится:

      1. Создаём элемент данных хоста, которого мы хотим мониторить.

      Настройка->Узлы сети -> Элемента данных (Хоста)->Создать елемент данных
      Даём название этому элементу, например port 8080.

      В поле ключ вписываем (нашу волшебную формулу) net.tcp.service.perf[http,ipaddress,8080]

      ipaddress - указываем ip машины, которую хотим мониторить

      2. Cоздаём триггер

      Настройка->Узлы сети -> Триггеры -> Создать триггер

      Даём любое ключевое имя.
      В поле выражение жмём добавить, ищем наш port 8080 и добавляем его.
      В поле функция оставляем по умолчанию (Last value=0), значение T и N оставляем без изменения (должны быть нули).

      Вот в принципе и всё. Теперь можно проверять. Отключив Tomcat, должен сработать ваш триггер.
      Всё это проделывалось на Zabbix 1.8.11

      Если же всё-таки имеется решение через JMX агент, с удовольствием вас выслушаю.

      Всем спасибо.

      Михаилу отдельное спасибо, выручает уже второй раз!!!
      Last edited by dyuha85; 13-10-2012, 11:15.

      Comment

      Working...