Sensu Handler не запускается - PullRequest
       16

Sensu Handler не запускается

0 голосов
/ 25 апреля 2018

кажется, мой новый Sensu Handler не вызывается. Но сначала мой конфиг. в /etc/sensu/conf.d/checks.json:

{
"checks":
   "custom_check":{
      "command": "python3.6 /srv/custom_check.py",
      "subscribers": ["remote-checks"],
      "interval": 600,
      "ttl": 900,
      "handlers": ["custom_handler"],
      "source":"my-check-target"
   }
}

в /etc/sensu/conf.d/handlers.json:

{
  "handlers": {
    "custom_handler": {
      "type": "pipe",
      "command": "python3.6 /srv/custom-sensu-handlers/handler.py"
}

в логах сервера, вижу:

 {
  "timestamp":"2018-04-25T07:51:47.253449+0200",
  "level":"info",
  "message":"publishing check request",
  "payload":{"command":"python3.6 /srv/custom_checks/custom_check.py",
  "ttl":900,
  "handlers":["custom_handler"],
  "source":"my-check-target",
  "name":"custom_check",
  "issued":1524635507},
  "subscribers":["remote-checks"]
}

клиент регистрирует:

{
  "timestamp": "2018-04-30T06:24:00.012625+0200",
  "level": "info",
  "message": "received check request",
  "check": {
    "command": "python3.6 /srv/custom_checks/custom_check.py",
    "ttl": 900,
    "handlers": [
      "default",
      "custom_handler"
    ],
    "source": "my_check_target",
    "name": "custom_check",
    "issued": 1525062240
  }
}

{
  "timestamp": "2018-04-30T06:24:00.349912+0200",
  "level": "info",
  "message": "publishing check result",
  "payload": {
    "client": "assensu.internal.defaultoute.eu",
    "check": {
      "command": "python3.6 /srv/custom_checks/custom_check.py",
      "ttl": 900,
      "handlers": [
        "default",
        "custom_handler"
      ],
      "source": "my_check_target",
      "name": "custom_check",
      "issued": 1525062240,
      "subscribers": [
        "remote-checks"
      ],
      "interval": 600,
      "executed": 1525062240,
      "duration": 0.337,
      "output": "Check OK",
      "status": 0
    }
  }
}

А затем журналы перестают выдавать что-либо, касающееся проверки. Я не могу найти ничего, что я делаю неправильно. Я даже добавил строку кода для записи в файл журнала в обработчике после его вызова, но ничего.
Любые подсказки?
(если вам интересно, я использую python, потому что я не знаком с ruby ​​...)

1 Ответ

0 голосов
/ 23 мая 2018

Обработчики будут выполняться только для следующих типов состояния:

  • предупреждение
  • критическая
  • неизвестен

https://docs.sensu.io/sensu-core/1.4/reference/handlers/#handler-attributes

Поиск "серьезности", о том, как настроить этот атрибут в определении вашего обработчика.

Событие является либо созданием, разрешением, либо изменением.

https://docs.sensu.io/sensu-core/1.2/reference/events/#event-actions

В вашем клиентском журнале отображается «status: 0», что означает, что проверка пройдена, поэтому событие не создается, и нет причин для выполнения обработчика события. Попробуйте настроить проверку на преднамеренный сбой: sys.exit(2), чтобы было сообщено о «status: 2» и обработчик выполнил.

Обработчики могут работать с разрешенными типами событий. Например, вы можете получить уведомление через HipChat, Slack или Email, что событие очищено. (т. е. перешел из «status: 2» в «status: 0»)

Python-пример того, как мы смотрим на статус события проверки:

if data['check']['status'] > 2:
    level = "Unknown"
elif data['check']['status'] == 2:
    level = "Critical"
elif data['check']['status'] == 1:
    level = "Warning"
elif data['check']['status'] == 0:
    level = "Cleared"

Я бы также позаботился о том, чтобы ваш /srv/custom-sensu-handlers/handler.py принадлежал пользователю / группе sensu: sensu рекурсивно, поскольку он находится вне каталога по умолчанию / etc / sensu / plugins.

https://docs.sensu.io/sensu-core/1.4/reference/handlers/#how-and-where-are-pipe-handler-commands-executed

...