Тут разберем простейший пример создания и отправки алертов через Яндекс почту и связки Prometheus+Alertmanager+Node_Exporter
Простейший не потому, что супер изи, а потому, что проще не придумаешь.
Для начала у нас должны быть установлены Prometheus+Alertmanager на сервере мониторинга и Node_Exporter не целевом сервере.
Далее по шагам:
Шаг 1. Создаем файлик rules.yml в папке /etc/prometheus
Шаг 2. В файле /etc/prometheus/prometheus.yml указываем конфигурацию Алертменеджера и файла с правилами отправки алертов
alerting:
alertmanagers:
— static_configs:
— targets: [«localhost:9093»] #указываем место, кода смотреть на алертменеджер
rule_files:
— «rules.yml» #указываем название файла с правилами отправки алертов
Шаг 3. В rules.yml пишем правила для алертов
groups: #прописываем группы
— name: ca #пишем название группы
rules: #пишем правила
— alert: CA_High_memory_utiluzation #название алерта
expr: ((node_memory_MemAvailable_bytes{job=»ubuntu-desktop»} / node_memory_MemTotal_bytes{job=»ubuntu-desktop»}) * 100) < 10 #выражение
for: 1m #через сколько выполнится условие для отправки
annotations: #описание. Оно придет по почте
title: ‘High memory utiluzation’
description: ‘High memory utiluzation’
labels:
severity: ‘crit’ #серьезность события
— alert: CA_Disc_space_problem
expr: ((node_filesystem_avail_bytes{job=»ubuntu-desktop», mountpoint=»/»,fstype!=»rootfs»} / node_filesystem_size_bytes{job=»ubuntu-desktop», mountpoint=»/»,fstype!=»rootfs»}) * 100) < 10
for: 1m
annotations:
title: ‘Disk 90% full’
description: ‘Disk 90% full’
labels:
severity: ‘crit’
— alert: CA_node_exporter_down
expr: up{job=»ubuntu-desktop»} == 0
for: 10s
annotations:
title: ‘CA Node Exporter Down’
description: ‘CA Node Exporter Down’
labels:
severity: ‘crit’
— alert: CA_High_CPU_utiluzation
expr: node_load1{job=»ubuntu-desktop»} > 0.9
for: 1m
annotations:
title: ‘High CPU utiluzation’
description: ‘High CPU utiluzation’
labels:
severity: ‘crit’
В прометеусе в разделе Алертс правила будут выглядеть примерно следующим образом

Когда-нибудь напишу много-много примеров алертов, но не в этот раз.
Шаг 4. Настраиваем почту.
Идем в файл /etc/alertmanager/alertmanager.yml и добавляем шаблон
global:
resolve_timeout: 1m
route:
receiver: ‘yandex-alert-notification’
group_wait: 10s
group_interval: 1m
repeat_interval: 1m
receivers:
— name: ‘yandex-alert-notification’
email_configs:
— to: ‘to@yandex.ru’
from: ‘from@yandex.ru’
smarthost: ‘smtp.yandex.ru:587’
auth_username: ‘from@yandex.ru’
auth_identity: ‘from@yandex.ru’
auth_password: ‘vultdmubnyfwbybc’
Из приведенной конфигурации нас больше всего интересует раздел receivers.
To и from — от кого и кому.
Smarthost остается неизменным.
В auth_username и auth_identity записываем почту из поля from.
В auth_password пишем пароль, который получаем следующим образом
Заходим в настройки почты, которая будет отправлять уведомления/
Нажимаем на вкладку Безопасность

Выбираем самый нижний пункт Пароли приложений

Жмем Создать пароль приложения — Почта

Придумываем понятное для вас имя для пароля

Получаем пароль

Шаг 5. Перезагружаем сервисы прометеуса и алертменеджера.
Шаг 6. Получаем уведомления на почту и утираем слезы счастья от того, что все получилось.
Настройка Telegram
Для настройки Telegram идем в botfather и просим дать токен

Создаем новый чатик (или берем старый), в который будет писать бот. Добавляем в этот чатик нашего бота.
Для получения chat_id нужно зайти в telegtam web с компьютера и добраться до нужного чата. В ссылке страницы будет содержаться нужный идентификатор
https://web.telegram.org/a/#-1072515557324
!!! Важно!!! Chat_id начинается со знака минус !!!
Конструкция в alertmanager.yml будет следующая
telegram_configs:
— bot_token: ‘745433222440:AAE5oy6QLYQKeetbwv8lyENhYunvuonV2vA’
chat_id: -1072515557324
Перезапускаем службу алертменеджера и наслаждаемся уведомлениями