Как настроить уровень ведения журнала Alertmanager Prometheus?

Как настроить уровень ведения журнала Alertmanager Prometheus?

Я настроил 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:

Связанный контент