171 похожих чатов

Коллеги, добрый день. Столкнулся со странной проблемой, целый день не могу

понять что не так.
Есть сервер с 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 всё логгируется корректно.

Может кто-нибудь сталкивался с чем-то похожим? В какую сторону копать?

4 ответов

48 просмотров

Пробовал из контейнера или просто с хоста? Может быть у сети докера адресация пересекается с адресацией локалки (или где там почтовик)?

Дмитрий-Стародубцев Автор вопроса

Пробовал с хоста. Из контейнера с AM особо ничего не сделать..или я просто не знаю как, там даже пинг не работает. В докере адреса заданы вручную из подсети 172.20, почтовик в 10.199. Пока писал сообщение, сделал ещё один тест - поменял имя почтовика на адрес и письмо пришло. Изначально я прописывал на хосте в /etc/hosts конкретный адрес для имени почтовика, на которое отправляю письма. Получается контейнер не смотрит туда, а шлёт на адрес, который получает из dns хоста?

У композа для такого есть параметр extra_hosts

Дмитрий-Стародубцев Автор вопроса

Большое спасибо, сейчас попробую.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта