Ad Widget

Collapse

Действия в zabbix

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Welcome_to_the_jungle
    Member
    • May 2019
    • 56

    #1

    Действия в zabbix

    Добрый день, столкнулся с интересным моментом, а именно выполнение удаленной команды ssh на хосте под управлением CentOs Tiny Core 8.1.8
    Ситуация:
    Есть определенное кол-во хостов, которые мониторятся заббикс сервером с помощью простых проверок (ICMPPING), заббикс агента на устройствах нет.
    Стоит задача автоматический перезагрузки этих самых устройств.
    Выбрал решение выполнять это с помощью "Действий"
    Создаю действие, указываю условие "Период времени в 1-7, 13-30-13-31" (каждый день, в с 13-30 по 13-31)
    Далее создаю операцию, "Длительность шага" ровна 24h.
    Убираю галочку "Приостановить операции для подавленных проблем"
    В "Операциях" добавляю "Удаленную команду" выбираю нужным мне "Узел сети" тип "SSH" метод по паролю, ну и соответственно имя пользователя и пароль.
    В само поле команды ввожу необходимую мне консольную команду.
    Сохраняю-обновляю, все задание готово.
    И начинает самое странно, что эти самые действия работают через раз, то есть то срабатывают, то нет.
    Я создаю действие оно не работает, я его отредактирую, скажем подвину временной период, оно выполняется.
    Результат я смотрю по "Журналу действий" т.е. когда успешно то я вижу свой хост и состояние "выполнено" а в случае когда хост не перегрузился в журнале ни каких записей нет, в логе самого сервера тоже.

    Приложил скриншоты
    В хронологическом порядке.

    Если есть какие то совету буду благодарен.






    Attached Files
  • Kos
    Senior Member
    Zabbix Certified SpecialistZabbix Certified Professional
    • Aug 2015
    • 3404

    #2
    Действие (Action) - это реакция на событие.
    На какое событие должно срабатывать ваше действие? На какой-то триггер? Но я не вижу упоминаний каких-либо триггеров в условиях этого действия. Т.е. оно должно срабатывать вооще на любой триггер (относящийся к любому хосту), если этому событию посчастливится произойти в указанный в условии временнОй диапазон (т.е. в течение конкретной минуты).

    Comment

    • Welcome_to_the_jungle
      Member
      • May 2019
      • 56

      #3
      Вы правы триггера ни какого нет, я полагал, что период времени это и есть отправная точка для старта. Без триггера данный принцип реализовать нельзя?
      спасибо.

      п/с
      я правильно понимаю если я буду генерировать какой либо триггер в нужное мне время, и повешу на него данные действия, то я получу желаемый результат?
      Last edited by Welcome_to_the_jungle; 22-03-2021, 12:07.

      Comment

      • Kos
        Senior Member
        Zabbix Certified SpecialistZabbix Certified Professional
        • Aug 2015
        • 3404

        #4
        Originally posted by Welcome_to_the_jungle
        Вы правы триггера ни какого нет, я полагал, что период времени это и есть отправная точка для старта. Без триггера данный принцип реализовать нельзя?
        Повторю мысль:
        Действие (Action) - это реакция на событие.
        Позволю себе процитировать документацию:
        Действия можно задать для событий со всех поддерживаемых источников:
        • События триггеров - при изменениях состояния триггеров с ОК на ПРОБЛЕМА и обратно
        • События обнаружения - когда производится сетевое обнаружение
        • События авторегистрации - при авторегистрации новых активных агентов (или при изменениях в метаданных узла сети, который уже зарегистрирован)
        • Внутренние события - когда элементы данных становятся неподдерживаемыми и триггеры переходят в неизвестное состояние
        Т.е. может быть и не триггер; но остальные типы событий, боюсь, использовать ещё сложнее.
        Originally posted by Welcome_to_the_jungle
        я правильно понимаю если я буду генерировать какой либо триггер в нужное мне время, и повешу на него данные действия, то я получу желаемый результат?
        Да, это самый простой вариант, как мне видится: сделать триггер, который на нужных хостах будет срабатывать в нужное время, а действие привязать не к таймеру, а к этому триггеру.
        И в операции в графе "Список целей" просто проставить галочку в поле "Текущий узел сети", чтобы не создавать отдельное действие на каждый хост.

        Comment

        • Welcome_to_the_jungle
          Member
          • May 2019
          • 56

          #5
          Originally posted by Kos
          Повторю мысль:

          Позволю себе процитировать документацию:

          Т.е. может быть и не триггер; но остальные типы событий, боюсь, использовать ещё сложнее.

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

          Comment

          • Welcome_to_the_jungle
            Member
            • May 2019
            • 56

            #6
            Сделал как и планировал. Все отработало в нужное время
            Kos спасибо большое!.

            Comment

            • Welcome_to_the_jungle
              Member
              • May 2019
              • 56

              #7
              Возник следующий вопрос, возможно организовать какой либо триггер таким образом, что бы он срабатывал один раз в сутки?
              Что бы не класть какую либо службу планировщиком.
              Спасибо.

              Comment

              • Kos
                Senior Member
                Zabbix Certified SpecialistZabbix Certified Professional
                • Aug 2015
                • 3404

                #8
                Originally posted by Welcome_to_the_jungle
                Возник следующий вопрос, возможно организовать какой либо триггер таким образом, что бы он срабатывал один раз в сутки?
                Что бы не класть какую либо службу планировщиком.
                Спасибо.
                Любой триггер пересчитывается всякий раз, когда приходит новое значение для каждого из входящих в его формулу элементов данных.
                Кроме этого, триггеры, содержащие временнЫе функции (nodata(), time(), date() и т.п.), независимо от приходящих данных пересчитываются раз в 30 секунд.

                Поэтому есть два варианта:
                • создаёте элемент данных, для которого указываете интервал опроса = 0 и добавляете custom-расписание (раз в сутки в нужное вам время). Триггер составляете так, чтобы он срабатывал на любое входящее значение и закрывался по тайм-ауту. Например, для неотрицательного целого (Numeric unsigned) можно задать:
                Code:
                {Host:item.last()}>=0 and {Host:item.nodata(300)}=0
                - сработает на любое значение и закроется через 5 минут. В этом варианте расписание задаётся в свойствах элемента данных.
                • выбираете любой элемент данных и применяете к нему функцию time(). Например, если нужно, чтобы триггер срабатывал после трёх ночи, а через 5 минут закрылся:
                Code:
                {Host:item.time()}>=030000 and {Host:item.time()}<030500
                - в этом варианте расписание задаётся в самом триггере, а что за элемент данных используется - вооще не имеет значения (лишь бы он относился к нужному хосту).

                Comment

                • Welcome_to_the_jungle
                  Member
                  • May 2019
                  • 56

                  #9
                  Второй вариант прекрасно подошел, спасибо большое.

                  Comment

                  Working...