Ad Widget

Collapse

доступность хоста: snmp+ping

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Yurius
    Junior Member
    • Dec 2010
    • 6

    #1

    доступность хоста: snmp+ping

    Добрый день!
    Недавно работаю с заббиксом.

    Ситуация такая: заббикс агент не использую, использую snmp + проверки TCP портов (80, 25, ...).

    1. Как бы мне настроить триггеры так, чтобы когда пропадают пинги + нет ответа от snmp - присылалось только одно уведомление "host unreachable, а не несколько" (недоступны порт 80, порт 25, ...).
    Как проверить доступность udp порта (кругом встречаю только tcp)?

    2. Можно ли как-то использовать параметр "status" хоста или он относится только к агенту и при работе с snmp использоваться не может?

    3. Можно ли задать мое собственное определение статуса хоста и задать для него соответствцющий триггер?.

    Ценю любую помощь и советы )
  • dima_dm
    Senior Member
    • Dec 2009
    • 2697

    #2
    Originally posted by Yurius
    Добрый день!
    Недавно работаю с заббиксом.

    Ситуация такая: заббикс агент не использую, использую snmp + проверки TCP портов (80, 25, ...).

    1. Как бы мне настроить триггеры так, чтобы когда пропадают пинги + нет ответа от snmp - присылалось только одно уведомление "host unreachable, а не несколько" (недоступны порт 80, порт 25, ...).
    Как проверить доступность udp порта (кругом встречаю только tcp)?
    Используйте зависимости триггеров.
    http://www.zabbix.com/documentation/...onfig/triggers
    Originally posted by Yurius
    2. Можно ли как-то использовать параметр "status" хоста или он относится только к агенту и при работе с snmp использоваться не может?
    Лучше не использовать. Криво работает.

    Comment

    • Yurius
      Junior Member
      • Dec 2010
      • 6

      #3
      Originally posted by dima_dm
      Лучше не использовать. Криво работает.
      Вот его то как раз и хочется использовать - тогда с зависимостями морочиться не надо. Но скорее всего придется именно ими все и решать.

      Comment

      • dima_dm
        Senior Member
        • Dec 2009
        • 2697

        #4
        Originally posted by yurius
        Вот его то как раз и хочется использовать - тогда с зависимостями морочиться не надо. Но скорее всего придется именно ими все и решать.
        От зависимостей Вы так не уйдёте.

        Comment

        • Yurius
          Junior Member
          • Dec 2010
          • 6

          #5
          Originally posted by dima_dm
          От зависимостей Вы так не уйдёте.
          Т.е. мне в любом случае придется использовать условия, если я выполняю простые проверки (например, много tcp port cheking) для ситуации, когда хост не доступен?

          Comment

          • dima_dm
            Senior Member
            • Dec 2009
            • 2697

            #6
            Originally posted by Yurius
            Т.е. мне в любом случае придется использовать условия, если я выполняю простые проверки (например, много tcp port cheking) для ситуации, когда хост не доступен?
            Да. Т.к. триггеры работают независимо, если нет зависимостей. И status это такой-же Item (только виртуальный), как любой другой.

            Comment

            • Yurius
              Junior Member
              • Dec 2010
              • 6

              #7
              Originally posted by dima_dm
              Да. Т.к. триггеры работают независимо, если нет зависимостей. И status это такой-же Item (только виртуальный), как любой другой.
              Понятно. Спасибо за разъяснение, а то я с этим статусом намучался, честно говоря.

              Я в это время почитал доку и вот как придумал определять статус хоста:

              1. Сначала делаю два item'a: "Ping host" и "SSH availability" (ssh вмесето первоначального snmp, потому как сервер под FreeBSD не может проверять udp порты*, а snmpd, как известно, именно на udp работает). Оба - simple, типа icmpping и ssh соответственно.

              2. Делаю третий item: "Host reashability (calculated)", тип Calculated, формула : max("icmpping",#2)+(last("ssh")=1)
              В формуле складывается максимальное за последние два пингования (т.е. будет 0, если хост два раза подряд не пингуетя) и последнюю проверку ssh. Ее проверяю на равность единице, потому что результат отрицательной проверки может быть 0 (не работает) и 2 (таймаут).
              В итоге формула:
              0 - ничего не работае - хост недоступен
              1 - либо только пингуется, либо только ssh работает
              2 - все работает.

              3. Создаю триггер "Host {HOSTNAME} is unreachable (ICMP + SSH)", который кричит, когда "Host reashability (calculated)" равен нулю.

              4. Создаю триггеры для "Ping host" и "SSH availability" (а далее и для других служб) и ставлю их в зависимость от триггера "Host {HOSTNAME} is unreachable (ICMP + SSH)".

              Ping и ssh проверяю раз в 15 сек, доступность - раз в 30 секунд.

              Вот такое вот решение. По моему, довольно красивое

              --
              * - не знаю, почему это не реализовано для FreeBSD, но как workaround можно использовать nmap. Я такое видел в одной мониторилке хостов.

              Comment

              • Yurius
                Junior Member
                • Dec 2010
                • 6

                #8
                Originally posted by Yurius

                4. Создаю триггеры для "Ping host" и "SSH availability" (а далее и для других служб) и ставлю их в зависимость от триггера "Host {HOSTNAME} is unreachable (ICMP + SSH)".

                Ping и ssh проверяю раз в 15 сек, доступность - раз в 30 секунд.
                Зависимость почему-то не работает - при перезапуске хоста приходит три сообщения. calculated обновляется c запозданием.

                Comment

                • dima_dm
                  Senior Member
                  • Dec 2009
                  • 2697

                  #9
                  Originally posted by Yurius
                  Зависимость почему-то не работает - при перезапуске хоста приходит три сообщения. calculated обновляется c запозданием.
                  Поставьте для calculated Item время обновления меньше и
                  чтобы триггеры на ICMP и SSH через большее количество неудачных проверок срабатывали. Зависимости начинают работать тогда, когда триггер, на который указано в зависимости, уже находится в состояние проблема. Т.е. нужно сделать так, чтобы триггер на calculated Item срабатывал раньше других триггеров.

                  Comment

                  • Yurius
                    Junior Member
                    • Dec 2010
                    • 6

                    #10
                    Originally posted by dima_dm
                    Поставьте для calculated Item время обновления меньше и
                    чтобы триггеры на ICMP и SSH через большее количество неудачных проверок срабатывали. Зависимости начинают работать тогда, когда триггер, на который указано в зависимости, уже находится в состояние проблема. Т.е. нужно сделать так, чтобы триггер на calculated Item срабатывал раньше других триггеров.
                    Спасибо за совет!
                    Сегодня реализовал эту идею - заработало.

                    Хочу отметить особенности:
                    1. статус хосту нужно проверять минимум в два раза чаще, чем зависящие службы (триггеры),
                    2. для проверки зависящих триггеров нужно испольховать не одно последнее значение (last(0) ), а два и возможно более, например max(#2), ибо возможно срабатывание зависящего триггера до моментна, когда сработает триггер статуса.

                    Comment

                    Working...