Ad Widget

Collapse

Бестолковые корелляции. А может я просто не умею готовить?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Victor Vislobokov
    Senior Member
    • Aug 2018
    • 298

    #1

    Бестолковые корелляции. А может я просто не умею готовить?

    Итак. Снова поднимаю старый вопрос, на который я так и не нашёл приемлимого решения.
    Есть Шлюз и есть Сервер. На Сервере делаются проверки ping и некоторые другие, для которых срабатывают триггеры "нет данных" если значение не получено. Для Шлюза делаем только ping.
    Разумеется, если проблема с сетью и для шлюза срабатывает триггер "фатальная потеря пакетов", я не хочу видеть всю ту кучу сообщений о том, что нет данных и о том, что такая же потеря пакетов для Сервера. Но я так и не понял как это реализовать.

    Что я пробовал.
    1. Зависимость триггеров Сервера от триггера Шлюза. Не подходит! Все проверки заведены через шаблоны, а Сервер у меня не один, а много и мне совершенно не нужны зависимости других серверов, от постороннего для них Шлюза. Делать отдельные триггеры - тоже не подходит! Зачем мне тогда шаблон, если мне каждый раз надо переделывать для каждого Сервера зависимости триггеров? Да и мягко говоря это КРАЙНЕ хлопотно, когда серверов десятки, а то и сотни.

    2. Глобальная корелляция. Мне говорили, что можно сделать через неё. Да, я завёл на триггеры Сервера тэг "NODATA" поставил туда {HOST.NAME}, создал корелляцию, что при срабатывании триггера Шлюза, я закрываю все события с тегом NODATA равным "Сервер". Это действительно работает! ОДИН РАЗ! Т.е. при срабатывании корелляции, у меня закрываются проблемные триггеры, а затем (поскольку данные по-прежнему недоступны) они открываются снова, но корелляция их больше не закрывает! Кроме того, есть ещё одна засада. Поскольку все проверки асинхронны во времени, то срабатывание триггера Шлюза, по которому сработает корелляция может произойти РАНЬШЕ, чем сработают триггеры "нет данных" на Сервере. В этом случае вообще толку от этой корелляции не будет никакого!

    Итак, вопрос по-прежнему открыт! Как НОРМАЛЬНО сделать зависимость одного хоста от другого, чтобы в случае проблем с первым хостом, проблем со вторым хостом я не видел! В том же Nagios это решается совершенно просто и элементарно, указанием свойства Parent для узла. Неужели в Zabbix нет никакого способа это сделать? Не верю!
  • Evgeniy
    Senior Member
    • May 2012
    • 157

    #2
    Должен быть толк)) Только мне, например, не подходит то, что глобальная корреляция закрывает события, а не блокирует их генерирование...
    А в операциях стоят оба варианта: "закрыть старые события" и "закрыть новое событие"?
    Last edited by Evgeniy; 30-07-2019, 13:24.

    Comment

    • Victor Vislobokov
      Senior Member
      • Aug 2018
      • 298

      #3
      Вот и мне не подходит, что закрывает, а не блокирует.
      Стоит "закрыть старые события". А что даёт "закрыть новое событие" в моём случае? Оно же один леший возникнет снова? Или вы в плане постоянного закрытия старых событий? Не, всё-равно не интересно, триггеры сработают, уведомления уйдут. Ну да, закроет их снова, но дальше опять будет по кругу.
      Вот у того же nagios если parent хост встал в состояние нестояния, то для хостов за ним уже никаких проверок не делается и ничего не срабатывает. По идее и тут также надо.

      Да и не надо мне новое событие закрывать - я же должен видеть, что со шлюзом проблема
      Last edited by Victor Vislobokov; 30-07-2019, 13:43.

      Comment

      • Evgeniy
        Senior Member
        • May 2012
        • 157

        #4
        Если я правильно понимаю, то вся суть в глобальной корреляции в том, чтобы сфокусироваться на главной проблеме. Т.е. на вкладке Проблемы будет отображаться только главная проблема, а вот в недавних проблемах и истории будет каша.

        Comment

        • Victor Vislobokov
          Senior Member
          • Aug 2018
          • 298

          #5
          К сожалению будет отображаться не только главная проблема. Из-за упомянутого мной выше асинхронного характера проверок, триггеры Сервера за Шлюзом могут сработать гораздо раньше, чем сработает триггер Шлюза, вызывающий корелляцию. Так что даже на вкладке Проблемы мы можем увидеть кучу кратковременных срабатываний триггера. Да, корелляция из закроет потом, но в течение этого промежутка мы будем их видеть и на вкладке Проблемы тоже.

          Comment

          • Evgeniy
            Senior Member
            • May 2012
            • 157

            #6
            Не совсем так, триггеры сервера за шлюзом будут висеть пока не отработает "главный" триггер, и в дальнейшем все новые срабатывания триггеров за шлюзом будут мгновенно закрываться, т.е. максимум полсекунды должны висеть. А дальше все зависит от настроек этих триггеров и попадут ли эти полсекунды во время обновления состояния виджета/страницы.
            А вот в Недавних проблемах и Истории действительно будут отображаться все кратковременные срабатывания.

            Comment

            • Victor Vislobokov
              Senior Member
              • Aug 2018
              • 298

              #7
              Тогда я несколько не понимаю как это работает. Глобальная корелляция по идее должна срабатывать только при срабатывании триггера на шлюзе. Триггеры хостов за шлюзом никак к нему не привязаны, почему же они будут висеть? Что их заставит?

              Comment

              • Evgeniy
                Senior Member
                • May 2012
                • 157

                #8
                Плюс возможно некорректное поведение https://www.zabbix.com/documentation...82%D0%B8%D0%B9
                Поэтому Попробовал - Не понравилось - Забыл. Надежней по-старинке ручками настраивать зависимости. Причем делать это можно достаточно быстро. Присваиваешь триггерам тег, фильтруешь в настройках по тегу и массово добавляешь зависимость от "главного" триггера.

                Comment

                • Victor Vislobokov
                  Senior Member
                  • Aug 2018
                  • 298

                  #9
                  Аааа, вы про этот способ. Я говорил о нём как о варианте 1. Проблема в том, что если за Шлюзом серверов несколько десятков да ещё с разными ролями, где свои "no data" на разные мониторинги, то всё не так радужно

                  Comment

                  • Evgeniy
                    Senior Member
                    • May 2012
                    • 157

                    #10
                    Originally posted by Victor Vislobokov
                    Тогда я несколько не понимаю как это работает. Глобальная корелляция по идее должна срабатывать только при срабатывании триггера на шлюзе. Триггеры хостов за шлюзом никак к нему не привязаны, почему же они будут висеть? Что их заставит?
                    Не понял, кого заставит висеть и причем здесь привязка?

                    Comment

                    • Victor Vislobokov
                      Senior Member
                      • Aug 2018
                      • 298

                      #11
                      Я думал вы писали про 1-й способ. А я говорил про 2-й. Если между триггерами нет зависимостей, то как же будет так?
                      Originally posted by Evgeniy
                      Не совсем так, триггеры сервера за шлюзом будут висеть пока не отработает "главный" триггер, и в дальнейшем все новые срабатывания триггеров за шлюзом будут мгновенно закрываться, т.е. максимум полсекунды должны висеть. А дальше все зависит от настроек этих триггеров и попадут ли эти полсекунды во время обновления состояния виджета/страницы.
                      Если мы про 1-й способ, тогда да. Но конфигурировать это КРАЙНЕ неудобно. Дело даже не в потраченном времени, а в том, что потом что-то менять будет непросто и ошибиться легко.

                      Comment

                      • Evgeniy
                        Senior Member
                        • May 2012
                        • 157

                        #12
                        Originally posted by Victor Vislobokov
                        Я думал вы писали про 1-й способ. А я говорил про 2-й. Если между триггерами нет зависимостей, то как же будет так?

                        Если мы про 1-й способ, тогда да. Но конфигурировать это КРАЙНЕ неудобно. Дело даже не в потраченном времени, а в том, что потом что-то менять будет непросто и ошибиться легко.
                        Я как раз писал про второй способ с глобальной корреляцией. Если выбрать "закрывать новое событие", то последующие срабатывания триггеров хостов за шлюзом будут автоматически сразу же закрываться.

                        Comment

                        • Victor Vislobokov
                          Senior Member
                          • Aug 2018
                          • 298

                          #13
                          А из чего это следует? В документации про это не написано. Вот прямо сейчас повторяю утренний эксперимент. Закрываю на zabbix-сервере Шлюз и Сервер файрволом.
                          Первым всплывает триггер Сервера (с отправкой уведомления)
                          - Нет данных о запросах MySQL
                          Далее триггер с Сервера (опять с уведомлением)
                          - Фатальная потеря PING пакетов
                          Далее триггер с Шлюза (с уведомлением)
                          - Фатальная потеря PING пакетов
                          который закрывает проблемы "Фатальная потеря PING пакетов и "Нет данных о запросах MySQL" на Сервере (опять с уведомлением)

                          Далее практически сразу снова вылазят:
                          Триггер Сервера (с отправкой уведомления)
                          - Нет данных о запросах MySQL
                          И триггер с Сервера (опять с уведомлением)
                          - Фатальная потеря PING пакетов

                          и уже больше не уходят. В истории мы видим, что действительно эти две проблемы были закрыты по корелляции.

                          Таким образом мне непонятно, из чего следует вывод, что эти триггеры должны были закрыться за несколько секунд? В настройках корелляции стоит "Закрыть старые события". Как я и писал, ОДИН РАЗ это действительно происходит.

                          Comment

                          • Victor Vislobokov
                            Senior Member
                            • Aug 2018
                            • 298

                            #14
                            Добавил ещё операцию "Закрыть новое событие" и началось то, о чём я писал - пляски по кругу. Снова вылазят все триггеры с Сервера, затем через пару минут триггер с Шлюза их закрывает, но они через несколько секунд опять вылазят и висят не секунды а минуты, до следующего срабатывания триггера Шлюза.

                            Comment

                            • Evgeniy
                              Senior Member
                              • May 2012
                              • 157

                              #15
                              Должны по идее сразу же закрываться, непонятно почему висят минуты, попробую попозже у себя.

                              Comment

                              Working...