понять что не так.
Есть сервер с Prometheus+Alertmanager, запущенными в докере. Я настроил отправку уведомлений AM на сервер Exchange, но при срабатывании триггера письмо не уходит, а в логе сыплются такие сообщения:
level=error ts=2021-07-15T15:41:36.450Z caller=notify.go:372 component=dispatcher msg="Error on notify" err="establish connection to server: dial tcp: i/o timeout" context_err="context deadline exceeded"
level=error ts=2021-07-15T15:41:36.450Z caller=dispatch.go:301 component=dispatcher msg="Notify for alerts failed" num_alerts=1 err="establish connection to server: dial tcp: i/o timeout"
Визуально это похоже на недоступность сервера, но я попробовал вручную запустить telnet сессию с этого же хоста и без проблем смог отправить письмо. При этом со стороны exchange даже не видно попыток подключения с IP хоста, а при подключении через telnet всё логгируется корректно.
Может кто-нибудь сталкивался с чем-то похожим? В какую сторону копать?
Пробовал из контейнера или просто с хоста? Может быть у сети докера адресация пересекается с адресацией локалки (или где там почтовик)?
Пробовал с хоста. Из контейнера с AM особо ничего не сделать..или я просто не знаю как, там даже пинг не работает. В докере адреса заданы вручную из подсети 172.20, почтовик в 10.199. Пока писал сообщение, сделал ещё один тест - поменял имя почтовика на адрес и письмо пришло. Изначально я прописывал на хосте в /etc/hosts конкретный адрес для имени почтовика, на которое отправляю письма. Получается контейнер не смотрит туда, а шлёт на адрес, который получает из dns хоста?
У композа для такого есть параметр extra_hosts
Большое спасибо, сейчас попробую.
Обсуждают сегодня