Как добавить кастомный шаблон для 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 не видит указанный шаблон.
Чего я не понимаю в данной ситуации?
Ошибка "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.
Если кому-то поможет проблема была в коде темплейта.
Из-за этого алертменеджер не читал темплейт.