Ad Widget

Collapse

Не работает триггер при интервалах в секундах.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • turtleold
    Member
    • May 2021
    • 50

    #16
    Вопрос закрыт. Kos ещё раз спасибо за оказанную помощь!

    В последнем сообщени была проблема с правами до скрипта.

    Comment

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

      #17
      Я, наконец, сам опробовал работу скипта для закрыванию проблем, хотя неоднократно на этот блог-пост (https://blog.zabbix.com/close-proble...bix-api/12461/) ссылался раньше.
      С момента его публикации вышло уже две новых версии Zabbix (5.4 и 6.0), поэтому я добавил туда свой комментарий (который, впрочем, ещё должен утвердить модератор).

      На всякий случай продублирую здесь основные мысли моего комментария:
      • в версии 5.4 появилась очень полезная возможность заранее создавать аутентификационные токены - как раз для использования в скриптах, дёргающих API. Это позволяет не делать логин/логаут по каждому чиху, заодно сильно упрощая скрипт;
      • пара важных замечаний из документации по данному API (event.acknowledge):
        • пользователь, от имени которого аутентифицируется скрипт, должен иметь права Read/Write, чтобы отредактировать проблему (добавить комментарий и закрыть). Т.е. фактически - права read/write на соответствующий хост;
        • триггер должен позволять ручное закрытие проблемы.
      • то, о чём я здесь уже говорил: нужно сначала оформить скрипт (через Administration -> Sripts), а только потом настраивать Action, который этот скрипт использует.
      Как следствие, сам исходный скрипт можно значительно упростить.
      В итоге, все шаги по настройке сводятся к следующему:
      • определить пользователя Zabbix, который будет использоваться при обращении к API;
      • сгенерировать для него токен (линк: https://www.zabbix.com/documentation...l#api-tokens);
      • на глобальном уровне определить два макроса: {$Z_API_PHP} (описанный в статье) и {$Z_API_TOKEN} (содержащий токен, может быть скрытым);
      • определить скрипт (Administration -> Sripts), текст скрипта - чуть ниже;
      • настроить Action, который этот скрипт будет использовать для нужных событий (например, помеченных определённым тегом).
      Текст скрипта:
      Code:
      # acknowledge and close event
      curl -sk -X POST -H "Content-Type: application/json" -d '
      {
          "jsonrpc": "2.0",
          "method": "event.acknowledge",
          "params": {
              "eventids": "{EVENT.ID}",
              "action": 1,
              "message": "Problem auto-closed."
          },
          "auth": "{$Z_API_TOKEN}",
          "id": 1
      }' {$Z_API_PHP}

      Comment

      Working...