Чем вести логи ООМ контейнеров docker?

Привет.

Есть linux (Centos 7, Debian 12), на машине расположен docker и штук 30-40 контейнеров. Некоторые контейнеры перезапускаются из-за ООМ. Надо пользователям каким-то образом получить информацию об ООМ контейнеров, без ssh доступа на vm. Уже есть loki + grafana.

Из решений которые пока в голове - promtail и экспортить журналы в loki с определённым patten.

Подскажите в какую сторону еще посмотреть?
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
@igortru Автор вопроса
Вопрос решил так:
* поставил promtail на vm
* написал правило
scrape_configs:
  - file_sd_configs:
    - files:
      - /etc/promtail/file_sd/*.yml
      - /etc/promtail/file_sd/*.yaml
      - /etc/promtail/file_sd/*.json
    job_name: file_sd

  - job_name: journal
    journal:
      labels:
        hostname: ''
        job: systemd-journal
      max_age: 12h
    pipeline_stages:
    - regex:
        expression: .*(?P<drop_key>oom-kill).*
    - labels:
        drop_key: null
    - match:
        action: drop
        selector: '{drop_key!="oom-kill"}'
    relabel_configs:
    - source_labels:
      - _journal_systemd_unit
      target_label: unit
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Можно генерить лог OOM-ов простой systemd-службой (честно взято из issue к moby про логирование docker events) и выгружать из journald по имени, которым её назовёте.
[Unit]
Description=Docker OOM Monitor Service

[Service]
Type=simple
ExecStart=/usr/bin/docker events --filter type=oom

[Install]
WantedBy=multi-user.target
Ответ написан
Комментировать
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Можно смотреть счётчик oom_kill в /proc/vmstat. Или вам нужна более подробная информация?
Ответ написан
Комментировать
karabanov
@karabanov Куратор тега Linux
Системный администратор
Можно мониторить объём памяти потреблённой контейнером если там близко к 99% скоро стоит ждать OOM.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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