Linux Labs

Наблюдаемость: метрики, алерты, логи / Ступень 4 из 9

Правило алерта: порог и длительность

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 4 из 6 · на машине · 7 мин

Метки, описание и неудачный reload

Правило решает, когда алерт горит, а метки и описание говорят тому, кто его получит, что случилось.

labels добавляет алерту метки к меткам ряда. severity: warning или critical — по таким меткам Alertmanager решает, кому отправить уведомление; это следующий урок. annotations — текст для человека: в summary подставляют метки и значение ряда.

yaml
annotations:
  summary: >-
    {{ $labels.mountpoint }}: free space
    {{ $value | humanizePercentage }}

У горящего DiskAlmostFull эта строка превращается в /srv/data: free space 4.994%.

Внимание

sudo systemctl reload prometheus завершается успешно и при ошибке в файле правил: Prometheus пишет в журнал «previous rule set restored» и работает со старыми правилами. Проверяй файл promtool check rules до перечитывания, а результат — curl -s localhost:9090/api/v1/status/runtimeinfo | jq .data.reloadConfigSuccess.

Своё правило пишут тем же приёмом на других метриках. Какие метрики есть у тома, видно в выводе экспортёра: curl -s localhost:9100/metrics | grep 'mountpoint="/srv/data"'.

Упражнение · сделать

Напиши правило на inode

На томе /srv/data место есть, а sudo touch /srv/data/reports/new.csv отвечает «No space left on device» — кончились inode. Добавь в /etc/prometheus/rules правило InodesAlmostFull: оно горит, когда свободных inode на /srv/data меньше 10 % дольше 15 секунд, и ставит алерту метку severity со значением warning. Загрузи его в Prometheus и дождись firing.

Войти и начать Машина доступна после входа

Цели · 0 из 2

  • Написать правило InodesAlmostFull и загрузить его ещё не выполнена
  • Довести алерт до firing ещё не выполнена

Цели шага

0 из 2
  • Написать правило InodesAlmostFull и загрузить его — ещё не выполнена
  • Довести алерт до firing — ещё не выполнена
Ubuntu 24.04

Цели шага

0 из 2
  • Написать правило InodesAlmostFull и загрузить его — ещё не выполнена
  • Довести алерт до firing — ещё не выполнена
Загрузка…