Перейти к основному содержимому
Версия: 4.5.X

Webhook

Теперь есть новый вид транспорта - webhook, который позволяет делать HTTP-запросы в качестве уведомления. Этому виду соответствует новый блок для транспорта в конфиге - webhook, в элементах которого можно указывать следующие параметры:

  • url - URL, по которому делается запрос
  • method - HTTP-метод запроса
  • content-type - значение заголовка Content-Type
  • body-template - шаблон тела запроса (аналогично шаблону в smtp транспорте)

Пример для уведомлений по телеграм

Задаем конфигурацию для транспорта:

webhook:
name: telegram
url: https://api.telegram.org/bot[INSERT_TOKEN]/sendMessage
disable: true
method: POST
content-type: application/json
cel-filter: ""
body-template: "{\"chat_id\":\"insert user id\",\"text\":\"Зарегистрирован инцидент №{{ incident.ID }} по директиве \\\"{{ directive }}\\\" (ID={{ incident.DirectiveID }}).\"}"
client:
tls:
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
ServerName: ""
disable: true
system-pool: true
timeout: 30s
подсказка

Пример записи url для передачи уведомлений в telegram:

url: https://api.telegram.org/bot7545004198:AAHfmcKji5f5acxnnCJh2fIhsu0iWZPFv_o/sendMessage

После настройки файла komrad-server.yaml необходимо перезагрузить служубу komrad-server с помощью команды:

sudo systemctl restart komrad-server

Далее необходимо создать бота в телеграм через BotFather

Полученный токен подставляем в URL вместо [INSERT_TOKEN] (и получаем сообщение

После нужно завести диалог с созданным ботом.

Последним шагом будет получение собственного ID в телеграм - для этого можно использовать ботов типа getmyid_bot. Полученный id вставляем в шаблон в поле chat_id, для чего необходимо перейти к релактированию шаблона сообщения в разделе Алминистрирование ⇒ Уведомления ⇒ шаблон настраиваемого сообщения, чтобы получить шаблон вида:

body-template: |

{

"chat_id": 1960753620,

"text": "Зарегистрирован инцидент №{{ incident.ID }} по директиве {{directive}} (ID={{incident.DirectiveID}})."

}*
подсказка

В поле chat_id необходимо вставить свой уникальный ID

Теперь при инцидентах в телеграм должны приходить сообщения от бота