Я использую grafana/grafana:6.1.3
в сочетании с prom/alertmanager:v0.16.2
(и некоторыми другими, на мой взгляд, не относящимися к делу изображениями).
Я настроил менеджер предупреждений на отправку электронных писем через SMTP, если происходит определенное событие.
Но в моем почтовом ящике ничего не было, поэтому я проверил журнал докера grafana:
root@PRIVATE_INFORMATION:~# docker logs grafana | grep -n "alert"
162:t=2019-05-20T11:42:26+0000 lvl=info msg = "Executing migration" logger=migrator id = "create alert table v1"
[...]
197:t=2019-05-20T11:42:28+0000 lvl=info msg = "Executing migration" logger=migrator id = "Update alert annotations and set TEXT to empty"
292:t=2019-05-20T11:44:28+0000 lvl=info msg = "Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/api/alerts/states-for-dashboard status=401 remote_addr=PRIVATE_INFORMATION time_ms=0 size=26 referer = "PRIVATE_INFORMATION"
297:t=2019-05-20T11:48:01+0000 lvl=info msg = "New state change" logger=alerting.resultHandler alertId=1 newState=ok prev state=unknown
298:t=2019-05-20T11:48:33+0000 lvl=info msg = "Sending alert notification to" logger=alerting.notifier.email addresses=[PRIVATE@INFORMATION]
299:t=2019-05-20T11:48:33+0000 lvl=eror msg = "Failed to send alert notification email" logger=alerting.notifier.email error = "SMTP not configured, check your grafana.ini config file's [smtp] section."
300:t=2019-05-20T11:48:33+0000 lvl=eror msg = "failed to send notification" logger=alerting.notifier uid= error = "SMTP not configured, check your grafana.ini config file's [smtp] section."
[...]
Я не смог найти "grafana.ini" на своем сервере.
{ Обновлено: я нашел два. Один в "/var/lib/docker/overlay2/fe7[...]db3/diff/etc/grafana/grafana.ini", другой в "/var/lib/docker/overlay2/079[...]26d /merged/etc/grafana/grafana.ini". Оба содержат ту же информацию, что и «sample-ini» }
Вместо этого я нашел файлы «default.ini» и «sample.ini» внутри работающего контейнера grafana. «default.ini» не содержал ничего, связанного с SMTP, но «sample.ini» содержал следующий раздел:
#################################### SMTP / Emailing ##########################
[smtp]
;enabled = false
;host = localhost:25
;user =
# If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;"""
;password =
;cert_file =
;key_file =
;skip_verify = false
;from_address = [email protected]
;from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
[emails]
;welcome_email_on_sign_up = false
Теперь, я думаю, это то место, где я должен был настроить SMTP. Кто-нибудь знает, как сообщить docker-compose.yml / ansible, что я хочу настроить этот раздел во время установки контейнера?
Я уже определил хост SMTP и другую информацию внутри контейнера предупреждений.
Существует два подхода: наиболее распространенный — это монтирование вашего уже настроенного .ini
файла в контейнер, а другой — использование переменных среды в форме GF_SMTP_HOST=whatever
, как описано в прекрасное руководство.
Я использовал приведенные ниже переменные среды в своем docker-compose, и он работает как шарм!
grafana:
image: grafana/grafana
environment:
- 'GF_SMTP_ENABLED=true'
- 'GF_SMTP_HOST=smtp.gmail.com:587'
- '[email protected]'
- 'GF_SMTP_PASSWORD=mysamplePassword'
- '[email protected]'