Ad Widget

Collapse

Мониторинг доступности хоста за нат

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • OttoV
    Junior Member
    • Jul 2014
    • 14

    #1

    Мониторинг доступности хоста за нат

    Всем здравствуйте!
    Задача мониторить доступность сервера, находящегося за натом.
    Использую такой триггер:
    Code:
    {Server:agent.ping.nodata(200)}=1&{Server:icmpping[].sum(200)}>12
    При этом "Server:agent.ping" - активный агент, пинг каждые 10 сек.
    Server:icmpping[] - пингуем внешний ip для проверки интернета, каждые 10 сек.

    Проблема в том, что если в компании надолго пропадает интернет, то в почту приходят уведомления вроде таких (время отправки сохранено):
    - Проблема: пропал интернет (12:15)
    - ОК: пропал интернет (13:10)
    - Проблема: недоступен хост Server (13:11)
    - ОК: недоступен хост Server (13:11)

    Т.е. когда интернет восстанавливается, почему-то срабатывает триггер на недоступность хоста.

    Я пробовал другой подход, ставил триггер-"недоступность хоста" в зависимость от триггера-"наличия интернета", но ситуация точно такая же.

    Как вы проверяете доступность серверов с учетом доступности интернета?
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    Нужны "последние данные" по обоим ключам. Скорее всего после того как интернет "поднялся" данных от агента действительно нет. Может какой то интервал ресенда у агента есть или таймер-таймаут на установление TCP сессии на компьютере-агенте увеличен (120+ секунд, по умолчанию должен быть 60s, не факт что, например, на виндовсе дефолт не 120s).

    Comment

    • Zentarim
      Senior Member
      • Mar 2012
      • 526

      #3
      Возможно не в тему, однако прочитать стоит:

      Comment

      • OttoV
        Junior Member
        • Jul 2014
        • 14

        #4
        Originally posted by Jimson
        Нужны "последние данные" по обоим ключам. Скорее всего после того как интернет "поднялся" данных от агента действительно нет. Может какой то интервал ресенда у агента есть или таймер-таймаут на установление TCP сессии на компьютере-агенте увеличен (120+ секунд, по умолчанию должен быть 60s, не факт что, например, на виндовсе дефолт не 120s).
        Думаю, что 60 сек., т.к. судя по времени писем триггер-"недоступность хоста" срабатывает через минуту после появления интернета.
        Я специально в условии {Server:icmpping[].sum(200)}>12 установил время в 120 сек.(12*10), чтобы агент успел очнуться, запросить новые данные с сервера и начать посылать пинги. Но неужели ему мало 120 сек? Можно попробовать еще увеличить, скажем до 150 сек.
        С последними данными работать сложно, т.к. сложно поймать момент, когда пропадает интернет, он наступает обычно ночью. Можно, конечно, искусственно перекрыть интернет, но тоже немного проблематично. Вот если бы в Заббиксе был где-то доступ ко всем получаемым данным в сыром виде (не график), например данные за 2 часа, тогда их можно было бы представить.


        Originally posted by Zentarim
        Возможно не в тему, однако прочитать стоит:

        https://www.zabbix.com/forum/showthread.php?t=17134
        Просмотрел бегло, по-моему, не мой случай.

        Comment

        • yukra
          Senior Member
          • Apr 2013
          • 1359

          #5
          Originally posted by ottov
          Вот если бы в Заббиксе был где-то доступ ко всем получаемым данным в сыром виде (не график), например данные за 2 часа, тогда их можно было бы представить.
          я просто приложу картинку.
          Last edited by yukra; 22-07-2014, 09:16.

          Comment

          • OttoV
            Junior Member
            • Jul 2014
            • 14

            #6
            Отлично, спасибо за наглядный пример! )
            Жаль только, что максимум 500 значений, при 10 сек. обновлении это 80 минут. Придется увеличить интервал, чтобы с утра успеть снять данные, если ночью сработает триггер.

            Comment

            • yukra
              Senior Member
              • Apr 2013
              • 1359

              #7
              Originally posted by ottov
              Отлично, спасибо за наглядный пример! )
              Жаль только, что максимум 500 значений, при 10 сек. обновлении это 80 минут. Придется увеличить интервал, чтобы с утра успеть снять данные, если ночью сработает триггер.
              То есть пункт "значения" вы игнорируете сознательно?
              (стрелка целилась именно в него, но в виду того что в данный момент у меня сломана правая нога я не смог нарисовать стрелку достаточно аккуратно (и не спрашивай как перелом ноги коррелирует с прямотой стрелок)).

              Comment

              • OttoV
                Junior Member
                • Jul 2014
                • 14

                #8
                Где были мои глаза? )
                Скопирую данные, отпишусь.

                Отписываюсь:
                Code:
                Наличие интернета:
                21.Июл.2014 19:00:48	1
                21.Июл.2014 19:00:38	1
                21.Июл.2014 19:00:28	1
                21.Июл.2014 19:00:18	0
                21.Июл.2014 19:00:08	0
                21.Июл.2014 18:59:58	0
                21.Июл.2014 18:59:48	0
                21.Июл.2014 18:59:38	0
                21.Июл.2014 18:59:28	0
                21.Июл.2014 18:59:18	0
                21.Июл.2014 18:59:08	0
                21.Июл.2014 18:58:58	0
                21.Июл.2014 18:58:48	0
                21.Июл.2014 18:58:38	0
                21.Июл.2014 18:58:28	0
                21.Июл.2014 18:58:18	0
                21.Июл.2014 18:58:08	0
                21.Июл.2014 18:57:58	0
                21.Июл.2014 18:57:48	0
                21.Июл.2014 18:57:38	0
                21.Июл.2014 18:57:28	0
                21.Июл.2014 18:57:18	0
                21.Июл.2014 18:57:08	0
                21.Июл.2014 18:56:58	0
                21.Июл.2014 18:56:48	0
                21.Июл.2014 18:56:38	0
                21.Июл.2014 18:56:28	0
                21.Июл.2014 18:56:18	0
                21.Июл.2014 18:56:08	0
                21.Июл.2014 18:55:58	0
                21.Июл.2014 18:55:48	0
                21.Июл.2014 18:55:38	0
                21.Июл.2014 18:55:28	0
                21.Июл.2014 18:55:18	0
                21.Июл.2014 18:55:08	0
                21.Июл.2014 18:54:58	1
                21.Июл.2014 18:54:48	1
                
                Пинг от агента:
                21.Июл.2014 19:03:13	1
                21.Июл.2014 19:03:03	1
                21.Июл.2014 19:02:52	1
                21.Июл.2014 19:02:42	1
                21.Июл.2014 19:02:32	1
                21.Июл.2014 19:02:23	1
                21.Июл.2014 19:02:13	1
                21.Июл.2014 19:02:02	1
                21.Июл.2014 19:01:52	1
                21.Июл.2014 19:01:42	1
                21.Июл.2014 19:01:32	1
                21.Июл.2014 19:01:23	1
                21.Июл.2014 19:01:13	1
                21.Июл.2014 19:01:02	1
                21.Июл.2014 19:00:20	1
                21.Июл.2014 18:59:38	1
                21.Июл.2014 18:58:35	1
                21.Июл.2014 18:57:53	1
                21.Июл.2014 18:56:50	1
                21.Июл.2014 18:56:08	1
                21.Июл.2014 18:55:04	1
                21.Июл.2014 18:54:55	1
                21.Июл.2014 18:54:45	1
                21.Июл.2014 18:54:34	1
                21.Июл.2014 18:54:24	1
                Last edited by OttoV; 22-07-2014, 09:50.

                Comment

                • Jimson
                  Senior Member
                  • Jan 2008
                  • 1327

                  #9
                  Не совсем то что вы ожидали увидеть как я понимаю. Исходя из того что "когда интернета небыло" у нас есть данные agent.ping делаем заключение что агент кэширует данные agent.ping. Во первых я бы это зарепортил, agent.ping в активном режиме кэшировать нельзя, иначе история будет нам показывать ерунду. Во вторых придется сделать тест - отрубить интернет, и посмотреть когда же приходят от агента данные после "поднятия интернета".

                  Comment

                  • OttoV
                    Junior Member
                    • Jul 2014
                    • 14

                    #10
                    Я соберу больше статистики и отпишусь. Попробую сэмулировать отсутствие интернета.

                    Comment

                    • OttoV
                      Junior Member
                      • Jul 2014
                      • 14

                      #11
                      Провел маленький эскперимент: заблокировал на 5 минут прохождение пакетов от сервера компании до сервера zabbix на 10051 порт и посмотрел на данные от пинга активного агента.
                      Заблокировал в 20:05:30, разблокировал в 20:10:00.

                      Code:
                      22.Июл.2014 20:11:02	1
                      22.Июл.2014 20:10:53	1
                      22.Июл.2014 20:10:43	1
                      22.Июл.2014 20:10:33	1
                      22.Июл.2014 20:10:23	1
                      22.Июл.2014 20:10:13	1
                      22.Июл.2014 20:09:30	1   <---- !!!
                      22.Июл.2014 20:08:27	1   <---- !!!
                      22.Июл.2014 20:07:45	1   <---- !!!
                      22.Июл.2014 20:06:41	1   <---- !!!
                      22.Июл.2014 20:05:59	1   <---- !!!
                      22.Июл.2014 20:05:29	1
                      22.Июл.2014 20:05:19	1
                      22.Июл.2014 20:05:08	1
                      22.Июл.2014 20:04:58	1
                      Как видно, агент действительно кеширует данные.

                      Но все-равно остается вопрос, почему срабатывает триггер?
                      Code:
                      {Server:agent.ping.nodata(200)}=1&{Server:icmpping[].sum(200)}>12
                      Ведь первое условие не выполняется, данные от агента "как бы" поступают.

                      Comment

                      • yukra
                        Senior Member
                        • Apr 2013
                        • 1359

                        #12
                        Originally posted by ottov
                        Ведь первое условие не выполняется, данные от агента "как бы" поступают.
                        Судя по всему "как бы поступают" они после срабатывания триггера и триггер переходит из "проблема" в "ок". А пока они не поступили, горит "проблема"

                        Comment

                        • Jimson
                          Senior Member
                          • Jan 2008
                          • 1327

                          #13
                          Originally posted by ottov
                          Ведь первое условие не выполняется, данные от агента "как бы" поступают.
                          Вы "как бы" не поняли зачем я предложил сделать тест вручную. Надо было проверить когда на сервер фактически приходят те данные которые агент закешировал. Ведь они не могут прийти пока интернета нет, так? А кто нам гарантирует что они приходят на сервер сразу как появился интернет? Может они приходят с какой то задержкой?

                          Comment

                          • OttoV
                            Junior Member
                            • Jul 2014
                            • 14

                            #14
                            Originally posted by jimson
                            Вы "как бы" не поняли зачем я предложил сделать тест вручную. Надо было проверить когда на сервер фактически приходят те данные которые агент закешировал. Ведь они не могут прийти пока интернета нет, так? А кто нам гарантирует что они приходят на сервер сразу как появился интернет? Может они приходят с какой то задержкой?
                            Сейчас еще раз повторил эксперимент. Как только я включил интернет, спустя 4-5 сек. обновились данные от пинга агента (я постоянно обновлял страницу браузера). До этого, пока интернета не было, данные на сервер не приходили.
                            Снова одновременно упали письма, что восстановился интернет и что была проблема с сервером.

                            Comment

                            • OttoV
                              Junior Member
                              • Jul 2014
                              • 14

                              #15
                              И еще один эксперимент. Только на недоступность хоста я проверял триггером {Server:agent.ping.nodata(200)}=1, и ставил его в зависимость от {Server:icmpping[].sum(180)}<1. В итоге точно такой же результат.

                              Comment

                              Working...