Справочник алертов мониторинга¶
В справочнике приведены алерты мониторинга платформы KeyStack с описанием метрик, порогов срабатывания и рекомендуемых действий.
Инфраструктура¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
Node |
Свободное место на файловой системе |
Нехватка свободного места на файловой системе |
Возможен отказ ключевых сервисов, таких как sshd, auditd, logrotate Может наступить отказ в работе docker-контейнеров сервисов виртуализации Ситуация требует анализа |
На узле с помощью команды 'df -h' проверить, какая файловая система израсходовала свободное место. Далее с помощью команды 'du -hd1 /*' проанализировать размер каталогов/файлов. При необходимости освободить место либо расширить файловую систему. |
SystemDiskFull |
KeyStack - System |
node_exporter |
node_filesystem_free_bytes / node_filesystem_size_bytes |
Warning, если занято >=85% дискового пространства Critical, если занято >= 95% дискового пространства |
Node |
Свободные inode на файловой системе |
Слишком много файлов в системе |
Может влиять на возможность создавать новые файлы Может возникать перегрузка ядра при работе с файловыми дескрипторами |
На узле с помощью команды 'df -ih' проанализировать, на какой файловой системе закончились inode. С помощью инструментов 'lsof', 'ps' и /proc/PID/fd продиагностировать, какими процессами активно используются inode. Временно может помочь удаление старых журналов системы. |
SystemDiskInodesFull |
KeyStack - System |
node_exporter |
node_filesystem_files_free / node_filesystem_files |
Warning, если занято >=85% inodes Critical, если занято >= 95% inodes |
Node |
Средняя нагрузка за 15 минут |
Виртуальные машины на узле стали потреблять больше ресурсов процессора, чем раньше |
Виртуальные машины могут получать меньше процессорного времени, что может вызвать снижение их отзывчивости Может расти значение iowait time, steal time в выводе утилит подобных top |
С помощью 'htop' или 'top' выявить наиболее активных потребителей процессорного времени. Проанализировать исторические данные по нагрузке на процессор. Проанализировать данные по потреблению процессорных ресурсов виртуальными машинами. Проверить работу KeyVRM: сервис мог не успеть сформировать или применить рекомендации по эвакуации или миграции ВМ. При необходимости проанализировать события и рекомендации KeyVRM и выполнить ручные действия по перераспределению ВМ. |
SystemLoadTooHigh |
KeyStack - System |
node_exporter |
(node_load15) / count by (instance) (count by (cpu, instance) (node_cpu_seconds_total)) |
Warning, если отношение средней нагрузки за 15 мин к количеству ядер > 1 Critical, если отношение средней нагрузки за 15 мин к количеству ядер > 2 |
Node |
Использование оперативной памяти |
Повышенное давление на память узла |
Может наступить событие Out-Of-Memory с принудительным завершением процессов с низким приоритетом у планировщика ядра |
Проанализировать графики загрузки памяти. С помощью 'htop' или 'top' выявить наиболее активных потребителей памяти. Диагностировать процессы на предмет утечки памяти. Оценить значения в '/proc/meminfo': распределение страниц памяти, '/proc/buddyinfo': фрагментацию памяти разного порядка. Оценить необходимость миграции ВМ на другой гипервизор. |
SystemMemoryFull |
KeyStack - System |
node_exporter |
(1 - (node_memory_MemFree_bytes + node_memory_Cached_bytes + node_memory_Buffers_bytes) / node_memory_MemTotal_bytes) * 100 and node_memory_MemAvailable_bytes |
Warning, если занято > 90% ОЗУ и свободно < 8Gb ОЗУ Critical, если занято > 95% ОЗУ и свободно < 4Gb ОЗУ |
Node |
Количество отбрасываемых пакетов на приём |
Может означать ошибку в конфигурации сетевых интерфейсов Может означать неисправность физического оборудования |
Может снижаться скорость передачи данных по сети |
Проверить состояние физического оборудования: состояние патч-кордов, патч-панелей, сетевой карты, порта коммутатора. Проверить настройки порта на коммутаторе. Проверить настройки сетевого интерфейса. |
SystemRxPacketsDroppedTooHigh |
KeyStack - System |
node_exporter |
node_network_receive_drop_total |
Warning, если количество потерянных пакетов > 60 в мин |
Node |
Количество отбрасываемых пакетов на отправку |
Может означать ошибку в конфигурации сетевых интерфейсов Может означать неисправность физического оборудования |
Может снижаться скорость передачи данных по сети |
Проверить состояние физического оборудования: состояние патч-кордов, патч-панелей, сетевой карты, порта коммутатора. Проверить настройки порта на коммутаторе. Проверить настройки сетевого интерфейса. |
SystemTxPacketsDroppedTooHigh |
KeyStack - System |
node_exporter |
node_network_transmit_drop_total |
Warning, если количество потерянных пакетов > 60 в мин |
Node |
Количество пакетов с ошибками на получение |
Может означать ошибку в конфигурации сетевых интерфейсов Может означать неисправность физического оборудования |
Может снижаться скорость передачи данных по сети |
Проверить состояние физического оборудования: состояние патч-кордов, патч-панелей, сетевой карты, порта коммутатора. Проверить настройки порта на коммутаторе. Проверить настройки сетевого интерфейса. |
SystemRxPacketsErrorTooHigh |
KeyStack - System |
node_exporter |
node_network_receive_errs_total |
Warning, если количество ошибок > 0 |
Node |
Количество пакетов с ошибками на отправку |
Может означать ошибку в конфигурации сетевых интерфейсов Может означать неисправность физического оборудования |
Может снижаться скорость передачи данных по сети |
Проверить состояние физического оборудования: состояние патч-кордов, патч-панелей, сетевой карты, порта коммутатора. Проверить настройки порта на коммутаторе. Проверить настройки сетевого интерфейса. |
SystemTxPacketsErrorTooHigh |
KeyStack - System |
node_exporter |
node_network_transmit_errs_total |
Warning, если количество ошибок > 0 |
Node |
Рассинхронизация времени между узлом и источником времени |
Рассинхронизация времени на узле и сетевым источником времени |
Может вызывать нарушение в работе сервисов, которые зависят от синхронизации времени между узлами В частности может происходить отказ keystone в авторизации |
Проверить работоспособность NTP сервиса на узле. Проверить, что в конфигурации NTP сервиса указаны корректные серверы времени. Проверить сетевую доступность серверов времени. Просмотреть содержимое лог-файлов NTP сервиса. |
ClockSkewDetected |
KeyStack - System |
node_exporter |
node_timex_offset_seconds |
Warning, если расхождение времени > 0.03 сек |
Node |
Отсутствие синхронизации времени |
Нет синхронизации с узлом сетевого времени |
Может вызывать нарушение в работе сервисов, которые зависят от синхронизации времени между узлами В частности может происходить отказ keystone в авторизации |
Проверить работоспособность NTP сервиса на узле. Проверить, что в конфигурации NTP сервиса указаны корректные серверы времени. Проверить сетевую доступность серверов времени. Просмотреть содержимое лог-файлов NTP сервиса. |
HostClockNotSynchronising |
KeyStack - System |
node_exporter |
node_timex_sync_status node_timex_maxerror_seconds |
Warning, если часы на узле не синхронизируется (node_timex_sync_status = 0) и максимальная ошибка >= 16 сек |
Node |
Перезагрузка узла |
Может означать недавнюю перезагрузку узла |
Недоступность узла на время перезагрузки Возможен неправомерный доступ, аппаратные и/или программные причины |
В случае нештатной перезагрузки проанализировать журналы узла для выявления причин перезагрузки. |
InstanceRebooted |
KeyStack - System |
node_exporter |
(time() - node_boot_time_seconds) |
Critical, если аптайм узла < 900 сек |
Node |
Код ответа на HTTP запросы к заданным эндпоинтам |
Точки входа управляющих сущностей доступны по сети, но отдают неправильные коды ответа |
Невозможность взаимодействия сервисов между собой |
Проанализировать журналы keystone и других компонентов, влияющих на общение сервисов друг с другом через API (например haproxy, mariadb). Проверить статус docker-контейнеров. Проанализировать журналы docker-контейнеров. |
BlackboxProbeHttpFailureMoreThan5min |
KeyStack - System |
blackbox_exporter |
probe_http_status_code |
Critical, если код ответа <= 199 или >= 402 |
Node |
Утилизация CPU |
Может означать высокое потребление процессорного времени каким-либо процессом |
Узел оказался под нагрузкой ВМ и управляющие процессы будут получать меньше процессорного времени, что может повлечь деградацию производительности или отказ в обслуживании |
С помощью 'htop' или 'top' выявить наиболее активных потребителей процессорного времени. Проанализировать исторические данные по нагрузке на процессор. Проанализировать данные по потреблению процессорных ресурсов. |
SystemCpuFull |
KeyStack - System |
node_exporter |
node_cpu_seconds_total |
Warning, если утилизация CPU >= 60% Immediate, если утилизация CPU >= 80% Critical, если утилизация CPU >= 90% |
Node |
Сбой ОЗУ |
Сработала аппаратная коррекция памяти Потенциально опасная ситуация |
Может привести к непредвиденной потере данных |
Перевести узел в режим обслуживания (maintenance mode), провести диагностику и анализ журналов. При необходимости произвести замену модуля памяти. |
HostEdacCorrectableErrorsDetected |
KeyStack - System |
node_exporter |
increase(node_edac_correctable_errors_total[5m]) |
Info, если количество устранимых ошибок ОЗУ > 0 |
Node |
Сбой ОЗУ |
Обнаружена неисправимая ошибка в памяти Опасная ситуация |
Может привести к непредвиденной потере данных |
Перевести узел в режим обслуживания (maintenance mode), провести диагностику и анализ журналов. При необходимости произвести замену модуля памяти. |
HostEdacUncorrectableErrorsDetected |
KeyStack - System |
node_exporter |
increase(node_edac_uncorrectable_errors_total[5m]) |
Warning, если количество неустранимых ошибок ОЗУ > 0 |
Node |
Статус сетевого интерфейса |
Сетевой интерфейс перестал быть активным |
Влияет на все функции работы узла |
Необходимо подключиться к управляющему интерфейсу или консоли узла. Проверить отсутствие ошибок аппаратного обеспечения. Проверить функционирование операционной системы. Проверить статус сетевых интерфейсов. Проанализировать журналы на узле на предмет ручного отключения сетевого интерфейса. |
Host interface state |
KeyStack - System |
node_exporter |
node_network_up{device=~"^mgmt|^external|^bond.+"} |
Warning, если статус интерфейсов с именами mgmt, external, bond* != 1 (link down) |
Node |
Флаппинг сетевого интерфейса |
Может означать ошибку в конфигурации сетевых интерфейсов Может означать неисправность физического оборудования |
Может снижаться скорость передачи данных по сети Может влиять на сетевую доступность узла |
Проверить отсутствие ошибок аппаратного обеспечения. Проверить состояние физического оборудования: состояние патч-кордов, патч-панелей, сетевой карты, порта коммутатора. Проверить настройки порта на коммутаторе. Проверить настройки сетевого интерфейса. |
Network interface flapping |
KeyStack - System |
node_exporter |
node_network_carrier_changes_total |
Warning, если > 1.6 |
Node |
Сбой на устройстве файловой системы |
Файловая система деградирует |
Влияет на стабильность работы узла Возможна потеря данных на файловой системе |
Проанализировать журналы узла в dmesg. Произвести диагностику дисковой системы. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
HostFilesystemDeviceError |
KeyStack - System |
node_exporter |
node_filesystem_device_error |
Critical, если значение = 1 |
Node |
Наличие событий OOM kill |
Аварийное состояние узловой системы Повышенное давление на память узла |
Влияет на стабильность работы узла |
На узле проверить состояние процессов с помощью инструментов top, htop, ps. Проанализировать журнал dmesg. Определить процессы с повышенным потреблением памяти. Определить процессы с растущим потреблением памяти. При необходимости уменьшить нагрузку на узел. |
HostOomKillDetected |
KeyStack - System |
node_exporter |
node_vmstat_oom_kill |
Warning, если значение > 0 |
Node |
Установленный режим работы CPUfreq governor |
Неоптимальный для ВМ режим работы центрального процессора |
Неоптимальный для ВМ режим работы всего узла |
Изменить настройки узла для смены режима работы центрального процессора на 'performance'. Проанализировать журналы доступа к настройке оборудования. При необходимости передать оборудование в ремонт. |
CPUgovernorNotPerformanceMode |
KeyStack - System |
node_exporter |
node_cpu_scaling_governor{governor!="performance"} |
Warning, если количество ядер с режимом, отличным от performance, != 0 |
Node |
Дубликат IPv4 на узлах |
В сети обнаружено несколько узлов с одинаковым IP адресом |
Нарушение сетевого взаимодействия узлов с одинаковыми IP адресами и остальным сетевым окружением |
Выявить узлы с одинаковыми IP адресами. Для каждого затронутого узла установить уникальный IP адрес. |
HostDuplicateIPAddressDetected |
KeyStack - System |
node_exporter |
count by (address) (node_network_address_info{scope="global"}) |
|
Node |
Состояние узла |
Недоступность узла |
Возможно нарушение работоспособности отдельных компонентов облака |
Необходимо подключиться к управляющему интерфейсу или консоли узла. Проверить отсутствие ошибок аппаратного обеспечения. Проверить функционирование операционной системы. Проверить статус сетевых интерфейсов. Проанализировать журналы на узле на предмет ошибок. |
Host state |
KeyStack - System |
node_exporter |
up{job!~"redfish_exporter|blackbox_exporter.*"} |
Warning, если sum by (node_address) = 0 в течение 5 мин |
Node |
Состояние узла |
Узел выключен или неработоспособность экспортёра |
Недоступность гипервизора или управляющей ноды Отсутствие мониторинга и сбора метрик с узла Возможно нарушение работоспособности отдельных компонентов облака |
Убедиться в работоспособности контейнера node. Проверить журналы контейнера. Проверить легитимность нахождения узла в выключенном состоянии. |
NodeExporterTargetDown |
KeyStack - System |
node_exporter |
up{job="node"} |
Warning, если = 0 в течение 5 мин |
Node |
Состояние сетевых bond |
Агрегированный интерфейс не активен |
Влияет на все функции работы узла |
Проверить состояние физического оборудования: состояние патч-кордов, патч-панелей, сетевой карты, порта коммутатора. Проверить настройки и режим работы агрегации. Проверить настройки порта на коммутаторе. |
Host Network Bond Degraded |
KeyStack - System |
node_exporter |
node_bonding_active - node_bonding_slaves |
Warning, если разница между количеством активных интерфейсов и количеством резервных != 0 |
Node |
Утилизация сетевого интерфейса |
Высокая нагрузка на сеть |
Потенциально может привести к недоступности узла или облака |
Проанализировать потребление сетевого трафика на узле, например с помощью инструмента 'iftop'. Проанализировать сетевые подключения с помощью инструмента 'ss'. |
High network utilization |
KeyStack - System |
node_exporter |
((rate(node_network_transmit_bytes_total{device=~"^bond.+|^mgmt"}[5m]) + rate(node_network_receive_bytes_total{device=~"^bond.+|^mgmt"}[5m])) / node_network_speed_bytes{device=~"^bond.+|^mgmt"}) * 100 |
Warning, если загрузка сетевого интерфейса > 70% от пропускной способности Immediate, если загрузка сетевого интерфейса > 80% от пропускной способности Critical, если загрузка сетевого интерфейса > 90% от пропускной способности |
Node |
Ошибки линка FC |
Сбой в работе FibreChannel соединения |
Возможно замедление или полная блокировка работы блочных устройств ВМ |
Проанализировать журнал dmesg. Проверить отсутствие ошибок аппаратного обеспечения. Проверить состояние физического оборудования: состояние патч-кордов, патч-панелей, FC-адаптера, порта коммутатора. Проанализировать журналы FC-фабрик. |
FC link failure |
KeyStack - System |
node_exporter |
node_fibrechannel_link_failure_total |
Warning, если в течение 5 мин количество ошибок > 0 |
Node |
Потеря сигнала FC |
Сбой в работе FibreChannel соединения |
Возможно замедление или полная блокировка работы блочных устройств ВМ |
Проанализировать журнал dmesg. Проверить отсутствие ошибок аппаратного обеспечения. Проверить состояние физического оборудования: состояние патч-кордов, патч-панелей, FC-адаптера, порта коммутатора. Проанализировать журналы FC-фабрик. |
FC loss signal |
KeyStack - System |
node_exporter |
node_fibrechannel_loss_of_signal_total |
Warning, если в течение 5 мин значение > 0 |
Node |
Срок действия SSL сертификата |
Срок действия SSL сертификата в цепочке истекает в течение 90 дней |
Влияет на работоспособность и доступность сервисов облака |
Проверить срок действия каждого сертификата в цепочке. При необходимости выпустить новый сертификат и произвести его замену. |
SSL certificate expiration soon |
KeyStack - System |
blackbox_exporter |
probe_ssl_earliest_cert_expiry{job="blackbox_exporter"} - time() |
Warning, если до окончания срока действия сертификата < 30 и > 29 дней Critical, если до окончания срока действия сертификата < 14 дней |
Node |
Сетевая недоступность nova-api |
Точки входа управляющих сущностей или недоступны по сети, или отдают неправильные коды ответа |
Невозможность взаимодействия сервисов между собой на затронутых узлах |
Проверить сетевую связность между управляющими узлами и корректность маршрутов. Проверить статус контейнера nova_api на соответствующем управляющем узле. Проверить журналы контейнера. |
BlackboxProbeHttpNovaApi |
KeyStack - System |
blackbox_exporter |
probe_http_status_code{job="blackbox_exporter_blackhole_check"} |
Critical, если код ответа <= 199 или >= 402 |
Region |
Утилизация vCPU на узле с учётом переподписки |
Переподписка на ресурсы процессора превышает допустимую норму |
Возможно замедление работы и повышенная нагрузка на центральный процессор, и потенциально потеря данных в случайных процессах |
С помощью 'htop' или 'top' выявить наиболее активных потребителей процессорного времени. Проанализировать исторические данные по нагрузке на процессор. Проанализировать данные по потреблению процессорных ресурсов виртуальными машинами. Проверить работу KeyVRM: сервис мог не успеть сформировать или применить рекомендации по эвакуации или миграции ВМ. При необходимости проанализировать события и рекомендации KeyVRM и выполнить ручные действия по перераспределению ВМ. |
Cluster CPU oversubscription |
KeyStack - System |
openstack_exporter |
openstack_placement_resource_usage{resourcetype="VCPU"} / (openstack_placement_resource_total{resourcetype="VCPU"} * 100 |
Warning, если утилизировано с учётом переподписки > 90% vCPU |
Region |
Утилизация памяти на узле с учётом переподписки |
Высокое использование памяти на гипервизорах |
Возможно замедление работы ВМ, возможны локальные сбои в работе Возможны события Out Of Memory |
Проанализировать графики загрузки памяти. С помощью 'htop' или 'top' выявить наиболее активных потребителей памяти. Диагностировать процессы на предмет утечки памяти. Оценить значения в '/proc/meminfo': распределение страниц памяти, '/proc/buddyinfo': фрагментацию памяти разного порядка. Проверить работу KeyVRM: сервис мог не успеть сформировать или применить рекомендации по эвакуации или миграции ВМ. При необходимости проанализировать события и рекомендации KeyVRM и выполнить ручные действия по перераспределению ВМ. |
Cluster memory oversubscription |
KeyStack - System |
openstack_exporter |
openstack_placement_resource_usage{resourcetype="MEMORY_MB"} / (openstack_placement_resource_total{resourcetype="MEMORY_MB"} *100 |
Immediate, если на узле утилизировано с учётом переподписки >= 90% памяти |
Node |
Состояние systemd сервиса на узле |
Systemd сервис был остановлен |
Отказоустойчивость облака или доступность сервисов может быть нарушена |
Зайти на узел и посмотреть статус сервиса. Посмотреть вывод journalctl по данному сервису. Посмотреть журналы сервиса. Проверить конфигурацию сервиса. |
SystemdServiceStopped |
KeyStack - Systemd |
node_exporter |
node_systemd_unit_state{state="active"} |
Warning, если = 0 |
Node |
Состояние systemd сервиса на всех узлах |
Systemd сервис был остановлен |
Отказоустойчивость облака или доступность сервисов может быть нарушена |
Зайти на узел и посмотреть статус сервиса. Посмотреть вывод journalctl по данному сервису. Посмотреть журналы сервиса. Проверить конфигурацию сервиса. |
SystemdServiceOutage |
KeyStack - Systemd |
node_exporter |
node_systemd_unit_state{state="active"} |
Critical, если sum by (name) = 0 |
Node |
Состояние systemd сервиса на узле |
Зафиксирован перезапуск Systemd сервиса |
Отказоустойчивость облака или доступность сервисов может быть нарушена |
Зайти на узел и посмотреть статус сервиса. Посмотреть вывод journalctl по данному сервису. Посмотреть журналы сервиса. Проверить конфигурацию сервиса. |
SystemdServiceRestarts |
KeyStack - Systemd |
node_exporter |
rate(node_systemd_service_restart_total[5m]) |
Warning, если > 0 |
OpenStack¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
Cinder |
Состояние cinder-агента на узле |
Сбой работы агента работы с блочными хранилищами |
Могут не подключаться новые хранилища к узлу Возможен сбой запуска ВМ |
Убедиться в работоспособности контейнера cinder_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
CinderServiceDown |
KeyStack - Cinder |
openstack_exporter |
openstack_cinder_agent_state{adminState="enabled"} |
Warning, если статус cinder-агента установлен в enabled, но его текущий статус = 0 (cinder-агент не запущен на данном узле) |
Cinder |
Состояние cinder-агентов в регионе |
Сбой работы агента работы с блочными хранилищами |
Могут не подключаться новые хранилища к узлу Возможен сбой запуска ВМ |
Убедиться в работоспособности контейнера cinder_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
CinderServiceOutage |
KeyStack - Cinder |
openstack_exporter |
sum by (service) (openstack_cinder_agent_state{adminState="enabled"}) |
Critical, если статус cinder-агентов установлен в enabled, но текущий статус всех cinder-агентов = 0 (во всём регионе нет ни одного запущенного cinder-агента) |
Cinder |
Статус cinder-агентов в регионе |
Сбой работы агента работы с блочными хранилищами |
Могут не подключаться новые хранилища к узлу Возможен сбой запуска ВМ |
Убедиться в работоспособности контейнера cinder_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
CinderServiceDisabled |
KeyStack - Cinder |
openstack_exporter |
count by (service)(openstack_cinder_agent_state{adminState="enabled"}) |
Critical, если количество cinder-агентов со статусом enable = 0 (все cinder-агенты в регионе отключены) |
Cinder |
Утилизация cinder-пула |
Нехватка свободного места на системе хранения данных |
Могут перестать создаваться новые ВМ Ранее созданные ВМ могут быть остановлены Возможна потеря данных внутри ВМ Ситуация требует анализа |
При необходимости освободить место либо расширить дисковую ёмкость. |
CinderPoolFull |
KeyStack - Cinder |
openstack_exporter |
(openstack_cinder_pool_capacity_total_gb - openstack_cinder_pool_capacity_free_gb) / openstack_cinder_pool_capacity_total_gb * 100 |
Warning, если > 80 Immediate, если > 90 Critical, если > 95 |
Cinder |
Диск ВМ долго находится в статусе attaching |
Диск ВМ длительное время не может сменить статус 'attaching' на статус 'in-use' |
ВМ не может использовать диск Возможно отключение дисков ВМ при неуспешных попытках миграции ВМ с диском в статусе 'attaching' |
Убедиться в работоспособности контейнера cinder_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
CinderVolumeAttachingStateLongTime |
KeyStack - Cinder |
openstack_exporter |
openstack_cinder_volume_gb{status="attaching"} |
Warning, если статус не меняется более 5 мин |
Cinder |
Диск ВМ долго находится в статусе error |
Диск ВМ длительное время находится в статусе 'error' |
ВМ не может использовать диск |
Убедиться в работоспособности контейнера cinder_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
CinderVolumeErrorStateLongTime |
KeyStack - Cinder |
openstack_exporter |
openstack_cinder_volume_gb{status="error"} |
Warning, если статус не меняется более 5 мин |
Cinder |
Зафиксирован снапшот старше 14 дней |
Зафиксирован снапшот старше 14 дней |
Повышенная утилизация дисковой ёмкости Большое количество снапшотов может влиять на время выполнения некоторых запросов, связанных со снапшотами или дисковыми томами |
Убедиться в необходимости хранения снапшота. |
CinderSnapshotTooOld |
KeyStack - Cinder |
openstack_exporter |
time() - openstack_cinder_snapshot |
Warning, если > 14 дней |
Nova |
Состояние nova-агента на узле |
Сбой агента сервиса работы с ВМ |
Могут перестать создаваться новые ВМ Ранее созданные ВМ могут остаться без управления |
Убедиться в работоспособности контейнера nova_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
NovaServiceDown |
KeyStack - Nova |
openstack_exporter |
openstack_nova_agent_state{adminState="enabled"} |
Warning, если статус nova-агента установлен в enabled, но его текущий статус = 0 (nova-агент не запущен на данном узле) |
Nova |
Состояние nova-агентов в регионе |
Сбой агента сервиса работы с ВМ |
Могут перестать создаваться новые ВМ Ранее созданные ВМ могут остаться без управления |
Убедиться в работоспособности контейнера nova_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
NovaServiceOutage |
KeyStack - Nova |
openstack_exporter |
sum by(service) (openstack_nova_agent_state{adminState="enabled"}) |
Critical, если статус nova-агентов установлен в enabled, но текущий статус всех nova-агентов = 0 (во всём регионе нет ни одного запущенного nova-агента) |
Nova |
Статус nova-агентов в регионе |
Сбой агента сервиса работы с ВМ |
Могут перестать создаваться новые ВМ Ранее созданные ВМ могут остаться без управления |
Убедиться в работоспособности контейнера nova_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
NovaServiceDisabled |
KeyStack - Nova |
openstack_exporter |
count by (service)(openstack_nova_agent_state{adminState="enabled"}) |
Critical, если количество nova-агентов со статусом enable = 0 (все nova-агенты в регионе отключены) |
Nova |
Состояние nova-агента на узле |
Отключен сервис агента работы с ВМ |
Могут перестать создаваться новые ВМ Ранее созданные ВМ могут остаться без управления |
Проанализировать причину отключения, указанную в статусе агента. Убедиться в работоспособности контейнера nova_*. Проверить журналы контейнера. Убедиться в работоспособности контейнера libvirt_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
NovaServiceAutoDisabled |
KeyStack - Nova |
openstack_exporter |
openstack_nova_agent_state{disabledReason=~"AUTO:.+|BOND_DISABLED:.+|FENCED:.+"} |
Warning, если в течение 5 мин nova agent имеет соответствующие disabledReason |
Nova |
Перевод гипервизора в Maintenance mode |
Гипервизор был переведен в режим обслуживания |
Гипервизор не готов для рабочих нагрузок |
Проверить, что перевод гипервизора в режим обслуживания (Maintenance mode) был произведён в плановом порядке. Проверить корректность миграции ВМ на остальные гипервизоры. В случае незапланированного перевода гипервизора в режим обслуживания проанализировать журналы для выявления причины изменения режима работы. |
ComputeNodeInMM |
KeyStack - Nova |
openstack_exporter |
openstack_nova_agent_state{adminState="disabled",disabledReason="maintenance mode.*|Service was transitioned to MaintenanceMode.",service="nova-compute"} |
Warning, если условие выполняется |
Nova |
Гипервизор не смог перейти в Maintenance mode |
Гипервизор не смог перейти в режим обслуживания |
Гипервизор не готов для рабочих нагрузок |
Проверить, что попытка перевода гипервизора в режим обслуживания (Maintenance mode) была произведена в плановом порядке. Проанализировать журналы для выявления причины изменения режима работы. Проанализировать журналы и значение error_details для выявления причины невозможности изменения режима работы. |
ComputeNodeToMMerror |
KeyStack - Nova |
openstack_exporter |
openstack_nova_agent_state{adminState="disabled",disabledReason="Service was transitioned to Error.",service="nova-compute"} |
Warning, если условие выполняется |
Neutron |
Состояние neutron-агента на узле |
Сбой работы агента работы с виртуальными сетями |
Возможно нарушение сетевой связности с ВМ Возможен сбой при создании новых ВМ |
Убедиться в работоспособности контейнера neutron_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
NeutronServiceDown |
KeyStack - Neutron |
openstack_exporter |
openstack_neutron_agent_state{adminState="up"} |
Warning, если статус neutron-агента установлен в up, но его текущий статус = 0 (neutron-агент не запущен на данном узле) |
Neutron |
Состояние neutron-агентов в регионе |
Сбой работы агента работы с виртуальными сетями |
Возможно нарушение сетевой связности с ВМ Возможен сбой при создании новых ВМ |
Убедиться в работоспособности контейнера neutron_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
NeutronServiceOutage |
KeyStack - Neutron |
openstack_exporter |
sum by(service) (openstack_neutron_agent_state{adminState="up"}) |
Critical, если статус neutron-агентов установлен в up, но текущий статус всех neutron-агентов = 0 (во всём регионе нет ни одного запущенного neutron-агента) |
Neutron |
Статус neutron-агентов в регионе |
Сбой работы агента работы с виртуальными сетями |
Возможно нарушение сетевой связности с ВМ Возможен сбой при создании новых ВМ |
Убедиться в работоспособности контейнера neutron_*. Проверить журналы контейнера. Проверить состояние RabbitMQ. |
NeutronServiceDisabled |
KeyStack - Neutron |
openstack_exporter |
count by (service)(openstack_neutron_agent_state{adminState="up"}) |
Critical, если количество neutron-агентов со статусом up = 0 (все neutron-агенты в регионе отключены) |
Nova |
Состояние libvirt exporter |
Может означать: неработоспособность экспортёра и невозможность отдавать метрики недоступность узла |
Отсутствие мониторинга и сбора метрик ВМ |
Убедиться в работоспособности контейнеров libvirt. Проверить журналы контейнера. |
LibvirtDown |
KeyStack - Libvirt |
libvirt_exporter |
libvirt_up |
Critical, если статус !=1 (экспортёр выключен) |
Nova |
Сбор всех метрик с libvirt exporter с узла |
Может означать: неработоспособность экспортёра и невозможность отдавать метрики недоступность узла Сбой в сети |
Отсутствие мониторинга и сбора метрик ВМ |
Убедиться в работоспособности контейнеров libvirt. Проверить журналы контейнера. |
LibvirtExporterTargetDown |
KeyStack - Libvirt |
node_exporter |
avg_over_time(max by (instance) (up{job="libvirt_exporter"})[5m:30s]) |
Critical, если среднее количество успешных сборов метрик на определённом узле < 0.85 (наблюдается пропуск сбора метрик на узле) |
Nova |
Сбор всех метрик с libvirt exporter со всех узлов |
Может означать: неработоспособность экспортёра и невозможность отдавать метрики недоступность узла Сбой в сети |
Отсутствие мониторинга и сбора метрик ВМ |
Убедиться в работоспособности контейнеров libvirt. Проверить журналы контейнера. |
LibvirtExporterTargetOutage |
KeyStack - Libvirt |
node_exporter |
max(avg_over_time(max by (instance) (up{job="libvirt_exporter"})[5m:30s])) |
Critical, если среднее количество успешных сборов метрик для всех узлов < 0.85 (наблюдается пропуск сбора метрик на каком-то узле) |
Haproxy |
Состояние балансировщика |
Неработоспособность балансировщика или сетевая недоступность балансировщика |
Влияет на работоспособность облака, доступность отдельных компонентов облака, на доступность API сервисов |
Убедиться в работоспособности контейнера haproxy. Проверить журналы контейнера haproxy. |
HAProxyInstanceDown |
KeyStack - HAproxy |
haproxy_exporter |
up{job="haproxy"} |
Warning, если avg_over_time(max by (instance) (up{job="haproxy"})[5m:30s]) < 0.85 |
Haproxy |
Состояние балансировщика |
Неработоспособность балансировщика или сетевая недоступность балансировщика |
Влияет на работоспособность облака, доступность отдельных компонентов облака, на доступность API сервисов |
Убедиться в работоспособности контейнеров haproxy. Проверить журналы контейнера. Проверить конфигурацию балансировщика. |
HAProxyInstanceOutage |
KeyStack - HAproxy |
haproxy_exporter |
up{job="haproxy"} |
Critical, если max(avg_over_time(max by (instance) (up{job="haproxy"})[5m:30s])) < 0.85 |
Haproxy |
Состояние бэкенда на балансировщике |
Неработоспособность бэкенда (сервиса) или его сетевая недоступность на всех узлах (во всём пуле балансировки) |
Влияет на работоспособность облака, доступность отдельных компонентов облака, на доступность API сервисов |
Убедиться в работоспособности контейнера haproxy. Проверить журналы контейнера haproxy. Убедиться в работоспособности docker-контейнера соответствующего бэкенда (сервиса). Проверить журналы контейнера соответствующего бэкенда. Проверить конфигурацию соответствующего бэкенда. |
HAProxyBackendDown |
KeyStack - HAproxy |
haproxy_exporter |
haproxy_backend_status |
Critical, если haproxy_backend_status{state!="UP"} = 1 |
Haproxy |
Состояние сервера в пуле на балансировщике |
Неработоспособность бэкенда (сервиса) или его сетевая недоступность |
Влияет на работоспособность облака, доступность отдельных компонентов облака, на доступность API сервисов |
Убедиться в работоспособности и доступности соответствующего узла. Убедиться в работоспособности docker-контейнера соответствующего бэкенда (сервиса). Проверить журналы контейнера соответствующего бэкенда. Проверить конфигурацию соответствующего бэкенда. Убедиться в работоспособности контейнера haproxy. Проверить журналы контейнера haproxy. |
HAProxyServerDown |
KeyStack - HAproxy |
haproxy_exporter |
haproxy_server_status |
Critical, если haproxy_server_status{state!="UP"} = 1 |
Haproxy |
Результаты health check балансировщика |
Не пройдена проверка health check для сервера (бэкенда) в пуле балансировки |
Влияет на работоспособность облака, доступность отдельных компонентов облака, на доступность API сервисов |
Убедиться в работоспособности контейнера haproxy. Проверить журналы контейнера haproxy. Убедиться в работоспособности docker-контейнера соответствующего бэкенда (сервиса). Проверить журналы контейнера соответствующего бэкенда. |
HAProxyServerHealthcheckFailure |
KeyStack - HAproxy |
haproxy_exporter |
sum by (proxy, server) (rate(haproxy_server_check_failures_total[5m])) |
Warning, если количество непройденных тестов за 5 мин > 0 |
Haproxy |
Наличие ошибок со статусом 5хх в ответе бэкендов |
Сбой в работе БД или иных компонентов сервиса Переполнение по количеству запросов |
Неработоспособность сервисов или облака в целом |
Проверить сетевую доступность соответствующего узла. Проверить статус сетевых интерфейсов узла. Убедиться в работоспособности docker-контейнера соответствующего бэкенда (сервиса). Проверить журналы контейнера. Проверить, что соответствующий бэкенд слушает правильный сетевой порт. Убедиться в работоспособности контейнера haproxy. Проверить журналы контейнера. Проверить конфигурацию haproxy. |
HAProxyHigh5xxErrorRateBackend |
KeyStack - HAproxy |
haproxy_exporter |
(sum by (proxy, instance) (rate(haproxy_backend_http_responses_total{code="5xx"}[10m])) / sum by (proxy, instance) (rate(haproxy_backend_http_responses_total[10m]))) * 100 |
Warning, если для бэкенда в течение 10 мин количество ответов со статусом 5хх > 5 |
Haproxy |
Наличие ошибок со статусом 5хх в ответе фронтендов |
Высокая нагрузка, сбой haproxy |
Недоступность фронтенда |
Проверить сетевую доступность соответствующего узла. Проверить статус сетевых интерфейсов узла. Убедиться в работоспособности docker-контейнера соответствующего фронтенда (сервиса). Проверить журналы контейнера. Проверить, что соответствующий фронтенд слушает правильный сетевой порт. Убедиться в работоспособности контейнера haproxy. Проверить журналы контейнера. Проверить конфигурацию haproxy. |
HAProxyHigh5xxErrorRateFrontend |
KeyStack - HAproxy |
haproxy_exporter |
(sum by (proxy, instance) (rate(haproxy_frontend_http_responses_total{code="5xx"}[10m])) / sum by (proxy, instance) (rate(haproxy_frontend_http_responses_total[10m]))) * 100 |
Warning, если для фронтенда в течение 10 мин количество ответов со статусом 5хх > 5 |
Haproxy |
Время ответа от бэкенда keystone |
Повышенная нагрузка на keystone или медленная работа самого сервиса |
Возможно нарушение работы сервисов и сбой облака |
Провести диагностику нагрузки по памяти и центральному процессору на управляющих узлах. Проанализировать журналы keystone и его docker-контейнера. Проанализировать нагрузку по управляющей сети. Проанализировать журналы haproxy и его docker-контейнера. |
HAProxyKeystoneBackendSlowingDown |
KeyStack - HAproxy |
haproxy_exporter |
avg by (proxy, instance) (haproxy_backend_total_time_average_seconds{proxy=~"keystone_.*"} |
Warning, если время ответа keystone > 1 сек |
Haproxy |
Флаппинг статуса сервера |
Может означать ошибку в конфигурации бэкенда (сервиса) или его сетевую недоступность |
Влияет на работоспособность облака, доступность отдельных компонентов облака, на доступность API сервисов |
Убедиться в работоспособности и доступности соответствующего узла. Убедиться в работоспособности docker-контейнера соответствующего бэкенда (сервиса). Проверить журналы контейнера соответствующего бэкенда. Проверить конфигурацию соответствующего бэкенда. Убедиться в работоспособности контейнера haproxy. Проверить журналы контейнера haproxy. |
HAProxyBackendFlapping |
KeyStack - HAproxy |
haproxy_exporter |
haproxy_server_check_up_down_total[2m] |
Warning, если rate(haproxy_server_check_up_down_total[2m]) > 0 |
VictoriaMetrics¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
VMAgent |
Состояние vmagent |
VMAgent не успевает своевременно отправлять данные в удалённое хранилище метрик и удалил часть данных из постоянной очереди |
Частичная потеря данных мониторинга за какой-то период времени |
Проверить доступность и работоспособность удалённых хранилищ метрик, указанных в параметре '-remoteWrite.url' команды запуска VMAgent. Проанализировать производительность дисковой подсистемы передающей и принимающей сторон. Проанализировать скорость передачи данных по сети и утилизацию сетевых интерфейсов. |
VMPersistentQueueIsDroppingData |
Keystack -VMAgent |
victoriametrics |
sum(increase(vm_persistentqueue_bytes_dropped_total[5m])) |
Critical > 0 |
VMAgent |
Состояние vmagent |
VMAgent отбрасывает блоки данных, отклоненные удалённым хранилищем |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать журналы контейнеров *vmagent для диагностики причины отклонения данных удалённым хранилищем. |
VMRejectedRemoteWriteDataBlocksAreDropped |
Keystack -VMAgent |
victoriametrics |
sum(increase(vmagent_remotewrite_packets_dropped_total[5m])) |
Warning > 0 |
VMAgent |
Состояние vmagent |
VMAgent не смог собрать метрики с одного или нескольких экспортёров (targets) за последние 15 мин |
Отсутствие мониторинга и сбора метрик некоторых компонентов |
Проанализировать журналы контейнера *vmagent для диагностики недоступного экспортёра (target). Убедиться в корректности перечня таргетов, а также параметров соответствующего задания (job) в конфигурационном файле vmagent. Проверить доступность и работоспособность соответствующего экспортёра. |
VMTooManyScrapeErrors |
Keystack -VMAgent |
victoriametrics |
increase(vm_promscrape_scrapes_failed_total[5m]) |
Warning > 0 |
VMAgent |
Состояние vmagent |
В конфигурационном файле VMAgent одно или несколько заданий (job) не содержит перечня экспортёров (targets) для сбора метрик |
Отсутствие мониторинга и сбора метрик некоторых компонентов |
Проанализировать и проверить конфигурацию региона. Проанализировать и проверить inventory региона. Проанализировать кем и когда вносились последние изменения в конфигурационный файл VMAgent. |
VMScrapePoolHasNoTargets |
Keystack -VMAgent |
victoriametrics |
sum(vm_promscrape_scrape_pool_targets) |
Warning == 0 |
VMAgent |
Состояние vmagent |
VMAgent отвечает ошибками на запросы записи данных в удалённое хранилище |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать журналы контейнеров *vmagent. Проанализировать журналы контейнеров victoriametrics_*. Проанализировать утилизацию вычислительных ресурсов, на которых размещаются компоненты VictoriaMetrics, а также сетевую связность между ними. |
VMTooManyWriteErrors |
Keystack -VMAgent |
victoriametrics |
sum(increase(vm_ingestserver_request_errors_total[5m]))+ sum(increase(vmagent_http_request_errors_total[5m])) |
Warning > 0 |
VMAgent |
Состояние vmagent |
Высокая утилизация соединения между vmagent и удалённым хранилищем |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать производительность дисковой подсистемы передающей и принимающей сторон. Проанализировать скорость передачи данных по сети и утилизацию сетевых интерфейсов. Проанализировать утилизацию вычислительных ресурсов принимающей стороны. Проанализировать необходимость увеличения параметра '-remoteWrite.queues' команды запуска VMAgent. |
VMRemoteWriteConnectionIsSaturated |
Keystack -VMAgent |
victoriametrics |
rate(vmagent_remotewrite_send_duration_seconds_total[5m]) / vmagent_remotewrite_queues) |
Warning > 0.9 |
VMAgent |
Состояние vmagent |
Увеличенное время записи в постоянную очередь VMAgent может не успевать записывать данные из оперативной памяти на дисковую подсистему |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать нагрузку на vmagent. Проанализировать производительность дисковой подсистемы vmagent. |
VMPersistentQueueForWritesIsSaturated |
Keystack -VMAgent |
victoriametrics |
rate(vm_persistentqueue_write_duration_seconds_total[5m]) |
Warning > 0.9 |
VMAgent |
Состояние vmagent |
Увеличенное время чтения из постоянной очереди VMAgent может не успевать считывать данные с дисковой системы |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать нагрузку на vmagent. Проанализировать производительность дисковой подсистемы vmagent. |
VMPersistentQueueForReadsIsSaturated |
Keystack -VMAgent |
victoriametrics |
rate(vm_persistentqueue_read_duration_seconds_total[5m]) |
Warning > 0.9 |
VMAgent |
Состояние vmagent |
Неуспешное обновление конфигурации vmagent |
Отсутствие мониторинга и сбора метрик некоторых компонентов |
Проанализировать журналы контейнера *vmagent. |
VMConfigurationReloadFailure |
Keystack -VMAgent |
victoriametrics |
vm_promscrape_config_last_reload_successful vmagent_relabel_config_last_reload_successful |
Warning vm_promscrape_config_last_reload_successful !=1 or vmagent_relabel_config_last_reload_successful !=1 |
VMAgent |
Состояние vmagent |
Число уникальных временных рядов записанных в удалённое хранилище за предыдущий час приближается к установленному максимальному значению |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать количество временных рядов записываемых в удалённое хранилище. Проанализировать значение параметра '-remoteWrite.maxHourlySeries' команды запуска VMAgent для удалённого хранилища. |
VMSeriesLimitHourReached |
Keystack -VMAgent |
victoriametrics |
vmagent_hourly_series_limit_current_series / vmagent_hourly_series_limit_max_series) |
Warning > 0.9 |
VMAgent |
Состояние vmagent |
Число уникальных временных рядов записанных в удалённое хранилище за предыдущие сутки приближается к установленному максимальному значению |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать количество временных рядов записываемых в удалённое хранилище. Проанализировать значение параметра '-remoteWrite.maxDailySeries' команды запуска VMAgent для удалённого хранилища. |
VMSeriesLimitDayReached |
Keystack -VMAgent |
victoriametrics |
(vmagent_daily_series_limit_current_series / vmagent_daily_series_limit_max_series) |
Warning > 0.9 |
VMAgent |
Состояние vmagent |
Процесс агрегации сэмплов (samples) в режиме потоковой передачи не завершился в течение заданного интервала агрегации |
Неверные результаты агрегации в целевом удалённом хранилище метрик |
Проанализировать журналы контейнера *vmagent. Проанализировать установленные интервалы агрегации в конфигурационном файле потоковой агрегации. Возможные решения: увеличить интервал агрегации, агрегировать меньшее количество серий, уменьшить скорость приема сэмплов (samples) для потоковой агрегации. |
VMStreamAggrFlushTimeout |
Keystack -VMAgent |
victoriametrics |
increase(vm_streamaggr_flush_timeouts_total[5m]) |
Warning > 0 |
VMAgent |
Состояние vmagent |
Процесс дедупликации в режиме потоковой передачи не завершился в течение заданного интервала агрегации |
Неверные результаты агрегации в целевом удалённом хранилище метрик |
Проанализировать журналы контейнера *vmagent. Проанализировать установленные интервалы дедупликации в конфигурационном файле потоковой агрегации. Обратиться к разделу Deduplication документации VictoriaMetrics. Возможные решения: увеличить интервал дедупликации, дедуплицировать меньшее количество серий, уменьшить скорость приема сэмплов (samples) для потоковой агрегации. |
VMStreamAggrDedupFlushTimeout |
Keystack -VMAgent |
victoriametrics |
increase(vm_streamaggr_dedup_flush_timeouts_total[5m]) |
Warning > 0 |
VMAlert |
Состояние vmalert |
Неуспешное обновление конфигурации vmalert |
Отсутствие результата обработки правил и отправки уведомлений об алертах |
Проанализировать журналы контейнера *vmalert. |
VMConfigurationReloadFailure |
Keystack - VMAlert |
victoriametrics |
vmalert_config_last_reload_successful |
Warning != 1 |
VMAlert |
Состояние vmalert |
Не выполняется обработка правила оповещения (alert rule) |
Отсутствие результата обработки правил и отправки уведомлений об алертах |
Проанализировать журналы контейнера *vmalert. |
VMAlertingRulesError |
Keystack - VMAlert |
victoriametrics |
sum(increase(vmalert_alerting_rules_errors_total[5m])) |
Warning > 0 |
VMAlert |
Состояние vmalert |
Не выполняется обработка правила записи (record rule) |
Отсутствие результата обработки правил и расчёта метрик |
Проанализировать журналы контейнера *vmalert. |
VMRecordingRulesError |
Keystack - VMAlert |
victoriametrics |
sum(increase(vmalert_recording_rules_errors_total[5m])) |
Warning > 0 |
VMAlert |
Состояние vmalert |
Отсутствуют результаты выполнения правил записи (recording rules) |
Отсутствие результата обработки правил и расчёта метрик Отсутствие мониторинга и сбора метрик некоторых компонентов |
Проанализировать запрос в правиле записи (recording rule). Проанализировать данные, используемые в запросе. |
VMRecordingRulesNoData |
Keystack - VMAlert |
victoriametrics |
sum(vmalert_recording_rules_last_evaluation_samples) |
info < 1 |
VMAlert |
Состояние vmalert |
Обработка группы правил занимает больше времени, чем установленный интервал |
Отсутствие результата обработки правил и отправки уведомлений об алертах |
Проанализировать время обработки группы правил. Обратиться к разделу Groups документации vmalert. Если выполнение правил занимает больше ожидаемого времени, обратиться к разделу Slow queries документации VictoriaMetrics. |
VMTooManyMissedIterations |
Keystack - VMAlert |
victoriametrics |
increase(vmalert_iteration_missed_total[5m]) |
Warning > 0 |
VMAlert |
Состояние vmalert |
Неуспешная отправка запросов на запись данных в удалённое хранилище |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать журналы контейнеров *vmalert. Проверить доступность и работоспособность удалённого хранилища метрик. Убедиться в корректности параметров удалённого хранилища метрик в параметрах запуска VMAlert. |
VMRemoteWriteErrors |
Keystack - VMAlert |
victoriametrics |
increase(vmalert_remotewrite_errors_total[5m]) |
Warning > 0 |
VMAlert |
Состояние vmalert |
VMAlert не может отправить данные на запись в удалённое хранилище и отбрасывает их Перегружен буфер клиента удалённой записи |
Отсутствие результата обработки правил и отправки уведомлений об алертах Отсутствие статусов алертов |
Проанализировать журналы контейнеров *vmalert. Проверить доступность и работоспособность удалённого хранилища метрик. Убедиться в корректности параметров удалённого хранилища метрик в параметрах запуска VMAlert. Проанализировать утилизацию вычислительных ресурсов удалённого хранилища. |
VMRemoteWriteDroppingData |
Keystack - VMAlert |
victoriametrics |
increase(vmalert_remotewrite_dropped_rows_total[5m]) |
Warning > 0 |
VMAlert |
Состояние vmalert |
VMAlert не может отправлять уведомления в Alertmanager |
Отсутствие отправки уведомлений об алертах |
Проанализировать журналы контейнеров *vmalert. Проанализировать параметры команды запуска VMAlert. Проанализировать доступность и работоспособность Alertmanager. Проанализировать журналы контейнеров *alertmanager. |
VMAlertmanagerErrors |
Keystack - VMAlert |
victoriametrics |
increase(vmalert_alerts_send_errors_total[5m]) |
Warning > 0 |
VMCluster |
Состояние кластера VictoriaMetrics |
Зафиксированы ошибки в запросах к API |
Некорректная работа с данными мониторинга |
Проанализировать журналы контейнеров victoriametrics*. Проанализировать конфигурацию компонента, получающего запросы с ошибками. Проанализировать конфигурацию компонента, отправляющего запросы с ошибками. Проанализировать содержимое запросов. |
VMRequestErrorsToAPI |
KeyStack - VMCluster |
victoriametrics |
increase(vm_http_request_errors_total[5m]) |
Warning > 0 |
VMCluster |
Состояние кластера VictoriaMetrics |
Зафиксированы ошибки во взаимодействии между компонентами кластера VictoriaMetrics |
Отсутствие мониторинга и сбора метрик некоторых компонентов Отсутствие предоставления данных мониторинга |
Проанализировать журналы контейнеров victoriametrics*. Проанализировать конфигурацию контейнеров victoriametrics*. Проанализировать утилизацию вычислительных ресурсов, на которых размещаются компоненты VictoriaMetrics, а также сетевую связность между ними. |
VMRPCErrors |
KeyStack - VMCluster |
victoriametrics |
sum(increase(vm_rpc_connection_errors_total[5m])) + sum(increase(vm_rpc_dial_errors_total[5m])) + sum(increase(vm_rpc_handshake_errors_total[5m])) |
Warning > 0 |
VMCluster |
Состояние кластера VictoriaMetrics |
VictoriaMetrics постоянно создает новые временные ряды Частота изменений (Churn Rate) составляет более 10% |
Снижение производительности базы данных, наличие событий OOM (Out of memory), медленные запросы |
Проанализировать метки (labels) с наиболее часто изменяемыми данными. Проанализировать возможность удаления или агрегации таких меток. |
VMTooHighChurnRate |
KeyStack - VMCluster |
victoriametrics |
sum(rate(vm_new_timeseries_created_total[5m])) by(job) / sum(rate(vm_rows_inserted_total[5m])) by(job)) |
Warning > 0.1 |
VMCluster |
Состояние кластера VictoriaMetrics |
Количество созданных новых временных рядов за последние 24 часа в три раза превышает количество активных временных рядов |
Снижение производительности базы данных, наличие событий OOM (Out of memory), медленные запросы |
Проанализировать метки (labels) с наиболее часто изменяемыми данными. Проанализировать возможность удаления или агрегации таких меток. |
VMTooHighChurnRate24h |
KeyStack - VMCluster |
victoriametrics |
sum(increase(vm_new_timeseries_created_total[24h])) |
Warning > (sum(vm_cache_entries{type="storage/hour_metric_ids"}) by(job) * 3) |
VMCluster |
Состояние кластера VictoriaMetrics |
Высокий процент медленных операций insert относительного общего количества таких операций |
Возможно нарушение корректного функционирования системы мониторинга |
Проанализировать утилизацию вычислительных ресурсов, на которых размещаются компоненты VictoriaMetrics. Проанализировать утилизацию оперативной памяти компонента vminsert. Проанализировать текущую нагрузку на систему мониторинга. Обратиться к GitHub issue в репозитории VictoriaMetrics. |
VMTooHighSlowInsertsRate |
KeyStack - VMCluster |
victoriametrics |
(sum(rate(vm_slow_row_inserts_total[5m])) by(job) / sum(rate(vm_rows_inserted_total[5m])) by(job)) |
Warning > 0.05 |
VMCluster |
Состояние кластера VictoriaMetrics |
Высокая утилизация соединения между vminsert и vmstorage |
Возможно нарушение корректного функционирования системы мониторинга |
Проанализировать утилизацию вычислительных ресурсов, на которых размещаются компоненты vminsert и vmstorage. Проанализировать нагрузку на компоненты vminsert и vmstorage. Проанализировать необходимость добавления в кластер узлов vminsert или vmstorage. |
VMVminsertVmstorageConnectionIsSaturated |
KeyStack - VMCluster |
victoriametrics |
rate(vm_rpc_send_duration_seconds_total[5m]) |
Warning > 0.9 |
VMCluster |
Состояние кластера VictoriaMetrics |
Нехватка свободного места на файловой системе |
Нарушение процессов слияния и ухудшение общей производительности |
Проанализировать возможность ограничения объёма принимаемых данных, уменьшения периода хранения данных или расширения дискового пространства. |
VMDiskRunsOutOfSpace |
KeyStack - VMCluster |
victoriametrics |
sum(vm_data_size_bytes) / (sum(vm_free_disk_space_bytes) + sum(vm_data_size_bytes) ) |
Critical > 0.8 Warning > 0.75 |
VMCluster |
Состояние кластера VictoriaMetrics |
В соответствии с текущим объёмом получаемых данных свободное место на диске закончится в течение трёх дней |
Возможно нарушение корректного функционирования системы мониторинга |
Проанализировать возможность ограничения объёма принимаемых данных, уменьшения периода хранения данных или расширения дискового пространства. |
VMDiskRunsOutOfSpaceIn3Days |
KeyStack - VMCluster |
victoriametrics |
sum(vm_free_disk_space_bytes) / ((rate(vm_rows_added_to_storage_total[1d]) - sum(rate(vm_deduplicated_samples_total[1d])) ) * (sum(vm_data_size_bytes{type!~"indexdb.*"}) / sum(vm_rows{type!~"indexdb.*"}) ) + rate(vm_new_timeseries_created_total[1d]) * scalar(sum(vm_data_size_bytes{type="indexdb/file"}) / sum(vm_rows{type="indexdb/file"}))) < 3 * 24 * 3600 |
Critical > 0 |
VMCluster |
Состояние кластера VictoriaMetrics |
В соответствии с текущим объёмом получаемых данных система мониторинга в течение трёх дней перейдёт в режим только для чтения |
Частичная потеря данных мониторинга за какой-то период времени |
Проанализировать возможность ограничения объёма принимаемых данных, уменьшения периода хранения данных или расширения дискового пространства. |
VMNodeBecomesReadonlyIn3Days |
KeyStack - VMCluster |
victoriametrics |
sum(vm_free_disk_space_bytes - vm_free_disk_space_limit_bytes) / ((rate(vm_rows_added_to_storage_total[1d]) - sum(rate(vm_deduplicated_samples_total[1d])) ) * (sum(vm_data_size_bytes{type!~"indexdb.*"}) / sum(vm_rows{type!~"indexdb.*"}) ) + rate(vm_new_timeseries_created_total[1d]) * scalar(sum(vm_data_size_bytes{type="indexdb/file"}) / sum(vm_rows{type="indexdb/file"}))) < 3 * 24 * 3600 |
Warning > 0 |
VMCluster |
Состояние кластера VictoriaMetrics |
Система мониторинга перешла в режим только для чтения |
Частичная потеря данных мониторинга за какой-то период времени |
С помощью команды 'du -hd1 /*' проанализировать размер каталогов/файлов. Проанализировать возможность ограничения объёма принимаемых данных, уменьшения периода хранения данных. При необходимости освободить место либо расширить файловую систему. |
VMStorageIsReadonly |
KeyStack - VMCluster |
victoriametrics |
vm_storage_is_read_only |
Warning == 1 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Компонент VictoriaMetrics часто перезапускается |
Отсутствие мониторинга и сбора метрик некоторых компонентов Отсутствие предоставления данных мониторинга |
Проанализировать журналы контейнеров victoriametrics*. Проанализировать конфигурацию компонентов. |
VMTooManyRestarts |
KeyStack - VMHealth |
victoriametrics |
changes(process_start_time_seconds{job="victoriametrics"}[15m]) |
Critical > 2 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Один или несколько компонентов VictoriaMetrics выключен или неисправен на всех узлах |
Отсутствие мониторинга и сбора метрик некоторых компонентов Отсутствие предоставления данных мониторинга |
Проанализировать журналы контейнеров victoriametrics*. Проанализировать конфигурацию компонентов. |
VMServiceDown |
KeyStack - VMHealth |
victoriametrics |
(label_replace(up{job="victoriametrics"} |
Critical sum by (service_port) == 0 Warning == 0 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Количество открытых файлов приближается к установленному ограничению |
Может означать повышенную нагрузку на компонент Может означать некорректную конфигурацию |
Проанализировать состояние компонентов VictoriaMetrics. С помощью инструментов 'lsof', 'ps' и /proc/PID/fd продиагностировать какими файловыми дескрипторами пользуются процессы VictoriaMetrics. При необходимости произвести перезагрузку затронутого компонента VictoriaMetrics или узла. Проанализировать журналы узла и ядра. Проанализировать необходимость увеличения ограничения. |
VMProcessNearFDLimits |
KeyStack - VMHealth |
victoriametrics |
process_open_fds{job="victoriametrics"} / process_max_fds{job="victoriametrics"} * 100 |
Critical > 90 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Высокое потребление памяти компонентом VictoriaMetrics |
Возможно нарушение корректного функционирования системы мониторинга, наличие событий OOM (Out of memory), снижение производительности |
Проанализировать состояние компонентов VictoriaMetrics. Проверить работу балансировщика (haproxy). При необходимости произвести перезагрузку затронутого компонента VictoriaMetrics или узла. |
VMTooHighMemoryUsage |
KeyStack - VMHealth |
victoriametrics |
min_over_time(process_resident_memory_anon_bytes{job="victoriametrics"}[10m]) / vm_available_memory_bytes) * 100 |
Critical > 80 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Высокое потребление ресурсов ЦП компонентом VictoriaMetrics |
Возможно нарушение корректного функционирования системы мониторинга, снижение производительности |
Проанализировать состояние компонентов VictoriaMetrics. Проверить работу балансировщика (haproxy). Проанализировать возможность ограничения объёма обрабатываемых данных. Проанализировать необходимость добавления в кластер дополнительных экземпляров затронутого компонента. |
VMTooHighCPUUsage |
KeyStack - VMHealth |
victoriametrics |
rate(process_cpu_seconds_total{job="victoriametrics"}[5m]) / process_cpu_cores_available{job="victoriametrics"}) |
Critical > 0.9 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Среда выполнения Go не может запланировать выполнение goroutines в приемлемое время |
Возможно нарушение корректного функционирования системы мониторинга, снижение производительности |
Проанализировать утилизацию вычислительных ресурсов, на которых размещаются компоненты VictoriaMetrics. Проверить достаточность выделения ресурсов ЦП для компонентов VictoriaMetrics и отсутствие динамического изменения частоты ЦП (throttling) на узле. |
VMTooHighGoroutineSchedulingLatency |
KeyStack - VMHealth |
victoriametrics |
(histogram_quantile(0.99, sum(rate(go_sched_latencies_seconds_bucket{job="victoriametrics"}[5m])) by (le, job, instance)) |
Critical > 0.1 |
VMHealth |
Состояние компонентов VictoriaMetrics |
В журналах компонента VictoriaMetrics фиксируется большое количество записей с уровнем error |
Возможно нарушение корректного функционирования системы мониторинга |
Проанализировать журналы контейнеров victoriametrics*. |
VMTooManyLogs |
KeyStack - VMHealth |
victoriametrics |
sum(increase(vm_log_messages_total{level="error"}[5m]) |
Warning > 0 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Количество одновременных операций insert приближается к установленному ограничению, зависящему от количества ЦП |
Возможно нарушение корректного функционирования системы мониторинга |
Проанализировать утилизацию вычислительных ресурсов, на которых размещаются компоненты VictoriaMetrics. Для компонентов vmagent и vminsert проанализировать количество клиентов с запросами на запись. При нормальной утилизации ЦП и сетевого соединения компонентами vmagent и vminsert рассмотреть необходимость настройки параметра '-maxConcurrentInserts' команды запуска соответствующего компонента. |
VMConcurrentInsertsHitTheLimit |
KeyStack - VMHealth |
victoriametrics |
avg_over_time(vm_concurrent_insert_current[5m]) |
Warning >= vm_concurrent_insert_capacity |
VMHealth |
Состояние компонентов VictoriaMetrics |
IndexDB отклонил регистрацию поступивших временных рядов |
Отсутствие мониторинга и сбора метрик некоторых компонентов |
Проанализировать причину отклонения данных. В качестве примера, 'reason=too_long_item' означает, что размер временного ряда превышает ограничение по умолчанию в 64 КБ. В таком случае необходимо проанализировать возможность уменьшения количества меток (labels) или значений меток, либо увеличить ограничение с помощью параметров '-maxLabelsPerTimeseries' или '-maxLabelValueLen' команды запуска vmstorage. |
VMIndexDBRecordsDrop |
KeyStack - VMHealth |
victoriametrics |
increase(vm_indexdb_items_dropped_total[5m]) |
Critical > 0 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Некоторые метрики были отклонены во время процесса записи |
Отсутствие мониторинга и сбора метрик некоторых компонентов |
Проанализировать причину отклонения данных. |
VMRowsRejectedOnIngestion |
KeyStack - VMHealth |
victoriametrics |
rate(vm_rows_ignored_total[5m]) |
Warning > 0 |
VMHealth |
Состояние компонентов VictoriaMetrics |
Запросы на чтение завершаются сбоем из-за тайм-аута Достигнут предел параллелизма, установленный параметром '-search.maxConcurrentRequests', и остальные запросы были помещены в очередь на время, установленное параметром '-search.maxQueueDuration' Но даже после ожидания в очереди эти запросы не были обработаны |
Возможно нарушение корректного функционирования системы мониторинга, снижение производительности |
Проанализировать утилизацию вычислительных ресурсов, на которых размещаются компоненты VictoriaMetrics. Проанализировать время ответа компонента vmstorage. Проанализировать возможность снижения нагрузки, увеличения количество реплик vmstorage, увеличения значения параметров '-search.maxConcurrentRequests', '-search.maxQueueDuration'. Дополнительно обратиться к разделу Slow queries документации VictoriaMetrics. |
VMTooHighQueryLoad |
KeyStack - VMHealth |
victoriametrics |
increase(vm_concurrent_select_limit_timeout_total[5m]) |
Warning > 0 |
Middleware¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
RabbitMQ |
Очередь Unacknowledged Messages |
Количество сообщений в очередях RabbitMQ, которые были доставлены потребителям, но ещё не подтверждены этими потребителями |
Может влиять на производительность, надёжность и потребление ресурсов |
Проверить в Grafana метрики rabbitmq_queue_messages_unacknowledged, rabbitmq_queue_messages_ready and rabbitmq_queue_messages. Определить очереди, которые подверглись увеличению количества сообщений. Посмотреть журналы RabbitMQ и потребителей. |
RabbitMQUnacknowledgedMessagesIncrease |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_queue_messages_unacked |
Warning, если за последние 15 мин размер очереди увеличился на > 300 сообщений |
RabbitMQ |
Очередь Unroutable Messages |
Количество сообщений, которые RabbitMQ пытался доставить в очередь, но не смог найти подходящую очередь и впоследствии были возвращены отправителю или удалены из очереди |
Может увеличить нагрузку на сеть, потребление ресурсов и потерю сообщений Потенциально влияет на весь регион |
Проверить привязку очередей к обменникам (exchanges). Удостовериться, что отправители (publishers) имеют правильные маршруты. Проверить маршруты от отправителя к получателю. Проверить конфигурацию RabbitMQ. |
RabbitmqUnroutableMessages |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
increase(rabbitmq_channel_messages_unroutable_returned_total[5m]) + increase(rabbitmq_channel_messages_unroutable_dropped_total[5m]) |
Warning, если в течение 10 мин среднее значение unroutable_returned сообщений > 0 или, если в течение 10 мин среднее значение unroutable_dropped сообщений > 5 |
RabbitMQ |
Очередь Unroutable Messages |
Увеличилось количество сообщений, которые не попадают под правила маршрутизации и впоследствии были возвращены отправителю |
Может увеличить нагрузку на сеть, потребление ресурсов и потерю сообщений Потенциально влияет на весь регион |
Проверить привязку очередей к обменникам (exchanges). Удостовериться, что отправители (publishers) имеют правильные маршруты. Проверить маршруты от отправителя к получателю. Проверить конфигурацию RabbitMQ. |
RabbitMQUnroutableReturnedMessagesIncrease |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
increase(rabbitmq_channel_messages_unroutable_returned_total[5m]) |
Warning, если в течение 10 мин в очереди прибавилось > 5 unroutable_returned сообщений |
RabbitMQ |
Очередь Unroutable Messages |
Увеличилось количество сообщений, которые не попадают под правила маршрутизации и впоследствии были удалены из очереди |
Может увеличить нагрузку на сеть, потребление ресурсов и потерю сообщений Потенциально влияет на весь регион |
Проверить привязку очередей к обменникам (exchanges). Удостовериться, что отправители (publishers) имеют правильные маршруты. Проверить маршруты от отправителя к получателю. Проверить конфигурацию RabbitMQ. |
RabbitMQUnroutableDroppedMessagesIncrease |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
increase(rabbitmq_channel_messages_unroutable_dropped_total[5m]) |
Warning, если в течение 10 мин в очереди прибавилось > 50 unroutable_dropped сообщений |
RabbitMQ |
Размер очередей |
Значительно увеличилось общее количество сообщений, находящихся в очереди, включая готовые и неподтверждённые сообщения |
Рост количества сообщений влияет на быстродействие всего кластера, потребление ресурсов и отзывчивость кластера |
Проанализировать состояние сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. При необходимости произвести оптимизацию потребителей. При необходимости произвести перезагрузку какого-либо сервиса RabbitMQ или узла кластера. |
RabbitMQQueueMessagesIncrease |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_queue_messages |
Warning, если за последние 10 мин размер очереди увеличился на > 300 сообщений |
RabbitMQ |
Размер очередей |
Общее количество сообщений, находящихся в очереди, включая готовые и неподтверждённые сообщения |
Рост количества сообщений влияет на быстродействие всего кластера, потребление ресурсов и отзывчивость кластера |
Проанализировать состояние сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. При необходимости произвести оптимизацию потребителей. При необходимости произвести перезагрузку какого-либо сервиса RabbitMQ или узла кластера. |
RabbitMQTooManyMessages |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_queue_messages |
Warning, если в течение 5 мин размер очереди > 40 сообщений |
RabbitMQ |
Статус узла |
Может означать: сетевую недоступность узла неисправность сервиса |
Влияет на все службы кластера |
На управляющем узле убедиться в работоспособности контейнеров rabbitmq*. Проверить журналы контейнеров. Проанализировать журналы rabbitmq. |
RabbitmqDown |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
up{job="rabbitmq"} |
Warning, если статус == 0 |
RabbitMQ |
Превышение ограничения памяти |
Потребление памяти сервисом RabbitMQ превысило установленное ограничение |
Может влиять на быстродействие и доступность сервиса RabbitMQ |
Проанализировать состояние сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проанализировать конфигурацию RabbitMQ. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. При необходимости произвести оптимизацию потребителей. При необходимости произвести перезагрузку какого-либо сервиса RabbitMQ или узла кластера. |
RabbitMQMemoryAlarm |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_alarms_memory_used_watermark |
Critical, если статус == 1 |
RabbitMQ |
Количество доступной памяти для процесса RabbitMQ |
Процесс RabbitMQ стал потреблять больше памяти, чем ему выделено |
Может влиять на работоспособность и доступность всех сервисов узла |
Проанализировать состояние сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. При необходимости произвести оптимизацию потребителей. При необходимости произвести перезагрузку какого-либо сервиса RabbitMQ или узла кластера. |
RabbitmqMemoryHigh |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_process_resident_memory_bytes / rabbitmq_resident_memory_limit_bytes |
Warning, если RabbitMQ использует > 90% памяти на узле |
RabbitMQ |
Превышение ограничения свободного места на диске |
Свободное дисковое пространство выделенное для RabbitMQ ниже установленного ограничения |
Может влиять на быстродействие и доступность сервиса RabbitMQ |
Проанализировать состояние сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проанализировать конфигурацию RabbitMQ. Проанализировать утилизацию дисковых ресурсов на узле. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. При необходимости произвести оптимизацию потребителей. При необходимости произвести перезагрузку какого-либо сервиса RabbitMQ или узла кластера. |
RabbitMQDiskAlarm |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_alarms_free_disk_space_watermark |
Critical, если статус == 1 |
RabbitMQ |
Количество используемых файловых дескрипторов |
Большое количество открытых на чтение-запись файлов |
Может означать повышенную нагрузку на сервис Может означать некорректную конфигурацию RabbitMQ |
Проанализировать состояние сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. При необходимости произвести оптимизацию потребителей. С помощью инструментов 'lsof', 'ps' и /proc/PID/fd продиагностировать, какими файловыми дескрипторами пользуется процесс. При необходимости произвести перезагрузку какого-либо сервиса RabbitMQ или узла кластера. Проанализировать журналы узла и ядра. |
RabbitmqFileDescriptorsUsage |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_process_open_fds / rabbitmq_process_max_fds |
Warning, если RabbitMQ использует > 90% доступных файловых дескрипторов на узле |
RabbitMQ |
Наличие очередей с сообщениями, но без подписчиков |
Может означать ошибку в конфигурации |
Может означать повышенную нагрузку на кластер Может означать некорректную конфигурацию RabbitMQ |
Проверить корректность конфигурации RabbitMQ. |
RabbitmqNoQueueConsumer |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_queue_messages > 0 and rabbitmq_queue_consumers == 0 |
Warning, если условие выполняется |
RabbitMQ |
Количество соединений |
Может означать повышенную нагрузку на кластер Может означать ошибку в конфигурации |
Может означать повышенную нагрузку на кластер Может означать некорректную конфигурацию RabbitMQ |
Провести аудит административных действий и нагрузки на регион. Проверить корректность конфигурации RabbitMQ. |
RabbitmqTooManyConnections |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_connections |
Warning, если количество подключений > 1000 |
RabbitMQ |
Статус сервиса |
В регионе не работают все экземпляры RabbitMQ |
Влияет на работу всего региона |
Убедиться в работоспособности контейнеров rabbitmq. Проверить журналы контейнера. |
RabbitmqServiceOutage |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
up{job="rabbitmq_internal"} |
Critical, если sum = 0 |
RabbitMQ |
Состояние сервиса |
RabbitMQ имеет много неподтверждённых сообщений |
Замедление работы региона или его неработоспособность |
Проанализировать состояние и журналы сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. Найти и проанализировать очереди, в которых находятся такие сообщения, и проанализировать состояние связанных служб. |
RabbitmqTooManyUnackMessages |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_queue_messages_unacked |
Warning, если sum by (queue,instance) > 1000 |
RabbitMQ |
Состояние сервиса |
В RabbitMQ возросло количество сообщений без подтверждения |
Замедление работы региона или его неработоспособность |
Проанализировать состояние и журналы сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. Найти и проанализировать очереди, в которых находятся такие сообщения, и проанализировать состояние связанных служб. |
RabbitMQUnacknowledgedMessagesIncrease |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_queue_messages_unacked |
Warning, если за последние 15 мин размер очереди увеличился на > 300 сообщений |
RabbitMQ |
Состояние сервиса |
Размер очереди RabbitMQ быстро увеличивается |
Рост количества сообщений влияет на быстродействие всего кластера, потребление ресурсов и отзывчивость кластера |
Проанализировать состояние сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. При необходимости произвести оптимизацию потребителей. При необходимости произвести перезагрузку какого-либо сервиса RabbitMQ или узла кластера. |
RabbitMQQueueGrowing |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rate(rabbitmq_queue_messages[5m]) > 100 and rabbitmq_queue_messages > 1000 |
Warning, если условие выполняется |
RabbitMQ |
Состояние сервиса |
Высокая скорость публикации в очереди RabbitMQ |
Рост количества сообщений влияет на быстродействие всего кластера, потребление ресурсов и отзывчивость кластера |
Проанализировать состояние сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. При необходимости произвести оптимизацию потребителей. При необходимости произвести перезагрузку какого-либо сервиса RabbitMQ или узла кластера. |
RabbitMQHighPublishRate |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rate(rabbitmq_queue_messages_published_total[2m]) |
Info, если sum by (instance) > 10000 |
RabbitMQ |
Доступность сервиса RabbitMQ |
В лог-файлах зафиксированы записи о недоступности RabbitMQ |
Влияет на работу всего региона |
Убедиться в работоспособности контейнеров rabbitmq. Проверить журналы контейнера. Проанализировать журналы rabbitmq. |
RabbitMQserverUnreachable |
KeyStack - RabbitMQ |
fluentd exporter |
fluentd_input_amqp_errors_records_total |
Warning, если в логах фиксируются новые ошибки подключения |
RabbitMQ |
Состояние соединения (distribution link) |
Не активное соединение (distribution link) между узлами RabbitMQ |
Влияет на работу всего региона |
Убедиться в работоспособности контейнеров rabbitmq. Проверить журналы контейнера. Проверить сетевую связность между управляющими узлами и корректность маршрутов. Проверить журналы RabbitMQ. |
RabbitmqNodeNotDistributed |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
erlang_vm_dist_node_state |
Critical, если < 3 |
RabbitMQ |
Кол-во соединений (distribution link) |
Недостаточное количество установленных связей между узлами кластера RabbitMQ Ожидаемое кол-во связей должно быть n*(n-1), где 'n' - кол-во узлов RabbitMQ в кластере |
Влияет на работу всего региона |
Убедиться в работоспособности контейнеров rabbitmq. Проверить журналы контейнера. Проверить сетевую связность между управляющими узлами и корректность маршрутов. Проверить журналы RabbitMQ. |
InsufficientEstablishedErlangDistributionLinks |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
erlang_vm_dist_node_state |
Critical, если count(erlang_vm_dist_node_state==3) < n*(n-1) |
RabbitMQ |
Наличие короткоживущих соединений |
Значительное кол-во соединений имеет короткое время жизни |
Может означать повышенную нагрузку на кластер Может означать некорректную конфигурацию клиентов или сервера RabbitMQ |
Провести аудит административных действий и нагрузки на регион. Проверить корректность конфигурации серверов RabbitMQ. Проверить корректность конфигурации клиентов RabbitMQ. |
HighConnectionChurn |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_connections_closed_total rabbitmq_connections_opened_total rabbitmq_connections |
Warning, если (rabbitmq_connections_closed_total + rabbitmq_connections_opened_total) / rabbitmq_connections > 10% |
RabbitMQ |
Размер очередей |
RabbitMQ имеет много сообщений готовых к отправке потребителям |
Замедление работы региона или его неработоспособность |
Проанализировать состояние и журналы сервиса RabbitMQ. Подключиться к web консоли и проанализировать отображаемые данные. Проверить работу балансировщика (haproxy), выделение ресурсов, конфигурацию очередей. Найти и проанализировать очереди, в которых находятся такие сообщения, и проанализировать состояние связанных служб. |
RabbitmqTooManyReadyMessages |
KeyStack - RabbitMQ |
rabbitmq internal exporter |
rabbitmq_queue_messages_ready |
Warning, если > 1000 |
MariaDB |
Состояние экземпляра |
Экземпляр MariaDB на узле ещё не готов для использования |
Влияет на все службы узла |
На управляющем узле убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. |
MariaDBDown |
Keystack - MariaDB |
mariadb exporter |
mysql_up |
Warning, если = 0 |
MariaDB |
Состояние экземпляра |
Недоступны все экземпляры MariaDB |
Влияет на все службы узла |
На управляющем узле убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. |
MariaDBOutage |
Keystack - MariaDB |
mariadb exporter |
mysql_up |
Critical, если sum = 1 |
MariaDB |
Состояние экземпляра |
Экземпляр MariaDB не синхронизирован с кластером |
Влияет на все службы узла |
На управляющем узле убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. |
MariaDBInstanceNotSynced |
Keystack - MariaDB |
mariadb exporter |
mysql_global_status_wsrep_local_state |
Warning, если статус != 4 |
MariaDB |
Состояние экземпляра |
Экземпляр MariaDB на узле ещё не готов для использования |
Влияет на все службы узла |
На управляющем узле убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. |
MariaDBInstanceNotReady |
Keystack - MariaDB |
mariadb exporter |
mysql_global_status_wsrep_ready |
Warning, если статус != 1 Critical, если sum = 0 |
MariaDB |
Состояние экземпляра |
Во входящей очереди на экземпляре MariaDB длительное время остаются сообщения, что может мешать синхронизации с кластером |
Влияет на все службы узла |
На управляющем узле убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. |
MariaDBInstanceReceiveQueueHigh |
Keystack - MariaDB |
mariadb exporter |
mysql_global_status_wsrep_local_recv_queue |
Warning, если размер очереди > 0 в течение 10 мин |
MariaDB |
Состояние экземпляра |
Длительное время записи на диск журналов транзакций MariaDB |
Влияет на все службы узла |
На управляющем узле убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. Проанализировать производительность дисковой подсистемы. |
MariadbInnodbLogWaits |
Keystack - MariaDB |
mariadb exporter |
mysql_global_status_innodb_log_waits |
Warning, если запросов > 10 в секунду на интервале 15 мин |
MariaDB |
Состояние экземпляра |
Длительное время ожидания блокировки таблиц БД MariaDB |
Влияет на все службы узла |
На управляющем узле убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. Проанализировать производительность дисковой подсистемы. |
MariadbTableLockWaitHigh |
Keystack - MariaDB |
mariadb exporter |
100 * mysql_global_status_table_locks_waited / (mysql_global_status_table_locks_waited + mysql_global_status_table_locks_immediate) |
Warning, если > 30 |
MariaDB |
Состояние экземпляра |
Экземпляр MariaDB на узле ещё не подключён к кластеру |
Влияет на все службы узла |
На управляющем узле убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. |
MariaDBInstanceWsrepNotConnected |
Keystack - MariaDB |
mariadb exporter |
mysql_global_status_wsrep_connected |
Warning, если статус != 1 Critical, если sum = 0 |
MariaDB |
Состояние кластера |
Нарушен кворум MariaDB |
Влияет на все службы узла |
На всех управляющих узлах убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. |
MariaDBClusterNotPrimary |
Keystack - MariaDB |
mariadb exporter |
mysql_global_status_wsrep_cluster_status |
Warning, если статус кластера != 1 Critical, если sum = 0 |
MariaDB |
Состояние кластера |
Количество узлов кластера MariaDB меньше трёх Нарушен кворум MariaDB |
Влияет на все службы узла |
На всех управляющих узлах убедиться в работоспособности контейнеров mariadb*. Проверить журналы контейнеров. Проанализировать журналы mariadb. |
MariaDBClusterSizeChange |
Keystack - MariaDB |
mariadb exporter |
mysql_global_status_wsrep_cluster_size |
Warning, если статус < 3 |
Consul |
Статус службы Consul на узле |
Экземпляр Consul на узле выключен или сломался |
Недоступна статистика о работе сервисов облака Недоступен сервис отказоустойчивости для узла |
На управляющем узле убедиться в работоспособности контейнеров consul*. Проверить журналы контейнеров. Проанализировать журналы consul. |
ConsulDown |
Keystack - Consul |
consul_exporter |
consul_up |
Warning, если = 0 |
Consul |
Статус службы Consul в облаке |
Недоступны все экземпляры Consul |
Влияет на работу сервисов, обеспечивающих отказоустойчивость |
На управляющем узле убедиться в работоспособности контейнеров consul*. Проверить журналы контейнеров. Проанализировать журналы consul. |
ConsulOutage |
Keystack - Consul |
consul_exporter |
consul_up |
Critical, если sum = 0 |
Consul |
Статус экспортёра Consul |
Экспортёр Consul недоступен или выключен |
За период недоступности нет данных о Consul |
На управляющем узле убедиться в работоспособности контейнера consul_exporter. Проверить и проанализировать журналы контейнера. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
ConsulExporterDown |
Keystack - Consul |
consul_exporter |
up{job="consul_exporter"} |
Warning, если = 0 |
Consul |
Статус экспортёра Consul |
Экспортёр Consul недоступен или выключен на всех узлах |
За период недоступности нет данных о Consul |
На управляющем узле убедиться в работоспособности контейнера consul_exporter. Проверить и проанализировать журналы контейнера. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
ConsulExporterOutage |
Keystack - Consul |
consul_exporter |
up{job="consul_exporter"} |
Critical, если sum = 0 |
Consul |
Не пройдена проверка health check сервиса Consul на узле |
Работа служб отказоустойчивости не находится в целевом состоянии |
Работа служб отказоустойчивости не находится в целевом состоянии Отказоустойчивость сервисов недоступна |
На управляющем узле убедиться в работоспособности контейнеров consul*. Проверить журналы контейнеров. Проанализировать журналы consul. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
ConsulHealthNodeStatus |
Keystack - Consul |
consul_exporter |
consul_catalog_service_node_healthy |
Critical, если = 0 |
Consul |
Состояние подчиненных сущностей Consul |
Необходимое количество сущностей в кластере не достигнуто |
Потенциальная нестабильность в работе отказоустойчивости |
На управляющем узле убедиться в работоспособности контейнеров consul*. Проверить журналы контейнеров. Проанализировать журналы consul. |
ConsulRaftPeers |
Keystack - Consul |
consul_exporter |
consul_raft_peers |
Critical, если < 3 |
Consul |
Состояние агентов Consul |
Не целевое состояние сервиса Consul |
Потенциальная нестабильность в работе отказоустойчивости |
На управляющем узле убедиться в работоспособности контейнеров consul*. Проверить журналы контейнеров. Проанализировать журналы consul. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
ConsulAgentUnhealthy |
Keystack - Consul |
consul_exporter |
consul_health_node_status |
Warning, если == 1 |
Consul |
Состояние сервиса consul |
Сервис Consul на узле в критическом состоянии |
Работа служб отказоустойчивости на узле недоступна |
Зайти на узел, проверить состояние и журналы контейнеров consul*. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
ConsulHealthServiceStatus |
Keystack - Consul |
consul_exporter |
consul_health_service_status |
Warning, если == 1 |
Consul |
Состояние участника LAN кластера |
Не целевое состояние узла LAN кластера Consul |
Потенциальная нестабильность в работе отказоустойчивости |
Зайти на узел, проверить состояние и журналы контейнеров consul*. Проанализировать журналы consul. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
ConsulLanMemberStatus |
Keystack - Consul |
consul_exporter |
consul_serf_lan_member_status |
Warning, если != 1 |
Consul |
Состояние участника WAN кластера |
Не целевое состояние узла WAN кластера Consul |
Потенциальная нестабильность в работе отказоустойчивости |
Зайти на узел, проверить состояние и журналы контейнеров consul*. Проанализировать журналы consul. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
ConsulWanMemberStatus |
Keystack - Consul |
consul_exporter |
consul_serf_wan_member_status |
Warning, если != 1 |
etcd |
Состояние сервиса etcd |
Экземпляр etcd недоступен или выключен. |
Снижение отказоустойчивости кластера etcd. При потере кворума запись в etcd станет невозможной. |
На управляющем хосте убедиться в работоспособности контейнера etcd. Проверить и проанализировать журналы контейнера. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
EtcdDown |
KeyStack - etcd |
etcd |
up{job="etcd"} |
Warning, если = 0 Critical, если sum = 0 |
etcd |
Состояние сервиса etcd |
Кластер etcd потерял лидера, возможна сетевая изоляция или недостаточно работоспособных узлов для кворума. |
Все операции записи в etcd будут заблокированы до выбора нового лидера. |
На управляющем хосте убедиться в работоспособности контейнера etcd. Проверить и проанализировать журналы контейнера. Проверить сетевую связность между управляющими узлами и корректность маршрутов. Убедиться в наличии кворума. Проанализировать журналы на предмет ошибок raft. |
EtcdNoLeader |
KeyStack - etcd |
etcd |
etcd_server_has_leader |
Critical, если = 0 |
etcd |
Состояние сервиса etcd |
Нестабильность лидера свидетельствует о проблемах с сетью, производительностью диска или высокой нагрузкой. |
Частые перевыборы лидера вызывают задержки записи (latency) и могут временно блокировать клиентов. |
Проверить задержку записи на диски на всех узлах (fsync etcd очень чувствителен к I/O). Проверить сетевые задержки между узлами. Просмотреть журналы raft на предмет таймаутов. Рассмотреть увеличение '--heartbeat-interval' и '--election-timeout'. |
EtcdHighLeaderChanges |
KeyStack - etcd |
etcd |
etcd_server_leader_changes_seen_total |
Warning, если increase(etcd_server_leader_changes_seen_total[15m]) > 3 |
etcd |
Состояние сервиса etcd |
Сразу несколько узлов etcd считают себя лидером, возможна сетевая изоляция или критическая ошибка консенсуса raft. |
Возможна несогласованность данных между узлами. Клиенты могут читать устаревшие данные с разных узлов. |
Немедленно проверить состояние всех узлов кластера etcd, выполнив внутри контейнера команду: 'etcdctl endpoint status --cluster'. Проверить сетевую связность между узлами. Изолировать узлы, потерявшие связь. Восстановить кластер из резервной копии при необходимости. Проанализировать журналы raft на всех узлах. |
EtcdSplitBrain |
KeyStack - etcd |
etcd |
etcd_server_is_leader |
Critical, если sum > 1 |
etcd |
Состояние сервиса etcd |
Высокий процент ошибочных gRPC-запросов указывает на проблемы с узлом или его перегрузку. |
Сервисы, использующие etcd, будут получать ошибки при попытках чтения/записи. |
Проанализировать журналы etcd на конкретные gRPC-ошибки. Проверить загрузку CPU и памяти узла. Проанализировать типы запросов с помощью 'etcdctl endpoint status --cluster'. |
EtcdHighGrpcRequestFailureRate |
KeyStack - etcd |
etcd |
(rate(grpc_server_handled_total{job="etcd", grpc_code=~"Internal|Unavailable|DeadlineExceeded|ResourceExhausted|Aborted|Unknown"}[5m])) / sum by (instance) (rate(grpc_server_handled_total{job="etcd"}[5m]))) * 100 |
Warning, если sum by (instance) > 1 Critical, если sum by (instance) > 5 |
etcd |
Состояние сервиса etcd |
Высокие задержки при сохранении (операция fsync) записей журнала etcd/WAL (запись перед записью журнала) на диск перед их применением. |
Высокая задержка fsync напрямую увеличивает задержку операций записи etcd и может спровоцировать таймауты raft. |
Проанализировать I/O-утилизацию диска, например, с помощью команды 'iostat -x 1'. Проанализировать возможность переноса etcd на более быстрое хранилище (SSD/NVMe). Проверить наличие других процессов, конкурирующих за I/O. Рассмотреть выделение отдельного диска для etcd. |
EtcdSlowFsync |
KeyStack - etcd |
etcd |
rate(etcd_disk_wal_fsync_duration_seconds_bucket[5m]) |
Warning, если histogram_quantile(0.99) > 0.5 |
etcd |
Состояние сервиса etcd |
Высокие задержки при фиксации (коммите) инкрементального снимка (снапшота) последних изменений etcd на диск. |
Клиентские запросы будут выполняться медленнее, возможны таймауты и повторные попытки. |
Проверить I/O нагрузку на диск. Проанализировать размер базы данных etcd. Рассмотреть возможность дефрагментации: 'etcdctl defrag'. Проанализировать частоту обновлений данных и своевременность очистки истории изменений (ревизий) в etcd. |
EtcdSlowBackendCommit |
KeyStack - etcd |
etcd |
rate(etcd_disk_backend_commit_duration_seconds_bucket[5m]) |
Warning, если histogram_quantile(0.99) > 0.25 |
etcd |
Состояние сервиса etcd |
Размер базы данных etcd близок к установленному ограничению. |
При достижении ограничения произойдёт остановка всех операций записи в базу данных etcd. |
Внутри контейнера etcd выполнить дефрагментацию командой 'etcdctl defrag --cluster'. Выполнить операцию compaction до последней ревизии. Проанализировать возможность временного увеличения параметра '--quota-backend-bytes', после чего перезапустить кластер по очереди. Проанализировать причину аномального роста базы данных. |
EtcdDatabaseSize |
KeyStack - etcd |
etcd |
(etcd_mvcc_db_total_size_in_bytes / etcd_server_quota_backend_bytes) * 100 |
Warning, если > 75 Critical, если > 90 |
etcd |
Состояние сервиса etcd |
Большая доля базы данных etcd занята фрагментированным пространством после удалённых ревизий — compaction прошёл, но место не было возвращено. |
Повышенное потребление диска. При приближении к квоте etcd перейдёт в read-only режим раньше, чем реальный объём данных достигнет лимита. |
Выполнить дефрагментацию: 'etcdctl defrag --cluster'. Убедиться, что включён автоматический compaction ('--auto-compaction-retention'). Мониторить рост разрыва между total_size и in_use_size. |
EtcdDatabaseCompactionRequired |
KeyStack - etcd |
etcd |
(etcd_mvcc_db_total_size_in_bytes - etcd_mvcc_db_total_size_in_use_in_bytes) / etcd_mvcc_db_total_size_in_bytes * 100 |
Warning, если > 50 |
etcd |
Состояние сервиса etcd |
База данных etcd растёт аномально быстро. |
При достижении ограничения произойдёт остановка всех операций записи в базу данных etcd. |
Проверить, включён ли автоматический compaction ('--auto-compaction-retention'). Выявить клиентов с аномально высокой частотой записей проанализировав журналы etcd. Проверить наличие накопленных неудалённых ревизий, выполнив внутри контейнера etcd команду 'etcdctl endpoint status --cluster'. Выполнить операцию compaction и дефрагментацию при необходимости. |
EtcdHighDatabaseGrowthRate |
KeyStack - etcd |
etcd |
( deriv(etcd_mvcc_db_total_size_in_bytes[30m]) / etcd_mvcc_db_total_size_in_bytes ) * 3600 > 0.5 and etcd_mvcc_db_total_size_in_bytes |
Warning, если > 10 * 1024 * 1024 |
etcd |
Состояние сервиса etcd |
Процесс etcd потребляет значительную долю доступной памяти узла. |
Высокое потребление памяти может привести к OOM-kill процесса etcd или деградации производительности всего узла. |
Проанализировать размер базы данных etcd и выполнить дефрагментацию при необходимости. Проанализировать количество watcher-подписчиков клиентов (большое число подписчиков увеличивает потребление памяти). Проверить наличие утечек памяти в версии etcd. Рассмотреть добавление памяти на узел или перераспределение нагрузки. |
EtcdHighMemoryUsage |
KeyStack - etcd |
etcd |
process_resident_memory_bytes{job="etcd"} / node_memory_MemTotal_bytes * 100 |
Warning, если > 40 |
etcd |
Состояние сервиса etcd |
Высокий исходящий трафик к клиентам может указывать на большое число watcher-ов или крупные range-запросы. |
Возможна перегрузка сети узла. Возможна задержка ответов etcd. |
Проверить число активных watch-подписчиков. Проанализировать журналы etcd и выявить клиентов с аномально большим объёмом запросов. Рассмотреть добавление фильтров на стороне клиентов или разделение нагрузки. |
EtcdHighClientNetworkTraffic |
KeyStack - etcd |
etcd |
rate(etcd_network_client_grpc_sent_bytes_total[5m]) |
Warning, если > 50 * 1024 * 1024 |
etcd |
Состояние сервиса etcd |
Зафиксированы сбои Raft-предложений. |
Операции записи от клиентов etcd не применяются, данные не сохраняются. Возможны проблемы с кворумом, сетью или производительностью. |
Проверить состояние всех узлов кластера, выполнив внутри контейнера etcd команду 'etcdctl endpoint status --cluster'. Проверить наличие кворума. Проанализировать сетевые ошибки и задержки. Проанализировать журналы raft. |
EtcdHighProposalFailureRate |
KeyStack - etcd |
etcd |
increase(etcd_server_proposals_failed_total[5m]) |
Warning, если > 0 |
etcd |
Состояние сервиса etcd |
Множество ожидающих Raft-предложений. Большая очередь незавершённых предложений свидетельствует о перегрузке узла или проблемах с репликацией. |
Рост задержек при записи для клиентов etcd. |
Проанализировать загрузку CPU и диска. Проверить связность узлов. Проанализировать частоту записей от клиентов, при необходимости снизить нагрузку. |
EtcdHighPendingProposals |
KeyStack - etcd |
etcd |
etcd_server_proposals_pending |
Warning, если > 5 |
etcd |
Состояние сервиса etcd |
Большое число открытых файловых дескрипторов может свидетельствовать об утечке соединений или большом числе watcher-клиентов. |
При исчерпании файловых дескрипторов etcd не сможет принимать новые подключения. |
Проверить число клиентских подключений, выполнив в контейнере etcd команду 'etcdctl endpoint status --cluster'. Убедиться, что клиенты корректно закрывают соединения. Проанализировать возможность увеличить лимит файловых дескрипторов для процесса. Проанализировать открытые дескрипторы, например командой 'lsof -p <pid>'. |
EtcdHighFileDescriptorUsage |
KeyStack - etcd |
etcd |
process_open_fds{job="etcd"} / process_max_fds{job="etcd"} * 100 |
Warning, если > 80 |
etcd |
Состояние сервиса etcd |
Медленное создание снапшота базы данных etcd указывает на проблемы с производительностью диска или большой размер БД. |
Медленные снапшоты задерживают восстановление отставших пиров и увеличивают время рестарта члена кластера. |
Проанализировать I/O-утилизацию диска, например, с помощью команды 'iostat -x 1'. Проанализировать размер базы данных и выполнить дефрагментацию при необходимости. Проанализировать возможность переноса etcd на более быстрое хранилище (SSD/NVMe). Проверить наличие других процессов, конкурирующих за I/O. Рассмотреть выделение отдельного диска для etcd. |
EtcdSlowSnapshot |
KeyStack - etcd |
etcd |
rate(etcd_disk_backend_snapshot_duration_seconds_bucket{job="etcd"}[5m]) |
Warning, если histogram_quantile(0.99) > 30 |
Patroni |
Состояние сервиса Patroni |
Узел Patroni недоступен для сбора метрик. |
Prometheus не может собирать метрики с данного узла. Возможна недоступность сервиса PostgreSQL/Patroni. |
Убедиться в работоспособности контейнера patroni. Проверить журналы контейнера. |
PatroniDown |
KeyStack - Patroni |
patroni |
up{job="patroni"} |
Warning, если = 0 Critical, если sum = 0 |
Patroni |
Состояние сервиса Patroni |
В кластере Patroni отсутствует лидер. |
Запись в PostgreSQL невозможна. Кластер не обслуживает write-запросы. |
На управляющих хостах убедиться в работоспособности контейнера patroni. Проверить и проанализировать журналы контейнера. Проверить сетевую связность между управляющими узлами и корректность маршрутов. Проверить состояние и журналы etcd. Проверить состояние всех узлов кластера patronictl, выполнив в контейнере patroni команду 'patronictl -c /etc/patroni/patroni.yml list'. При необходимости выполнить ручное переключение, например, выполнив в контейнере patroni команду 'patronictl failover'. |
PatroniHasNoLeader |
KeyStack - Patroni |
patroni |
patroni_primary and patroni_standby_leader |
Critical, если (max by (scope) (patroni_primary) < 1) and (max by (scope) (patroni_standby_leader) < 1) |
Patroni |
Состояние сервиса Patroni |
Узел работает, но не выполняет ни одну из ожидаемых ролей кластера. |
Узел не обслуживает запросы. Снижена отказоустойчивость кластера. |
Проверить статус узла, выполнив в контейнере patroni команду 'patronictl -c /etc/patroni/patroni.yml list'. Проанализировать журналы Patroni и PostgreSQL. |
PatroniNodeNotRunning |
KeyStack - Patroni |
patroni |
patroni_primary patroni_replica patroni_standby_leader patroni_postgres_running |
Critical, если (patroni_primary == 0) and (patroni_replica == 0) and (patroni_standby_leader == 0) and (patroni_postgres_running == 1) |
Patroni |
Состояние сервиса Patroni |
На узле есть ожидающие применения изменения конфигурации PostgreSQL, требующие перезапуска. |
Изменения параметров PostgreSQL не вступят в силу до перезапуска. Возможна неконсистентность конфигурации узлов кластера. |
Запланировать перезапуск в окно обслуживания и выполнить перезапуск контейнера patroni или внутри контейнера выполнить команду 'patronictl restart <cluster> <member>'. Убедиться, что на кластере есть минимум одна живая реплика перед перезапуском primary. |
PatroniPendingRestart |
KeyStack - Patroni |
patroni |
patroni_pending_restart |
Warning, если = 1 |
Patroni |
Состояние сервиса Patroni |
Узлы кластера находятся на разных timeline PostgreSQL. |
Реплика на старом timeline не сможет применять WAL от нового primary. Возможно потребуется переинициализация. |
Проверить состояние кластера, выполнив в контейнере patroni команду 'patronictl -c /etc/patroni/patroni.yml list'. Определить отстающие реплики. При необходимости выполнить переинициализацию, выполнив внутри контейнера patroni команду 'patronictl reinit <cluster> <member>'. Алерт может появляться сразу после выполнения процедуры failover |
PatroniTimelineDiverged |
KeyStack - Patroni |
patroni |
patroni_postgres_timeline |
Warning, если (max by (scope) (patroni_postgres_timeline) - min by (scope) (patroni_postgres_timeline)) > 0 |
Patroni |
Состояние сервиса Patroni |
Репликация на узле критически отстаёт от первичного узла по репликации. |
Высокий риск потери транзакций при failover. Реплика может быть исключена из кластера. |
Проверить состояние, выполнив в контейнере patroni команду 'patronictl -c /etc/patroni/patroni.yml list'. Проверить доступность дискового пространства на реплике. Рассмотреть возможность переинициализации реплики, выполнив внутри контейнера patroni команду 'patronictl reinit <cluster> <member>'. Уведомить ответственных за сервис. |
PatroniReplicaLagHigh |
KeyStack - Patroni |
patroni |
patroni_xlog_location patroni_xlog_replayed_location |
Warning, если (max by (scope) (patroni_xlog_location > 0) - on(scope) group_right() (patroni_xlog_replayed_location and on(scope, instance, name) (patroni_replica == 1))) > 67108864 Critical, если (max by (scope) (patroni_xlog_location > 0) - on(scope) group_right() (patroni_xlog_replayed_location and on(scope, instance, name) (patroni_replica == 1))) > 268435456 |
Patroni |
Состояние сервиса Patroni |
Обнаружено более одного узла в роли primary (split-brain). |
Нарушена консистентность данных. Запись может происходить на нескольких узлах одновременно. |
Немедленно остановить запись на все узлы. Проверить состояние etcd. Внутри контейнера patroni выполнить команду 'patronictl -c /etc/patroni/patroni.yml list' для анализа ситуации. При необходимости вручную остановить один из primary, выполнив внутри контейнера patroni команду 'patronictl pause'. Далее проанализировать журналы для поиска причины. |
PatroniUnexpectedPrimaryCount |
KeyStack - Patroni |
patroni |
patroni_primary == 1 |
Critical, если count by (scope) > 1 |
Patroni |
Состояние сервиса Patroni |
Процесс PostgreSQL остановлен на узле Patroni. |
Узел не обслуживает запросы БД. Снижена отказоустойчивость кластера. |
Убедиться в работоспособности контейнера patroni. Проверить журналы контейнера. При необходимости перезапустить сервис, выполнив внутри контейнера patroni команду 'patronictl restart <cluster> <member>'. Проанализировать свободное дисковое пространство и права доступа к файлам данных. |
PatroniPostgresNotRunning |
KeyStack - Patroni |
patroni |
patroni_postgres_running |
Critical, если = 0 |
Patroni |
Состояние сервиса Patroni |
Узел Patroni потерял связь с системой распределённой конфигурации (etcd). |
Patroni перейдёт в режим read-only. Автоматическое переключение лидера невозможно. |
Убедиться в работоспособности контейнера etcd. Проверить журналы контейнера etcd. Проверить сетевую доступность между etcd и Patroni. Проверить журналы Patroni. Проверить конфигурацию подключения к etcd в patroni.yml. |
PatroniDcsUnhealthy |
KeyStack - Patroni |
patroni |
patroni_dcs_last_seen |
Critical, если time() - patroni_dcs_last_seen > 60 |
Patroni |
Состояние сервиса Patroni |
PostgreSQL на узле завершился аварийно или не смог запуститься. |
Узел не обслуживает запросы. Возможен автоматический failover с потерей данных. |
Проверить состояние кластера, выполнив внутри контейнера patroni команду 'patronictl -c /etc/patroni/patroni.yml list'. Проанализировать журналы patroni. Проверить дисковое пространство. При необходимости попытаться переинициализировать узел, выполнив внутри контейнера patroni команду 'patronictl reinit <cluster> <member> --force' |
PatroniPostgresCrashedOrFailed |
KeyStack - Patroni |
patroni |
patroni_postgres_state |
Critical, если >= 8 and != 9 and != 11 and != 12 |
Patroni |
Состояние сервиса Patroni |
Число активных членов кластера Patroni меньше ожидаемого. |
Снижена отказоустойчивость кластера. Возможно, один из узлов не выполняет репликацию. |
Проверить состояние кластера, выполнив внутри контейнера patroni команду 'patronictl -c /etc/patroni/patroni.yml list'. Проверить журналы проблемного узла. Проверить связность с etcd. |
PatroniClusterSizeMismatch |
KeyStack - Patroni |
patroni |
patroni_postgres_running |
Warning, если count by (scope) (patroni_postgres_running == 1) < on(scope) group_left() count by (scope) (patroni_postgres_running >= 0) |
Patroni |
Состояние сервиса Patroni |
В etcd отсутствует лидерный ключ кластера Patroni. |
Кластер находится в процессе выбора лидера или не может записать ключ в etcd. Write-запросы могут быть недоступны. |
Убедиться в работоспособности контейнера etcd. Проверить журналы контейнера etcd. Проверить журналы Patroni на всех узлах. Проверить результат выборов, выполнив внутри контейнера patroni команду 'patronictl -c /etc/patroni/patroni.yml list'. |
PatroniClusterUnlocked |
KeyStack - Patroni |
patroni |
patroni_cluster_unlocked == 1 |
Critical, если max by (scope) выполняется |
Patroni |
Состояние сервиса Patroni |
Воспроизведение WAL на реплике приостановлено. |
Реплика накапливает отставание от primary. Данные на реплике устаревают. |
Проверить легитимность нахождения узла в статусе pause. При необходимости возобновить воспроизведение выполнив на реплике команду 'SELECT pg_wal_replay_resume();'. Проверить журналы Patroni/PostgreSQL на реплике. |
PatroniReplicaReplayPaused |
KeyStack - Patroni |
patroni |
patroni_xlog_paused |
Warning, если = 1 |
Виртуальные машины¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
VM |
Соответствие MTU для ВМ и MTU на узле |
Размер сообщения пересылки по сети для ВМ не совпадает с установленным размером сообщения на интерфейсе узла |
Может снижаться скорость передачи данных по сети Может влиять на сетевую доступность узла или ВМ |
Проанализировать и проверить настройки сетевого интерфейса ВМ, интерфейса узла. Привести настройки к рекомендованным значениям. |
MTU mismatch |
KeyStack - System |
node_exporter |
node_network_mtu_bytes{device="mgmt"} - node_network_mtu_bytes{device=~"(tap.*)"} |
Warning, если разница между значением MTU узла и значением MTU ВМ < 0 |
VM |
Изменение AZ для ВМ |
Произведена миграция ВМ в другую AZ |
Может влиять на размещение и миграцию ВМ. |
Проанализировать статус ВМ и гипервизоров. Проанализировать журналы действий над ВМ. При необходимости вернуть ВМ в нужную AZ. |
VMchangeAZ |
KeyStack - System |
Warning, если произошла смена AZ |
||
VM |
Проверка CPU Steal time |
ВМ долго ждут исполнения на процессоре |
Замедление работы ВМ, потенциальный отказ от обслуживания |
С помощью 'htop' или 'top' выявить наиболее активных потребителей процессорного времени. Проанализировать исторические данные по нагрузке на процессор. Проверить, что режим работы центрального процессора установлен на 'performance'. Проанализировать данные по потреблению процессорных ресурсов виртуальными машинами. |
Host with High VM CPU Steal time |
KeyStack - System |
libvirt_exporter |
libvirt_domain_vcpu_delay_seconds_total * 100 |
Warning, если значение cpu steal time для ВМ > 5% |
VM |
Статус ВМ |
ВМ длительное время не меняет свой статус |
Замедление работы ВМ, потенциальный отказ от обслуживания |
Проверить размер ВМ — для ВМ с большим количеством выделенных ресурсов длительная смена статуса 'Migrationg', 'Resize' или 'Rebuild' может быть нормальным поведением. Проверить работу сервиса RabbitMQ: состояние и журналы сервиса, состояние и журналы контейнера, очереди. Проверить состояние и журналы контейнеров nova_* на гипервизоре-источнике и приёмнике. |
VMStatusChangeTooLong |
KeyStack - System |
openstack_exporter |
openstack_nova_server_status |
Warning, если статус =~ "MIGRATING|RESIZE|REBUILD" более 2х минут |
VM |
Дубликат IPv4 на ВМ |
В регионе обнаружено несколько виртуальных машин с одинаковым IP адресом |
Нарушение сетевого взаимодействия виртуальных машин с одинаковыми IP адресами и остальным сетевым окружением, в случае нахождения таких ВМ в одной сети или в случае настроенной маршрутизации между сетями, где размещаются такие ВМ |
Выявить виртуальные машины с одинаковыми IP адресами. Проверить находятся ли они в одной сети. Проверить настроена ли маршрутизация между сетями, где размещаются ВМ с совпадающими IP адресами. В случае нахождения ВМ с одинаковыми IP адресами в одной сети для каждой затронутой ВМ установить уникальный IP адрес. В случае нахождения ВМ с одинаковыми IP адресами в разных сетях и настроенной маршрутизации между этими сетями для каждой затронутой ВМ установить уникальный IP адрес. |
VmDuplicateIPAddressDetected |
KeyStack - System |
openstack_exporter |
openstack_nova_server_net_info |
Warning, если count by (addr) > 1 |
VM |
Аварийное завершение QEMU-процесса |
В лог-файлах зафиксированы записи о нештатной остановке ВМ |
Влияет на доступность ВМ |
Проанализировать статус ВМ и гипервизора. Проанализировать журналы действий над ВМ. Проанализировать журналы узла и сервиса nova. |
VMunexpectedShutdown |
KeyStack - System |
fluentd exporter |
fluentd_input_VM_unexpected_shutdown_records_total |
Warning, если в логах фиксируются новые записи |
Мониторинг¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
Prometheus |
Не удалось обновить конфигурацию Prometheus |
Файл Prometheus конфигурации содержит ошибки |
Влияет на доступность мониторинга |
Зайти на узел, проверить журнал prometheus контейнера, исправить ошибки в конфигурации. |
PrometheusConfigurationReloadFailure |
Keystack - Prometheus |
prometheus_exporter |
prometheus_config_last_reload_successful |
Warning, если != 1 |
Prometheus |
Количество перезапусков prometheus превышает норму |
Сервисы prometheus часто перезапускаются |
Влияет на доступность мониторинга |
Зайти на узел, проверить журнал prometheus контейнера, исправить ошибки в конфигурации. |
PrometheusTooManyRestarts |
Keystack - Prometheus |
prometheus_exporter |
changes(process_start_time_seconds{job=~"prometheus|pushgateway|alertmanager"}[15m]) |
Warning, если за 15 мин кол-во изменений времени старта процесса > 2 |
Prometheus |
Задача AlertManager не найдена |
Задача AlertManager отсутствует |
Влияет на отправку уведомлений о наступлении событий |
Зайти на узел, проверить журнал alertmanager контейнера, исправить ошибки в конфигурации. |
PrometheusAlertmanagerJobMissing |
Keystack - Prometheus |
prometheus_exporter |
absent(up{job="alertmanager"}) |
Warning, если условие выполняется |
Prometheus |
Не удалось обновить конфигурацию AlertManager |
Файл конфигурации AlertManager содержит ошибки |
Влияет на отправку уведомлений о наступлении событий |
Зайти на узел, проверить журнал alertmanager контейнера, исправить ошибки в конфигурации. |
PrometheusAlertmanagerConfigurationReloadFailure |
Keystack - Prometheus |
prometheus_exporter |
alertmanager_config_last_reload_successful |
Warning, если != 1 |
Prometheus |
Конфигурация Alertmanager не синхронизирована между всеми узлами кластера |
Конфигурация Alertmanager не синхронизирована между всеми узлами кластера |
Влияет на отправку уведомлений о наступлении событий |
Проверить журналы контейнеров alertmanager на управляющих узлах. |
PrometheusAlertmanagerConfigNotSynced |
Keystack - Prometheus |
prometheus_exporter |
count(count_values("config_hash", alertmanager_config_hash)) |
Warning, если > 1 |
Prometheus |
Подключение Prometheus к Alertmanager |
Prometheus не смог подключиться к Alertmanager |
Влияет на отправку уведомлений о наступлении событий |
Зайти на узел, проверить журнал alertmanager и prometheus контейнеров, исправить ошибки в конфигурации. |
PrometheusNotConnectedToAlertmanager |
Keystack - Prometheus |
prometheus_exporter |
prometheus_notifications_alertmanagers_discovered |
Critical, если < 1 |
Prometheus |
Состояние правил Prometheus |
Prometheus не смог обработать правило алерта |
Влияет на обработку правил алертов и отправку уведомлений по ним |
Проверить статус Health для правил алертов. Проанализировать сообщение об ошибке для правила алерта, при его наличии. Зайти на узел, проверить журнал prometheus контейнера. Исправить запрос в правиле алерта. Исправить ошибки в конфигурации. |
PrometheusRuleEvaluationFailures |
Keystack - Prometheus |
prometheus_exporter |
increase(prometheus_rule_evaluation_failures_total[3m]) |
Critical, если > 0 |
Prometheus |
Состояние службы уведомлений |
AlertManager не смог отправить уведомление о событии |
Влияет на отправку уведомлений о наступлении событий |
Зайти на узел, проверить журнал alertmanager контейнера, исправить ошибки в конфигурации. |
PrometheusAlertmanagerNotificationFailing |
Keystack - Prometheus |
prometheus_exporter |
rate(alertmanager_notifications_failed_total[1m]) |
Critical, если > 0 |
Prometheus |
Отсутствуют таргеты Prometheus |
Конфигурация Prometheus не содержит таргетов |
Влияет на работу мониторинга |
Проверить конфигурацию prometheus, проверить журналы настройки узлов. |
PrometheusTargetEmpty |
Keystack - Prometheus |
prometheus_exporter |
prometheus_sd_discovered_targets |
Critical, если = 0 |
Prometheus |
Скорость скрейпинга |
Скрейпинг таргетов Prometheus замедлился |
Влияет на работу мониторинга |
Зайти на узел, проверить доступность ресурсов и давление на память, проверить загруженность сетевых интерфейсов. |
PrometheusTargetScrapingSlow |
Keystack - Prometheus |
prometheus_exporter |
prometheus_target_interval_length_seconds |
Warning, если отношение 90% перцентиля к 50% перцентилю > 1.05 |
Prometheus |
Состояние скрейпинга |
Скрейпинг занимает больше времени чем установленный лимит по времени |
Влияет на доступность мониторинга |
Сменить лимит по времени и пересмотреть конфигурацию скрейпа. |
PrometheusLargeScrape |
Keystack - Prometheus |
prometheus_exporter |
increase(prometheus_target_scrapes_exceeded_sample_limit_total[10m]) |
Warning, если > 10 |
Prometheus |
Состояние скрейпинга |
Скрейпинг таргета Prometheus предоставил одинаковые значения для разного времени |
Влияет на актуальность данных мониторинга |
Зайти на узел и проверить актуальность данных сервиса который передает не корректные данные. |
PrometheusTargetScrapeDuplicate |
Keystack - Prometheus |
prometheus_exporter |
increase(prometheus_target_scrapes_sample_duplicate_timestamp_total[5m]) |
Warning, если > 0 |
Prometheus |
Состояние openstack exporter |
Неработоспособность экспортёра и невозможность отдавать метрики, или недоступность узла, или сбой балансировщика, или сбой в сети |
Отсутствие мониторинга и сбора метрик компонентов OpenStack |
Убедиться в работоспособности контейнеров prometheus_openstack_exporter. Проверить журналы контейнеров. Убедиться в работоспособности балансировщика. |
OpenstackExporterDown |
Keystack - Prometheus |
openstack_exporter |
avg_over_time(max by (instance) (up{job="openstack_exporter"})[5m:30s]) |
Critical, если < 0.85 |
Prometheus |
Состояние blackbox exporter |
Экземпляр blackbox exporter на узле не доступен, выключен или неисправен |
Отсутствие мониторинга доступности nova-api с узлов |
Проверить сетевую связность между управляющими узлами и узлом с экземпляром blackbox exporter. Проверить корректность маршрутов. Проверить статус контейнера prometheus_blackbox_exporter, проверить журналы контейнера. Проверить разрешение DNS имён на узле с экземпляром prometheus_blackbox_exporter. |
BlackboxExporterDown |
Keystack - Prometheus |
blackbox exporter |
up{job="blackbox_exporter_blackhole_check"} |
Warning, если group by(source) = 0 |
Оборудование¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
Redfish |
Состояние серверного аппаратного обеспечения |
Неработоспособность экспортёра и невозможность отдавать метрики или недоступность узла, или сбой по сети |
Отсутствие мониторинга и сбора метрик BMC |
Убедиться в работоспособности контейнера redfish. Проверить журналы контейнера. Проверить сетевую связность между управляющими узлами и адресами BMC-интерфейсов, а также корректность маршрутов. |
BMC_RedfishExporterTargetsOutage |
KeyStack - Redfish |
redfish_exporter |
up{job="redfish_exporter"} |
Critical, если max(avg_over_time(max by (bmc_address)) < 0.85 |
Redfish |
Состояние серверного аппаратного обеспечения |
Неработоспособность экспортёра и невозможность отдавать метрики или недоступность узла, или сбой по сети |
Отсутствие мониторинга и сбора метрик BMC |
Убедиться в работоспособности контейнера redfish. Проверить журналы контейнера. Убедиться в корректности разрешения DNS-имён для адреса BMC-интерфейса. Проверить сетевую связность между управляющими узлами и адресом BMC-интерфейса, а также корректность маршрутов. |
BMC_RedfishExporterTargetDown |
KeyStack - Redfish |
redfish_exporter |
up{job="redfish_exporter"} |
Warning, если avg_over_time(max by (bmc_address) < 0.85 |
Redfish |
Состояние серверного аппаратного обеспечения |
Сервер выключен |
Недоступность гипервизора или управляющей ноды |
Проверить легитимность нахождения сервера в выключенном состоянии. Проверить состояние аппаратной части сервера. Проверить температурные показатели сервера. |
BMC_Power_Off |
KeyStack - Redfish |
redfish_exporter |
group by (bmc_address, hostname) (last_over_time(redfish_system_power_on[5m:]) |
Critical, если !=1 |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера выявлено, что имеются предупреждения или ошибки на всех блоках питания сервера |
Высокая вероятность недоступности гипервизора или управляющей ноды |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить настройки BMC сервера, связанные с электропитанием. Проверить наличие поступающего напряжения сетевого питания. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_Power_Supply_Health_Outage |
KeyStack - Redfish |
redfish_exporter |
count by (bmc_address, hostname) (group by (bmc_address, hostname, id) (last_over_time(redfish_power_supply_health[5m:]))) - count by (bmc_address, hostname) (group by (bmc_address, hostname, id) (last_over_time(redfish_power_supply_health[5m:]) != 0)) |
Critical, если == 0 |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера выявлена критическая ошибка в работе блока питания |
Возможна внезапная недоступность гипервизора или управляющей ноды |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить настройки BMC сервера, связанные с сетевым питанием. Проверить подачу напряжения на блок питания. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. |
BMC_Power_Supply_Health_Critical |
KeyStack - Redfish |
redfish_exporter |
redfish_power_supply_health |
Critical, если == 2 |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера выявлены предупреждения в работе блока питания |
Возможна недоступность гипервизора или управляющей ноды |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить настройки BMC сервера, связанные с сетевым питанием. Проверить температурные показатели сервера. Проверить наличие поступающего напряжения сетевого питания. Провести диагностику аппаратной части сервера. |
BMC_Power_Supply_Health_Warning |
KeyStack - Redfish |
redfish_exporter |
redfish_power_supply_health |
Warning, если == 1 |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера зафиксирована критическая ошибка |
Уменьшение производительности сервера Вероятность выхода из строя компонентов аппаратной части сервера Вероятность недоступности гипервизора или управляющей ноды |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. |
BMC_System_Health_Critical |
KeyStack - Redfish |
redfish_exporter |
redfish_system_health |
Critical, если == 2 |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера обнаружено предупреждение |
Уменьшение производительности сервера Вероятность выхода из строя компонентов аппаратной части сервера Вероятность недоступности гипервизора или управляющей ноды |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. |
BMC_System_Health_Warning |
KeyStack - Redfish |
redfish_exporter |
redfish_system_health |
Critical, если == 1 |
Redfish |
Состояние серверного аппаратного обеспечения |
Зафиксировано изменение количества доступных CPU серверу |
Уменьшение производительности сервера Возможна недоступность гипервизора или управляющей ноды |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_CPU_Count |
KeyStack - Redfish |
redfish_exporter |
redfish_system_cpu_count |
Critical, если unless redfish_system_cpu_count offset 5m |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера выявлены предупреждения или критические ошибки во всех модулях ОЗУ |
Высокая вероятность недоступности сервера Вероятность повреждения данных |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_Memory_Module_Health_Outage |
KeyStack - Redfish |
redfish_exporter |
count by (bmc_address, hostname) (group by (bmc_address, hostname, id) (last_over_time(redfish_memory_module_health[5m:]))) - count by (bmc_address, hostname) (group by (bmc_address, hostname, id) (last_over_time(redfish_memory_module_health[5m:]) != 0)) |
Critical, если == 0 |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера выявлены критические ошибки в работе модуля ОЗУ |
Снижение производительности сервера Возможно уменьшение доступного объёма ОЗУ Высокая вероятность повреждения данных |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_Memory_Module_Health_Critical |
KeyStack - Redfish |
redfish_exporter |
redfish_memory_module_health |
Critical, если == 2 |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера выявлены ошибки в работе модуля ОЗУ |
Снижение производительности сервера Возможно уменьшение доступного объёма ОЗУ Вероятность повреждения данных |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_Memory_Module_Health_Warning |
KeyStack - Redfish |
redfish_exporter |
redfish_memory_module_health |
Warning, если == 1 |
Redfish |
Состояние серверного аппаратного обеспечения |
Сетевой порт интерфейса перестал быть активным |
Недоступность сервера через сетевой интерфейс Возможно уменьшение пропускной способности или потеря отказоустойчивости агрегированного сетевого интерфейса |
Проверить статус сетевых интерфейсов. Проанализировать журналы на узле на предмет ручного отключения сетевого интерфейса. Проверить настройки соответствующего порта на сетевом коммутаторе. Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Провести диагностику аппаратной части сервера. |
BMC_Network_Port_Link_Up |
KeyStack - Redfish |
redfish_exporter |
redfish_network_port_link_up |
Warning, если == 0 |
Redfish |
Состояние серверного аппаратного обеспечения |
Системой самопроверки аппаратной части сервера зафиксирована критическая ошибка в работе носителя данных |
Вероятность повреждения или потери данных Вероятность уменьшения производительности сервера |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_Drive_Health_Critical |
KeyStack - Redfish |
redfish_exporter |
redfish_drive_health |
Critical, если == 2 |
Redfish |
Состояние серверного аппаратного обеспечения |
Системой самопроверки аппаратной части сервера зафиксировано предупреждение в работе носителя данных |
Вероятность повреждения или потери данных |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить температурные показатели сервера. Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_Drive_Health_Warning |
KeyStack - Redfish |
redfish_exporter |
redfish_drive_health |
Warning, если == 1 |
Redfish |
Состояние серверного аппаратного обеспечения |
Самопроверкой аппаратной части сервера выявлены предупреждения или критические ошибки во всех компонентах системы охлаждения сервера |
Повышение температуры аппаратной части сервера Уменьшение производительности сервера Вероятность повреждения компонентов аппаратной части сервера Недоступность гипервизора или управляющей ноды Высокая вероятность повреждения данных |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить настройки BMC сервера, связанные с системой охлаждения сервера (вентиляторов). Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_Sensors_Fan_Health_Outage |
KeyStack - Redfish |
redfish_exporter |
count by (bmc_address, hostname) (group by (bmc_address, hostname, id) (last_over_time(redfish_sensors_fan_health[5m:]))) - count by (bmc_address, hostname) (group by (bmc_address, hostname, id) (last_over_time(redfish_sensors_fan_health[5m:]) != 0)) |
Critical, если == 0 |
Redfish |
Состояние серверного аппаратного обеспечения |
Системой самопроверки аппаратной части сервера зафиксирована критическая ошибка в работе системы охлаждения сервера |
Повышение температуры аппаратной части сервера Уменьшение производительности сервера Вероятность повреждения компонентов аппаратной части сервера Недоступность гипервизора или управляющей ноды |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить настройки BMC сервера, связанные с системой охлаждения сервера (вентиляторов). Провести диагностику аппаратной части сервера. При необходимости перевести узел в режим обслуживания (maintenance mode) для последующего ремонта. |
BMC_Sensors_Fan_Health_Critical |
KeyStack - Redfish |
redfish_exporter |
redfish_sensors_fan_health |
Critical, если == 2 |
Redfish |
Состояние серверного аппаратного обеспечения |
Системой самопроверки аппаратной части сервера зафиксировано предупреждение в работе системы охлаждения сервера |
Повышение температуры аппаратной части сервера Уменьшение производительности сервера Вероятность повреждения компонентов аппаратной части сервера Недоступность гипервизора или управляющей ноды |
Проанализировать журналы BMC сервера на наличие ошибок или предупреждений. Проверить настройки BMC сервера, связанные с системой охлаждения сервера (вентиляторов). Провести диагностику аппаратной части сервера. |
BMC_Sensors_Fan_Health_Warning |
KeyStack - Redfish |
redfish_exporter |
redfish_sensors_fan_health |
Warning, если == 1 |
SMART |
Состояние дисковых накопителей на основе параметров S.M.A.R.T |
Неработоспособность экспортёра и невозможность отдавать метрики или недоступность узла, или сбой по сети |
Отсутствие мониторинга и сбора метрик состояния дисковых накопителей |
Убедиться в работоспособности контейнера smartctl. Проверить журналы контейнера. |
SmartctlExporterTargetDown |
KeyStack - SMART |
smartctl exporter |
up{job="smartctl_exporter"} |
Warning, если == 0 |
SMART |
Состояние NVMe накопителей на основе параметров S.M.A.R.T |
Зафиксированы критические ошибки в работе накопителя |
Вероятность отказа накопителя и потери данных |
Зайти на узел и проанализировать состояние устройства. При необходимости произвести замену устройства. |
DeviceCriticalWarning |
KeyStack - SMART |
smartctl exporter |
smartctl_device_critical_warning |
Critical, если > 0 |
SMART |
Состояние NVMe накопителей на основе параметров S.M.A.R.T |
Значение доступной резервной ёмкости ниже порогового значения |
Невозможность подмены вышедших из строя ячеек памяти |
Зайти на узел и проанализировать состояние устройства. При необходимости произвести замену устройства. |
DeviceAvailableSpare |
KeyStack - SMART |
smartctl exporter |
smartctl_device_available_spare |
Warning, если < 20 Critical, если < smartctl_device_available_spare_threshold |
SMART |
Состояние NVMe накопителей на основе параметров S.M.A.R.T |
Высокий уровень износа накопителя |
Вероятность перехода накопителя в режим для чтения Вероятность отказа накопителя и потери данных |
Зайти на узел и проанализировать состояние устройства. При необходимости произвести замену устройства. |
DevicePercentageUsed |
KeyStack - SMART |
smartctl exporter |
smartctl_device_percentage_used |
Warning, если > 90 Critical, если > 95 |
SMART |
Состояние NVMe накопителей на основе параметров S.M.A.R.T |
Высокая температура накопителя |
Вероятность отказа накопителя и потери данных |
Зайти на узел и проанализировать состояние устройства. При необходимости произвести замену устройства. |
DeviceHighTemperature |
KeyStack - SMART |
smartctl exporter |
smartctl_device_temperature{temperature_type="current"} |
Warning, если > 60 Critical, если > 75 |
SMART |
Состояние NVMe накопителей на основе параметров S.M.A.R.T |
Обнаружена неустранимая ошибка целостности данных |
Вероятность отказа накопителя и потери данных |
Зайти на узел и проанализировать состояние устройства. При постоянном росте значения произвести замену устройства. |
DeviceMediaErrors |
KeyStack - SMART |
smartctl exporter |
increase(smartctl_device_media_errors[5m]) |
Warning, если > 0 |
SMART |
Состояние NVMe накопителей на основе параметров S.M.A.R.T |
С некоторых накопителей не были получены данные SMART |
Отсутствие мониторинга и сбора метрик состояния дисковых накопителей |
Зайти на узел и проанализировать перечень и тип установленных накопителей. Проанализировать конфигурацию smartctl-экспортёра. Проанализировать журналы контейнера smartctl. При необходимости внести изменения в команду запуска smartctl-экспортёра. |
SmartctlExporterConfigWarning |
KeyStack - SMART |
smartctl exporter |
smartctl_device |
Info, если count(smartctl_device) < scalar(smartctl_devices) |
Сеть¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
Multipath |
Состояние multipath устройств |
На узле обнаружены недоступные multipath-устройства |
Может влиять на доступность и целостность дисков ВМ Может влиять на доступность ВМ Может влиять на работоспособность gitlab pipelines |
Определить принадлежность multipath-устройства к ВМ. Проанализировать статус ВМ и гипервизора. Проанализировать журналы действий над ВМ. Проанализировать журнал dmesg на узле. Проверить отсутствие ошибок аппаратного обеспечения на узле: HBA-адаптера, статус FC-линков, наличие ошибок в передаче фреймов. Проверить настройки порта и зон на FC-коммутаторе. Провести диагностику состояния СХД. |
DeadMultipathDeviceDetected |
KeyStack - Multipath |
multipath exporter |
multipathd_info{vend="##",prod="##"} |
Warning, если в течение 5 мин наблюдаются устройства с vend="##" и prod="##" |
Multipath |
Состояние multipath путей |
У multipath-устройства зафиксированы переходы путей в статус 'сбойный' |
Может влиять на доступность и целостность дисков ВМ Может влиять на доступность ВМ |
Проанализировать журнал dmesg на узле. Проверить отсутствие ошибок аппаратного обеспечения на узле: HBA-адаптера, статус FC-линков, наличие ошибок в передаче фреймов. Проверить настройки порта и зон на FC-коммутаторе. Провести диагностику состояния СХД. |
DMPathFaultsDetected |
KeyStack - Multipath |
multipath exporter |
multipath_errors_total |
Warning, если > 0 |
Multipath |
Состояние multipath путей |
У multipath-устройства не обнаружено ни одного рабочего пути |
Может влиять на доступность и целостность дисков ВМ Может влиять на доступность ВМ |
Проанализировать журнал dmesg на узле. Проверить отсутствие ошибок аппаратного обеспечения на узле: HBA-адаптера, статус FC-линков, наличие ошибок в передаче фреймов. Проверить настройки порта и зон на FC-коммутаторе. Провести диагностику состояния СХД. |
DMPathOutage |
KeyStack - Multipath |
multipath exporter |
multipath_status{paths="0"} |
Critical, если в течение 5 мин условие выполняется |
Multipath |
Состояние multipath путей |
У multipath-устройства обнаружены сбойные пути |
Может влиять на доступность и целостность дисков ВМ Может влиять на доступность ВМ |
Проанализировать журнал dmesg на узле. Проверить отсутствие ошибок аппаратного обеспечения на узле: HBA-адаптера, статус FC-линков, наличие ошибок в передаче фреймов. Проверить настройки порта и зон на FC-коммутаторе. Провести диагностику состояния СХД. |
DMPathFaulure |
KeyStack - Multipath |
multipath exporter |
multipath_path_status == 0 |
Warning, если в течение 5 мин условие выполняется |
OVS |
Ошибки на OVS-интерфейсах |
Часть получаемых сетевых пакетов на tap-интерфейсах были отброшены |
Может влиять на трафик виртуальных машин |
Проверить утилизацию гипервизора. Проанализировать журналы гипервизора. |
OvsRxPacketsDroppedTooHigh |
KeyStack - OVS |
ovs_exporter |
rate(ovs_interface_rx_dropped{name=~"tap.+"}[2m]) |
Warning, если > 120 |
OVS |
Ошибки на OVS-интерфейсах |
Часть отправляемых сетевых пакетов на tap-интерфейсах были отброшены |
Может влиять на трафик виртуальных машин |
Проверить утилизацию гипервизора. Проанализировать журналы гипервизора. |
OvsTxPacketsDroppedTooHigh |
KeyStack - OVS |
ovs_exporter |
rate(ovs_interface_tx_dropped{name=~"tap.+"}[2m]) |
Warning, если > 200 |
OVS |
Ошибки на OVS-интерфейсах |
Зафиксированы ошибки в сетевых пакетах во входящем трафике на tap-интерфейсах |
Может влиять на трафик виртуальных машин |
Проверить утилизацию гипервизора. Проанализировать журналы гипервизора. |
OvsRxPacketsErrorTooHigh |
KeyStack - OVS |
ovs_exporter |
rate(ovs_interface_rx_errors{name=~"tap.+"}[2m]) |
Warning, если > 0 |
OVS |
Ошибки на OVS-интерфейсах |
Зафиксированы ошибки в сетевых пакетах в исходящем трафике на tap-интерфейсах |
Может влиять на трафик виртуальных машин |
Проверить утилизацию гипервизора. Проанализировать журналы гипервизора. |
OvsTxPacketsErrorTooHigh |
KeyStack - OVS |
ovs_exporter |
rate(ovs_interface_tx_errors{name=~"tap.+"}[2m]) |
Warning, если > 0 |
OVS |
Ошибки на OVS-интерфейсах |
Зафиксированы ошибки фреймов в сетевых пакетах во входящем трафике на tap-интерфейсах |
Может влиять на трафик виртуальных машин |
Проверить утилизацию гипервизора. Проанализировать журналы гипервизора. |
OvsRxFrameErrorTooHigh |
KeyStack - OVS |
ovs_exporter |
rate(ovs_interface_rx_frame_err{name=~"tap.+"}[2m]) |
Warning, если > 0 |
OVS |
Ошибки на OVS-интерфейсах |
Зафиксированы CRC-ошибки в сетевых пакетах во входящем трафике на tap-интерфейсах |
Может влиять на трафик виртуальных машин |
Проверить утилизацию гипервизора. Проанализировать журналы гипервизора. |
OvsRxCRCErrorTooHigh |
KeyStack - OVS |
ovs_exporter |
rate(ovs_interface_rx_crc_err{name=~"tap.+"}[2m]) |
Warning, если > 0 |
OVS |
Ошибки на OVS-интерфейсах |
Зафиксированы пропущенные сетевые пакеты во входящем трафике на tap-интерфейсах |
Может влиять на трафик виртуальных машин |
Проверить утилизацию гипервизора. Проанализировать журналы гипервизора. |
OvsRxMissedErrorTooHigh |
KeyStack - OVS |
ovs_exporter |
rate(ovs_interface_rx_missed_errors{name=~"tap.+"}[2m]) |
Warning, если > 0 |
OVS |
Ошибки на OVS-интерфейсах |
Зафиксированы сетевые пакеты с RX overrun во входящем трафике на tap-интерфейсах |
Может влиять на трафик виртуальных машин |
Проверить утилизацию гипервизора. Проанализировать журналы гипервизора. |
OvsRxOverrunErrorTooHigh |
KeyStack - OVS |
ovs_exporter |
rate(ovs_interface_rx_over_err{name=~"tap.+"}[2m]) |
Warning, если > 0 |
Bird |
Состояние сервиса bird |
Нарушение пиринга с удалённым маршрутизатором |
Работоспособность и доступность облака в целом |
Проанализировать журналы сервиса bird и его docker-контейнера. С помощью утилиты birdc проанализировать список BGP-соседей и состояние BGP-сессий. |
BirdProtocolDown |
KeyStack - Bird |
bird exporter |
bird_protocol_up{name=~"uplink.?", proto="BGP"} |
Critical, если sum by (proto,ip_version) = 0 |
Bird |
Состояние сервиса bird |
Нарушение пиринга с удалённым маршрутизатором |
Работоспособность и доступность облака в целом |
Проанализировать журналы сервиса bird и его docker-контейнера. С помощью утилиты birdc проанализировать список BGP-соседей и состояние BGP-сессий. |
BirdProtocolDown |
KeyStack - Bird |
bird exporter |
bird_protocol_up{name=~"uplink.?", proto="BGP"} |
Warning, если != 1 |
Bird |
Состояние сервиса bird |
Сервис bird не отправляет к аплинку все требуемые маршруты на более чем одном узле |
Работоспособность облака в целом |
Проанализировать журналы сервиса bird и его docker-контейнеров. Проанализировать журналы сервиса exabgp и его docker-контейнеров. |
BirdNoRoutesToUplink |
KeyStack - Bird |
bird exporter |
(bird_protocol_prefix_export_count{name=~"uplink.?",proto="BGP"} - on(instance) group_left (proto) bird_protocol_prefix_import_count{name="exabgp",proto="BGP"} < 0)) |
Critical, если count by (instance,proto,ip_version) > 1 |
Bird |
Состояние сервиса bird |
Сервис bird не отправляет к аплинку все требуемые маршруты |
Работоспособность облака в целом |
Проанализировать журналы сервиса bird и его docker-контейнера. Проанализировать журналы сервиса exabgp и его docker-контейнера. |
BirdNoRoutesToUplink |
KeyStack - Bird |
bird exporter |
bird_protocol_prefix_export_count{name=~"uplink.?",proto="BGP"} - on(instance) group_left (proto) bird_protocol_prefix_import_count{name="exabgp",proto="BGP"} |
Warning, если < 0 |
Bird |
Невозможность подключения к сокету сервиса bird |
Неработоспособность экспортёра или сервиса bird |
Отсутствие возможности мониторинга и сбора метрик сервиса bird |
Убедиться в работоспособности контейнера bird_exporter. Проверить журналы контейнера. Проанализировать журналы сервиса bird и его docker-контейнера. |
BirdSocketQueryNotSuccess |
KeyStack - Bird |
bird exporter |
bird_socket_query_success |
Critical, если sum = 0 |
Bird |
Невозможность подключения к сокету сервиса bird |
Неработоспособность экспортёра или сервиса bird |
Отсутствие возможности мониторинга и сбора метрик сервиса bird |
Убедиться в работоспособности контейнера bird_exporter. Проверить журналы контейнера. Проанализировать журналы сервиса bird и его docker-контейнера. |
BirdSocketQueryNotSuccess |
KeyStack - Bird |
bird exporter |
bird_socket_query_success |
Warning, если = 0 |
Контейнеры¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
Docker |
Завершенный процесс контейнера |
docker-контейнер был остановлен |
Отказоустойчивость облака или доступность сервисов может быть нарушена |
Зайти на узел и посмотреть статусы docker-контейнеров, какие были недавно перезапущены, посмотреть их журналы. |
ContainerKilled |
KeyStack - Docker |
cadvisor exporter |
container_last_seen |
Warning, если разница между текущим временем и значением метрики > 120 сек |
Temporal¶
Компонент |
Что проверяется |
Что означает алерт |
На что влияет |
Необходимые действия |
Имя алерта |
Группа алерта |
Экспортёр |
Метрика |
Порог алерта |
|---|---|---|---|---|---|---|---|---|---|
Temporal |
Состояние сервисов Temporal, KeyVRM |
Все узлы кластера Temporal недоступны. |
Полная недоступность сервиса Temporal. Все приложения, использующие Temporal, не работают. |
На управляющих хостах убедиться в работоспособности контейнеров temporal_server, keyvrm_worker. Проверить и проанализировать журналы контейнеров. Проверить сетевую связность между управляющими узлами и корректность маршрутов. |
TemporalDown |
KeyStack - Temporal |
Temporal, KeyVRM |
up{job="temporal"} |
Warning, если = 0 Critical, если sum = 0 |
Temporal |
Состояние сервисов Temporal, KeyVRM |
Значительное количество рабочих процессов (Workflow) завершаются с ошибкой. |
Возможно нарушение функционирования механизмов DRS и HA. |
Убедиться в работоспособности контейнеров temporal_*, keyvrm_*. Проверить журналы контейнеров. Проанализировать журналы keyvrm. В Temporal UI найти упавшие workflow и проанализировать стек ошибок. |
TemporalWorkflowFailureRateHigh |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_workflow_failed temporal_workflow_endtoend_latency_count |
Critical, если ( sum by (namespace, task_queue, workflow_type, instance) ( rate(temporal_workflow_failed[5m]) ) / sum by (namespace, task_queue, workflow_type, instance) ( rate(temporal_workflow_endtoend_latency_count[5m]) ) ) * 100 > 10 |
Temporal |
Состояние сервисов Temporal, KeyVRM |
Значительное количество активностей (Activity) завершаются с ошибкой или таймаутом. |
Возможно нарушение функционирования механизмов DRS и HA. |
Проанализировать журналы воркера. Убедиться в доступности и работоспособности сервисов, которые вызывает данная activity. Проанализировать настройки retry policy. |
TemporalActivityFailureRateHigh |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_activity_execution_latency_count temporal_activity_succeed_endtoend_latency_count |
Critical, если ( ( sum by (namespace, task_queue, activity_type, instance) ( rate(temporal_activity_execution_latency_count[5m]) ) - sum by (namespace, task_queue, activity_type, instance) ( rate(temporal_activity_succeed_endtoend_latency_count[5m]) ) ) / ( sum by (namespace, task_queue, activity_type, instance) ( rate(temporal_activity_execution_latency_count[5m]) ) > 0 ) ) * 100 > 10 |
Temporal |
Состояние сервисов Temporal, KeyVRM |
Все слоты для выполнения заданий рабочих процессов (Workflow Task) на воркере заняты. |
Возможно нарушение функционирования механизмов DRS и HA. Возможно увеличение времени недоступности ВМ. |
В Temporal UI проверить наличие workflow с аномально долгим replay. Проанализировать значение параметра maxConcurrentWorkflowTaskExecutionSize. Убедиться, что воркер не перегружен параллельными HA-событиями от множества compute-узлов. |
TemporalWorkflowWorkerSlotsLow |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_worker_task_slots_available{worker_type="WorkflowWorker"} |
Critical, если = 0 Warning, если ( temporal_worker_task_slots_available{worker_type="WorkflowWorker"} / ( temporal_worker_task_slots_available{worker_type="WorkflowWorker"} + temporal_worker_task_slots_used{worker_type="WorkflowWorker"} ) ) * 100 < 20 |
Temporal |
Состояние сервисов Temporal, KeyVRM |
Все слоты для параллельного выполнения активностей (Activity) на воркере заняты. |
Возможно нарушение функционирования механизмов DRS и HA. При длительном исчерпании слотов вышестоящие workflow могут превысить таймауты и завершиться с ошибкой, оставив ВМ или compute-узлы в неконсистентном состоянии. |
В Temporal UI проверить наличие зависших активностей (Activity), особенно долгих вызовов Nova live-migrate или операций эвакуации. Рассмотреть увеличение значения maxConcurrentActivityExecutionSize в конфигурации воркера. При систематической перегрузке рассмотреть возможность добавления дополнительных экземпляров воркеров. |
TemporalActivityWorkerSlotsLow |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_worker_task_slots_available{worker_type="ActivityWorker"} |
Critical, если = 0 Warning, если ( temporal_worker_task_slots_available{worker_type="ActivityWorker"} / ( temporal_worker_task_slots_available{worker_type="ActivityWorker"} + temporal_worker_task_slots_used{worker_type="ActivityWorker"} ) ) * 100 < 20 |
Temporal |
Состояние сервисов Temporal, KeyVRM |
Значительный процент RPC-запросов от SDK к серверу Temporal завершаются с ошибкой. |
Возможно нарушение функционирования механизмов DRS и HA. |
Убедиться в работоспособности контейнеров temporal_*, keyvrm_*. Проверить журналы контейнеров. Проверить сетевую связность между управляющими узлами и корректность маршрутов. Проанализировать журналы Temporal сервера на наличие ошибок аутентификации или перегрузки. |
TemporalRPCFailureRateHigh |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_sdk:rpc_failure_rate:ratio_rate5m |
Critical, если > 5 |
Temporal |
Состояние сервисов Temporal, KeyVRM |
Зафиксирован резкий рост числа ошибок RPC-запросов относительно baseline час назад. |
Возможно нарушение функционирования механизмов DRS и HA. |
Убедиться в работоспособности контейнеров temporal_*, keyvrm_*. Проверить журналы контейнеров. Проверить сетевую связность между управляющими узлами и корректность маршрутов. Проанализировать журналы Temporal сервера на наличие ошибок аутентификации или перегрузки. |
TemporalRPCFailureSpikeDetected |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_request_failure temporal_sdk:rpc_failure_rate:ratio_rate5m |
Warning, если ( sum by (namespace, operation, instance) ( increase(temporal_request_failure[5m]) ) / clamp_min( sum by (namespace, operation, instance) ( increase(temporal_request_failure[5m] offset 1h) ), 1 ) > 3 and temporal_sdk:rpc_failure_rate:ratio_rate5m > 5 ) |
Temporal |
Состояние сервисов Temporal, KeyVRM |
Зафиксирован резкий рост задержек для 99% RPC-запросов. |
Возможно нарушение функционирования механизмов DRS и HA. |
Проанализировать загрузку CPU и памяти. Проанализировать задержки хранилища данных. |
TemporalRPCLatencyHigh |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_request_latency_bucket |
Warning, если ( histogram_quantile(0.99, sum by (namespace, operation, instance, le) ( rate(temporal_request_latency_bucket{operation!~"PollWorkflowTaskQueue|PollActivityTaskQueue"}[5m]) ) ) / clamp_min( histogram_quantile(0.99, sum by (namespace, operation, instance, le) ( rate(temporal_request_latency_bucket{operation!~"PollWorkflowTaskQueue|PollActivityTaskQueue"}[5m] offset 1h) ) ), 1 ) > 2 ) |
Temporal |
Состояние сервисов Temporal, KeyVRM |
95% времени выполнения Workflow Task превышает 2 секунды. |
Возможно замедление выполнения DRS/HA-сценариев. Решения о файловере и/или эвакуации вычислительных узлов обрабатываются с задержкой. При дальнейшем росте задержек воркер начнёт выдавать ошибку TMPRL1101 и workflow tasks будут падать. |
Проанализировать загрузку CPU и памяти воркера. Убедиться, что в коде workflow нет блокирующих вызовов, все вызовы к OpenStack API должны выполняться только через активити, не напрямую из workflow. В Temporal UI проверить наличие узких мест через трассировку по workflow type. |
TemporalWorkflowTaskExecutionLatencyHigh |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_workflow_task_execution_latency_bucket |
Warning, если histogram_quantile(0.95, sum by (namespace, task_queue, workflow_type, instance, le) ( rate(temporal_workflow_task_execution_latency_bucket[5m]) ) ) > 2000 |
Temporal |
Состояние сервисов Temporal, KeyVRM |
95% времени выполнения Workflow Task replay превышает 10 секунд. |
Возможно замедление выполнения DRS/HA-сценариев. Принятие решения о файловере и/или эвакуации вычислительных узлов происходит с задержкой. |
В Temporal UI проверить длину истории проблемных workflow. Проверить задержки хранилища данных. Убедиться в достаточности ресурсов воркера. |
TemporalWorkflowTaskReplayLatencyHigh |
KeyStack - Temporal |
Temporal, KeyVRM |
temporal_workflow_task_replay_latency_bucket |
Warning, если histogram_quantile(0.95, sum by (namespace, task_queue, workflow_type, instance, le) ( rate(temporal_workflow_task_replay_latency_bucket[5m]) ) ) > 10000 |