
Я настроил Alertmanager Prometheus, чтобы, ну, управлять оповещениями из Prometheus. Я получаю оповещения от Prometheus к Alertmanager, но на этом история заканчивается. Оповещения никогда не отправляются Alertmanager на мою конечную точку электронной почты.
Чтобы выяснить, где именно в Alertmanager оповещения заканчивают свой путь, я хочу переключить уровень журнала с информации на отладку, но не смог понять, как это сделать. Даже найти журнал сейчас кажется сложной задачей, его нет /var/log
и journalctl -u alertmanager
он содержит так мало, что, возможно, где-то есть другой журнал.
Страница руководства длянастройка Alertmanagerне упоминает уровень отладки. Я просмотрел исходный код на предмет упоминаний log и обнаружил, что параметр должен быть назван log.level
. Добавление следующего фрагмента в конфигурационный YAML также не помогло:
log:
level: debug
поскольку Alertmanager не удалось запустить из-за ошибки при анализе его файла конфигурации.
решение1
Ответ в том, что невозможно установить уровень журнала Alertmanagers Prometheus на отладку через файл конфигурации, это возможно только через аргументы командной строки. Не спрашивайте меня почему, я уверен, что у них были свои причины.
С помощью Puppet я добавил аргумент в файл модуля Systemd для Alertmanager, так что в итоге он стал выглядеть так:
[Unit]
Description=Prometheus alertmanager
Wants=basic.target
After=basic.target network.target
[Service]
User=alertmanager
Group=alertmanager
EnvironmentFile=/etc/sysconfig/alertmanager
ExecStart=/usr/local/bin/alertmanager \
--config.file=/etc/alertmanager/alertmanager.yaml \
--storage.path=/var/lib/alertmanager \
--log.level=debug
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=always
[Install]
WantedBy=multi-user.target
Если вы запускаете Alertmanager из оболочки, вы можете просто добавить флаг --log.level=debug
к вызову.
Отладочные сообщения затем можно просмотреть journalctl -u alertmanager
в дистрибутивах Linux с помощью системы инициализации Systemd.
решение2
В системах Ubuntu (если prometheus-alertmanager был установлен через apt и из официального репозитория).
Открыть
/etc/default/prometheus-alertmanager
И добавить
ARGS="--log.level=debug"
в файл (заменить ARGS="")
Затем перезапустите prometheus-alertmanager через systemd:
sudo systemctl restart prometheus-alertmanager.service
Показать логи через journalctl:
journalctl -u prometheus-alertmanager.service --since today
решение3
В моем случае docker-compose.yml
я сделал следующее:command: --log.level=debug
Смотрите подробности:
alertmanager:
restart: unless-stopped
image: prom/alertmanager:latest
command:
- '--config.file=/etc/alertmanager/alertmanager.yml'
- '--storage.path=/alertmanager'
- '--log.level=debug'
volumes:
- ./alertmanager.yml:/etc/alertmanager/alertmanager.yml
expose:
- 9093/tcp
networks:
monitoring-net: