Zabbix: Гистерезис для триггеров
Суть правил заключается в том, что проблемы закрываются по параметрам более требовательным, чем при срабатывании.
Задача, которую решает правило:
Выход из проблемы не равно решению проблемы.
На примере места на диске C сделал показательное тестирование.
В макросе прописано, чтобы проблемы восстановятся только если процент занятого места меньше 90%
А срабатывают при
92% - Warning
97% - Hight
99% - Disaster
Таким образом, при переполнении диска более чем на 97% ,
Могло освободиться всего 100Мб. Ранее триггер бы перешел в состояние «Решено», а всем админам пришло уведомление о том, что все ОК.
Но на самом деле, проблема полностью не решена, и в любой момент сервис может остановиться и перейти в состояние Disaster!
Поэтому необходимо освободить гораздо большее кол-во свободного места, чтобы закрыть все триггеры.
Процентовка выведена в макросы и может быть изменена в любой момент.
Пример использования:
Меняем стандартный прототип триггера "Disk space is critically low" из шаблона Windows by Zabbix agent
Срабатывание:
Должны совпадать два условия: во-первых, использование пространства должно быть выше {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.
Второе условие должно быть одним из следующих:
- Свободное место на диске меньше {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}
- Диск будет заполнен менее чем за 24 часа.
Восстановление:
Должны совпадать два условия: во-первых, использование пространства должно быть меньше {$VFS.FS.PUSED.REST:"{#FSNAME}"}.
Второе условие должно быть одним из следующих:
- Свободное место на диске больше {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}.
- Диск будет заполнен более чем за 24 часа.
Макросы используемые в триггере:
Имя макроса Значение Описание
{$VFS.FS.PUSED.MAX.CRIT} 97 Процент свободного места для срабатывания триггера
{$VFS.FS.PUSED.REST} 90 Процент свободного места для восстановления триггера
{$VFS.FS.FREE.MIN.CRIT} 5G Критический порог использования файловой системы в Гб.
Код триггера:
```trigger_prototypes:
- uuid: d3e99134a1d04894918f2c92ff38cb92
expression: |
last(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}
and
(
(last(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},total])-last(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},used]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}
or
timeleft(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],1h,100)<1d
)
recovery_mode: RECOVERY_EXPRESSION
recovery_expression: |
last(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused])<{$VFS.FS.PUSED.REST:"{#FSNAME}"}
and
(
(last(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},total])-last(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},used]))>{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}
or
timeleft(/Windows by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],1h,100)>1d
)
name: '{#FSLABEL}({#FSNAME}): Disk space is critically low'
event_name: '({#FSNAME}): Критически мало места на диске ({ITEM.LASTVALUE1} > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)'
opdata: 'Используемое: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})'
priority: DISASTER
description: |
Срабатывание:
Должны совпадать два условия: во-первых, использование пространства должно быть выше {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}.
Второе условие должно быть одним из следующих:
- Свободное место на диске меньше {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}
- Диск будет заполнен менее чем за 24 часа.
Восстановление:
Должны совпадать два условия: во-первых, использование пространства должно быть меньше {$VFS.FS.PUSED.REST:"{#FSNAME}"}.
Второе условие должно быть одним из следующих:
- Свободное место на диске больше {$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}.
- Диск будет заполнен более чем за 24 часа.
manual_close: 'YES'
tags:
- tag: scope
value: capacity```