Как настроить шаблон сообщения в Telegram для Alertmanager?

Как добавить кастомный шаблон для Alertmanager, чтобы отправлять алерты в чат Telegram, когда используется шаблон по умолчанию? Мой файл `alertmanager.yml` имеет следующее содержимое и содержит ссылку на шаблон: 

```
route:
  group_by: ['alertname']
  group_wait: 1s
  group_interval: 1s
  repeat_interval: 6h
  receiver: 'telegram'

receivers:
- name: 'telegram'
  telegram_configs:
  - bot_token: "Token"
    api_url: "https://api.telegram.org"
    chat_id: -100chat
    send_resolved: true
    message: '{{ template "telegram_message" . }}'
    parse_mode: 'HTML'

templates:
- '/etc/alertmanager/template/alertmanger.tmpl'
```

Содержимое `alertmanager.tmpl`:

```
{{ define "telegram_message" }}
  {{ if gt (len .Alerts.Firing) 0 }}
  <b> {{ len .Alerts.Firing }} alert(s) firing:</b>
    {{ range .Alerts.Firing }} {{ template "telegram_alert_firing" .}} {{ end }} {{ end }}
  {{ if gt (len .Alerts.Resolved) 0 }}
  <b>✅ {{ len .Alerts.Resolved }} alert(s) resolved:</b>
    {{ range .Alerts.Resolved }} {{ template "telegram_alert_resolved" .}} {{ end }} {{ end }}
{{ end }}
```

При попытке отправить alert в Telegram получаю ошибку "telegram: Bad Request: message text is empty (400)", что указывает на то, что Alertmanager не видит указанный шаблон. 
Чего я не понимаю в данной ситуации?
  • 15 мая 2024 г. 11:10
Ответы на вопрос 2
Ошибка "telegram: Bad Request: message text is empty (400)" указывает на то, что Alertmanager не может найти указанный шаблон сообщения в вашем файле `alertmanager.yml`. Для того чтобы добавить кастомный шаблон для Telegram, вам нужно сначала создать сам шаблон.

В вашем случае, шаблон `alertmanager.tmpl` должен быть доступен по указанному перед его именем пути `/etc/alertmanager/template/alertmanger.tmpl`. Убедитесь, что файл существует в указанном месте и содержит корректный шаблон сообщения.

После того, как вы убедитесь в наличии и корректности вашего шаблона, обновите ваш файл `alertmanager.yml`, чтобы указать правильный путь к нему. Используйте путь, который соответствует фактическому расположению вашего файла шаблона.

```
templates:
- '/etc/alertmanager/template/alertmanger.tmpl'
```

После внесения изменений перезапустите Alertmanager, чтобы они вступили в силу. После этого попробуйте отправить alert в Telegram снова. Если все сделано правильно, alertmanager должен использовать ваш кастомный шаблон для форматирования сообщения и успешно отправить его в ваш чат Telegram.
Если кому-то поможет проблема была в коде темплейта. 
Из-за этого алертменеджер не читал темплейт.
Похожие вопросы