alert: DockerContainerGone
expr: count by (instance, name) (container_last_seen{name!=""} offset 5m)
unless
count by (instance, name) (container_last_seen{name!=""})
for: 1m
severity: warning
Сообщение алерта: Контейнер {{ $labels.name }} пропал ({{ $labels.instance }})
Контейнер присутствовал в метриках 5 минут назад, а сейчас cAdvisor его не видит. Алерт активен около 5 минут после исчезновения, затем гаснет сам, поэтому реагировать нужно быстро.
Контейнер остановлен (docker stop, exit), удалён при обновлении (docker compose up пересоздал его с новым ID), упал и не перезапустился (нет restart: always).
docker ps -a --filter name=<имя>
docker inspect <имя> --format '{{.State.Status}} exit={{.State.ExitCode}} oom={{.State.OOMKilled}}'
docker logs --tail 100 <имя>
journalctl -u docker -n 50 --no-pager
Запустить контейнер (docker start <имя> или docker compose up -d), по логам понять причину остановки, при необходимости задать политику restart: unless-stopped.
При плановом удалении или переименовании контейнера. Для контейнеров, которые по замыслу живут короткое время (задачи), исключите их по метке name.
Весь набор из 44 протестированных правил + Alertmanager → Telegram: 790 ₽
Открыть в Telegram · Бесплатный набор Monitoring Lite · Все алерты runbook