4 Настройка
1 Действия
Zabbix, реагируя на события, выполняет множество операций. Действия могут быть определены для любого события или набора событий, генерируемых Zabbix.
Атрибуты действий:
Параметр | Описание |
---|---|
Имя | Уникальное имя действия. |
Событие | Источник события. В данный момент поддерживаются несколько источников: Триггеры – события генерируемые изменениями состояния триггеров Обнаружение – события генерируемые модулем сетевого автообнаружения Авторегистрация – события генерируемые новыми активными агентами |
Включить эскалации | Включение эскалаций. Если включено, то действие будет эскалировано по определенным шагам операции, определенным для операций. |
Период (секунд) | Интервал времени для перехода на следующий шаг при эскалации. |
Тема по умолчанию | Тема оповещения по умолчанию. Тема может содержать макросы. |
Сообщение по умолчанию | Сообщение оповещения по умолчанию. Сообщение может содержать макросы. |
Сообщение восстановления | Если включено, то Zabbix будет отправлять сообщение после устранения проблемы. Сообщения будут отправлены только тем кто получал любые сообщения по этой проблеме ранее. |
Тема восстановления | Тема сообщения при восстановлении. Тема может содержать макросы. |
Сообщение восстановления | Сообщение оповещения при восстановления. Сообщение может содержать макросы. |
Состояние | Состояние действия: Активировано – действие включено Деактивировано – действие отключено |
Условия действия
Действие будет выполнено только в случае, если оно соответствует определенному набору условий.
Следующие условия могут быть определены для событий, источником которых есть изменение триггеров:
Тип условия | Поддерживаемые операнды | Описание |
---|---|---|
Группа элементов данных | = содержит не содержит |
= – событие произошло от триггера, элемент данных которого включен в указанную группу элементов данных содержит – событие произошло от триггера, элемент данных которого включен в указанную группу элементов данных, содержащей указанную строку не содержит – событие произошло от триггера, элемент данных которого включен в указанную группу элементов данных, не содержащей указанную строку |
Группа узлов сети | = <> |
Сравнивает имеется ли в группе узлов сети триггер, сгенерировавший событие. = – Событие сгенерировано из указанной группы узлов сети <> – Событие сгенерировано не из указанной группы узлов сети |
Шаблон узла сети | = <> |
Сравнивает имеется ли в шаблоне узла сети сработавший триггер. = – Событие сгенерировано триггером находящемся в шаблоне узла сети <> – Событие сгенерировано триггером не находящемся в шаблоне узла сети |
Узел сети | = <> |
Сравнение имеется ли сработавший триггер в узле сети. = – Событие сгенерировано из указанного узла сети <> – Событие сгенерировано не из указанного узла сети |
Триггер | = <> |
Сравнение указанного триггера со сработавшим триггером. = – Событие сгенерировано указанным триггером <> – Событие сгенерировано не указанным триггером |
Описание триггера (имя) | содержит не содержит |
Сравнение совпадает ли имя триггера с именем триггера сгенерировавшим событие. содержит – Строка найдена в имени триггера. Регистрозависимое. не содержит – Строка не найдена в имени триггера. Регистрозависимое. Обратите внимание: Введенное значение будет сравниваться с описанием триггера (именем) со всеми раскрытыми макросами. |
Важность триггера | = <> >= <= |
Сравнение с важностью триггера. = – равно важности триггера <> – не равен важности триггера >= – равен или более важный триггер <= – равен или менее важный триггер |
Значение триггера | = | Сравнение со значением триггера. = – равно значению триггера (OK или ПРОБЛЕМА) |
Период времени | в не в |
Событие произошло в указанный промежуток времени. в – Событие произошло в указанный период времени. Смотрите страницу спецификаций периода времени для получения сведений о формате времени. |
Состояние обслуживания | = <> |
Сравнение находится ли узел сети в обслуживании. = – Узел сети находится на обслуживании. <> – Узел сети не находится на обслуживании. |
Значение (состояние) триггера:
Состояние триггера изменяется с ОК на ПРОБЛЕМА (значение триггера ПРОБЛЕМА)
Состояние триггера изменяется с ПРОБЛЕМА на ОК (значение триггера ОК)
Если состояние изменяется в такой последовательности ОК→НЕИЗВЕСТНО→ПРОБЛЕМА, то это рассматривается как ОК→ПРОБЛЕМА, и если ПРОБЛЕМА→НЕИЗВЕСТНО→ОК то это рассматривается как ПРОБЛЕМА→ОК.
Следующие условия действий могут быть определены для событий, возникающих при Обнаружении:
Тип условия | Поддерживаемые операнды | Описание |
---|---|---|
IP узла сети | = <> |
Проверяется входит ли IP адрес обнаруженного Узла сети в указанный диапазон. = – IP узла сети входит в диапазон <> – IP узла сети не входит в диапазон. |
Тип сервиса | = <> |
Проверяется тип сервиса обнаруженного устройства. = – совпадает тип сервиса обнаруженного устройства <> – не совпадает тип сервиса обнаруженного устройства. |
Порт сервиса | = <> |
Проверяется входит ли номер TCP порта в указанный диапазон портов. = – порт входит в диапазон <> – порт не входит в диапазон. |
Правило обнаружения | = <> |
Проверяется соответствует ли указанному правилу обнаружения обнаруженный узел сети. = – не соответствует указанному правилу обнаружения <> – соответствует указанному правилу обнаружения. |
Проверка обнаружения | = <> |
Проверяется соответствует ли указанной проверке обнаружения обнаруженный узел сети. = – соответствует указанной проверке обнаружения <> – не соответствует указанной проверке обнаружения. |
Обнаруженный объект | = | Проверяется, чем является обнаруженный объект устройство или сервис. |
Состояние обнаружения | = | Доступен – Событие обнаружения узла сети или сервиса соответствует Доступен. Недоступен – Событие обнаружения узла сети или сервиса соответствует Недоступен. Обнаружен – Событие обнаружения узла сети или сервиса соответствует Обнаружен Потерян – Событие обнаружения узла сети или сервиса соответствует Потерян |
Доступен/Недоступен | >= <= |
Продолжительность недоступности для событий недоступности узла сети или сервиса. Продолжительность доступности для событий доступности узла сети или сервиса. >= – доступен/недоступен равно или более чем <= – доступен/недоступен равно или менее чем. Параметр указывается в секундах. |
Полученное значение | = <> >= <= не содержит содержит |
Сравнение с полученным значением от агента (Zabbix, SNMP). Сравнение строки. = – равняется значению <> – не равняется значению >= – равно или более чем значение <= – равно или менее чем значение содержит – содержит как подстроку не содержит – не содержит как подстроку. Параметр задается строковым значением. |
Прокси | = <> |
Проверяется под управлением какого Zabbix прокси обнаружен узел сети. = – соответствует указанному прокси-серверу <> – не соответствует указанному прокси-серверу. |
Следующие условия действий могут быть определены для событий, возникающих при Авторегистрации:
Тип условия | Поддерживаемые операнды | Описание |
---|---|---|
Имя узла сети | содержит не содержит |
Проверяется содержит ли обнаруженное устройство в имени узла сети указанный текст. содержит – узел сети содержит указанную информацию в имени узла сети не содержит – узел сети не содержит указанную информацию в имени узла сети. |
Прокси | = <> |
Проверяется под управлением какого Zabbix прокси обнаружен объект.. = – соответствует указанному прокси-серверу <> – не соответствует указанному прокси-серверу. |
Для примера рассмотрим следующий набор условий (тип вычисления: AND/OR):
-
Группа узлов сети = Oracle servers
-
Группа узлов сети = MySQL servers
-
Имя триггера содержит ‘Database is down’
-
Имя триггера содержит ‘Database is unavailable’
будет вычисляться так:
(Группа узлов сети = Oracle servers или
Группа узлов сети = MySQL servers) и
(Имя триггера содержит 'Database is down' или
Имя триггера содержит 'Database is unavailable')
Операции
Операции или набор операций выполняются если событие соответствует условиям.
Zabbix поддерживает следующие операции:
-
Отправить сообщение
-
Удаленная команда(ы), включая IPMI.
Дополнительные операции доступны для событий обнаружения:
-
Добавить узел сети
-
Удалить узел сети
-
Активировать узел сети
-
Деактивировать узел сети
-
Добавить в группу
-
Удалить из группы
-
Присоединить к шаблону
-
Отсоединить от шаблона
При добавлении узла сети, его имя будет получено (разрешено) с помощью стандартной функции gethostbyname. Если имя узла сети разрешается, тогда используется полученое имя. Если нет, тогда используется IP адрес. Кроме того, если IPv6 адрес используется для имени узла сети, тогда все ”:” (двоеточия) заменяются на “_” (подчеркивание), потому что ”:” (двоеточия) не разрешены в имени узлов сети.
Аттрибуты операций:
Параметр | Описание |
---|---|
Шаг | Если включена эскалация для этого действия, тогда доступны следующие параметры: От – выполнять на каждом шагу начиная с первого К – до этого (0, для всех шагов начиная с От) Период – переход к следующему шагу после заданного периода, 0 – использовать период по умолчанию. |
Тип операции | Тип действия: Отправить сообщение – отправка сообщения пользователю Удаленная команда – выполнить удаленную команду |
Источник события | |
Отправить сообщение | Отправить сообщение: Одному пользователь – одному пользователю Группе пользователей – всем членам группы пользователей |
Сообщение по умолчанию | Если выбрано, то будет использоваться сообщение по умолчанию. |
Отправлять только | Выбор какое из возможных средств передачи использовать для отправки сообщения (Все средства передачи или конкретное). |
Тема | Тема сообщения. Тема может содержать макросы. |
Сообщение | Непосредственно сообщение. Сообщение может содержать макросы. |
Удаленная команда | Список удаленных команд. |
Условия | Используется при эскалированном действии на сработавший триггер. Может принимать значения для подтвержденного события на триггер “Не подтверждено” или “Подтверждено” |
Макросы для сообщений и удаленные команды
Макросы могут быть использованы для более эффективного оповещения.
Пример 1
Тема:
{TRIGGER.NAME}: {TRIGGER.STATUS}
Тема реального сообщения будет заменена на нечто вроде:
Processor load is too high on server www.zabbix.com: PROBLEM
Пример 2
Сообщение:
Загрузка процессора: {zabbix.zabbix.com:system.cpu.load[,avg1].last(0)}
Реальное сообщение будет заменено на нечто вроде:
Загрузка процессора: 1.45
Пример 3
Сообщение:
Последнее значение: {{HOSTNAME}:{TRIGGER.KEY}.last(0)} Максимум за 15 минут: {{HOSTNAME}:{TRIGGER.KEY}.max(900)} Минимум за 15 минут: {{HOSTNAME}:{TRIGGER.KEY}.min(900)}
Реальное сообщение будет заменено на нечто вроде:
Последнее значение: 1.45 Максимум за 15 минут: 2.33 Минимум за 15 минут: 1.01
2 Макросы
Zabbix поддерживает некоторое количество макросов, которые могут быть использованы в различных ситуациях. Эффективное использование макросов позволяет сократить время и сделать настройку Zabbix более прозрачной.
Список поддерживаемых макросов
В таблице содержится полный список поддерживаемых макросов Zabbix. X обозначает “поддерживается”.
Имена элементов данных | Описание | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Имена триггеров | ▼▼ | |||||||||
Выражения триггеров | ▼▼ | |||||||||
Подписи на картах1 | ▼▼ | |||||||||
Параметры ключей элементов данных | ▼▼ | |||||||||
GUI скрипты | ▼▼ | |||||||||
Оповещения авторегистрации | ▼▼ | |||||||||
Оповещения обнаружения | ▼▼ | |||||||||
Оповещения и команды | ▼▼ | |||||||||
МАКРОС | ▼▼ | |||||||||
▼▼ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
{DATE} | X | X | X | Текущая дата в формате yyyy.mm.dd. | ||||||
{DISCOVERY.DEVICE.IPADDRESS} | X | IP адрес обнаруженного устройства. Доступно всегда, не зависит от того добавлен узел сети или нет. | ||||||||
{DISCOVERY.DEVICE.STATUS} | X | Состояние обнаруженного устройства: может быть ДОСТУПЕН или НЕДОСТУПЕН. | ||||||||
{DISCOVERY.DEVICE.UPTIME} | X | Время с момента последнего изменения состояния обнаружения для конкретного устройства. Например: 1ч 29м. Для устройств с состоянием НЕДОСТУПЕН этот период указывает время недоступности. |
||||||||
{DISCOVERY.RULE.NAME} | X | Название правила обнаружения, которое обнаружило наличие или отсутствие устройства или сервиса. | ||||||||
{DISCOVERY.SERVICE.NAME} | X | Имя сервиса, которое было обнаружено. Например: HTTP. |
||||||||
{DISCOVERY.SERVICE.PORT} | X | Порт на котором сервис был обнаружен. Например: 80. |
||||||||
{DISCOVERY.SERVICE.STATUS} | X | Состояние сервиса правила обнаружения: может быть ДОСТУПЕН или НЕДОСТУПЕН. | ||||||||
{DISCOVERY.SERVICE.UPTIME} | X | Время с момента последнего изменения состояния обнаружения для конкретного сервиса. Например: 1ч 29м. Для сервисов с состоянием НЕДОСТУПЕН этот период указывает время недоступности. |
||||||||
{ESC.HISTORY} | X | История эскалаций. Журнал предыдущих отправленных сообщений. Отображает предыдущие отправленные оповещения, на котором шаге эскалации они были отправлены и их статус (отправлено, в процессе и ошибка). | ||||||||
{EVENT.ACK.HISTORY} | X | |||||||||
{EVENT.ACK.STATUS} | X | |||||||||
{EVENT.AGE} | X | X | X | Возраст события. Полезно в сообщениях эскалации. | ||||||
{EVENT.DATE} | X | X | X | Дата события. | ||||||
{EVENT.ID} | X | X | X | Код (ID) события, вызвавшего это действие. | ||||||
{EVENT.TIME} | X | X | X | Время события. | ||||||
{HOSTNAME<1-9>} | X | X | X | X | X | Имя узла сети N-го элемента данных из триггера вызвавшего это оповещение. Поддерживается в оповещениях авторегистрации начиная с версии 1.8.4. | ||||
{HOST.CONN<1-9>} | X | X | X | X | IP или DNS имя узла сети, зависимо от его настроек. | |||||
{HOST.DNS<1-9>} | X | X | X | X | DNS имя узла сети. | |||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
{IPADDRESS<1-9>} | X | X | X | X | IP адрес N-го элемента данных триггера вызвавшего это оповещение. | |||||
{ITEM.ID<1-9>} | X | Числовой ID N-го элемента данных триггера вызвавшего это оповещение. Поддерживается начиная с 1.8.12. | ||||||||
{ITEM.LASTVALUE<1-9>} | X | X | Последнее значение элемента данных N-го элемента данных в выражении триггера вызвавшего это оповещение. Поддерживается начиная с 1.4.3. Это алиас для {{HOSTNAME}:{TRIGGER.KEY}.last(0)} | |||||||
{ITEM.LOG.AGE<1-9>} | X | |||||||||
{ITEM.LOG.DATE<1-9>} | X | |||||||||
{ITEM.LOG.EVENTID<1-9>} | X | |||||||||
{ITEM.LOG.NSEVERITY<1-9>} | X | |||||||||
{ITEM.LOG.SEVERITY<1-9>} | X | |||||||||
{ITEM.LOG.SOURCE<1-9>} | X | |||||||||
{ITEM.LOG.TIME<1-9>} | X | |||||||||
{ITEM.NAME<1-9>} | X | Имя N-го элемента данных в выражении триггера, вызвавшего это оповещение. | ||||||||
{ITEM.VALUE<1-9>} | X | X | Последнее значение N-го элемента данных в выражении триггера, если используется для отображения триггеров. Историческое значение (точно когда произошло событие) N-го элемента данных из выражения триггера, если используется для отображения событий и оповещений. Поддерживается начиная с Zabbix 1.4.3. |
|||||||
{NODE.ID<1-9>} | X | X | X | ID ноды | ||||||
{NODE.NAME<1-9>} | X | X | X | Имя ноды | ||||||
{PROFILE.CONTACT<1-9>} | X | Контакт из профиля узла сети. | ||||||||
{PROFILE.DEVICETYPE<1-9>} | X | Тип устройства из профиля узла сети. | ||||||||
{PROFILE.HARDWARE<1-9>} | X | Аппаратное обеспечение из профиля узла сети. | ||||||||
{PROFILE.LOCATION<1-9>} | X | Размещение устройства из профиля узла сети. | ||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
{PROFILE.MACADDRESS<1-9>} | X | MAC адрес из профиля узла сети. | ||||||||
{PROFILE.NAME<1-9>} | X | Имя из профиля узла сети. | ||||||||
{PROFILE.NOTES<1-9>} | X | Заметки из профиля узла сети. | ||||||||
{PROFILE.OS<1-9>} | X | ОС из профиля узла сети. | ||||||||
{PROFILE.SERIALNO<1-9>} | X | Серийный номер из профиля узла сети. | ||||||||
{PROFILE.SOFTWARE<1-9>} | X | Программное обеспечение из профиля узла сети. | ||||||||
{PROFILE.TAG<1-9>} | X | Метка из профиля узла сети. | ||||||||
{PROXY.NAME<1-9>} | X | X | X | Имя прокси N-го триггера вызвавшего оповещение. Поддерживается начиная с версии 1.8.4. | ||||||
{STATUS} | X | Алиас для {TRIGGER.STATUS}. | ||||||||
{TIME} | X | X | X | Текущее время в формате чч:мм.сс. | ||||||
{TRIGGER.COMMENT} | X | Комментарий к триггеру. | ||||||||
{TRIGGER.EVENTS.UNACK} | X | X | Количество неподтвержденных событий для элемента на картах сетей или для триггера, вызвавшего текущее событие в уведомлениях. Поддерживается в подписях к элементам карт начиная с версии 1.8.3. | |||||||
{TRIGGER.EVENTS.PROBLEM.UNACK} | X | X | Количество неподтвержденных событий ПРОБЛЕМА для всех триггеров изменивших свое состояние, без учета их состояния. Поддерживается начиная с версии 1.8.3. | |||||||
{TRIGGER.PROBLEM.EVENTS.PROBLEM.UNACK} | X | Количество неподтвержденных событий ПРОБЛЕМА для триггеров в состоянии ПРОБЛЕМА. Поддерживается начиная с 1.8.3. | ||||||||
{TRIGGER.EVENTS.ACK} | X | X | Количество подтвержденных событий для элемента на картах сетей, или для триггера вызвавшего текущее событие в уведомлениях. Поддерживается начиная с 1.8.3. | |||||||
{TRIGGER.EVENTS.PROBLEM.ACK} | X | X | Количество подтвержденных событий ПРОБЛЕМА для всех триггеров, без учета их состояния. Поддерживается начиная с 1.8.3. | |||||||
{TRIGGER.PROBLEM.EVENTS.PROBLEM.ACK} | X | Количество подтвержденных событий ПРОБЛЕМА для триггеров в состоянии ПРОБЛЕМА. Поддерживается начиная с 1.8.3. | ||||||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | ||
{TRIGGER.EXPRESSION} | X | Выражение триггера. Поддерживается начиная с 1.8.12. | ||||||||
{TRIGGER.ID} | X | Код (ID) триггера вызвавшего это действие. | ||||||||
{TRIGGER.KEY<1-9>} | X | Ключ N-го элемента данных в выражении триггера, вызвавшего это действие. | ||||||||
{TRIGGER.NAME} | X | Имя (описание) триггера. | ||||||||
{TRIGGER.NSEVERITY} | X | Числовое представление важности триггера. Возможные значения: 0 – Не классифицировано, 1 – Информация, 2 – Предупреждение,3 – Средняя, 4 – Высокая, 5 – Чрезвычайная, Поддерживается начиная с Zabbix 1.6.2. | ||||||||
{TRIGGER.SEVERITY} | X | Важность триггера. Возможные значения: Not classified, Information, Warning, Average, High, Disaster, Unknown | ||||||||
{TRIGGER.STATUS} | X | Состояние триггера. Может быть ПРОБЛЕМА или ОК. {STATUS} устарел. | ||||||||
{TRIGGER.URL} | X | URL триггера. | ||||||||
{TRIGGER.VALUE} | X | X | Текущее значение триггера: 0 – если триггер в состоянии ОК, 1 – если триггер в состоянии ПРОБЛЕМА, 2 – если триггер в состоянии НЕИЗВЕСТНО. Этот макрос может быть использован в выражениях триггеров. | |||||||
{TRIGGERS.UNACK} | X | Количество неподтвержденных триггеров для элемента на картах сетей, без учета состояния триггера. Триггер считается не подтвержденным, если хотя бы одно его событие ПРОБЛЕМА не подтверждено. Поддерживается начиная 1.8.3. | ||||||||
{TRIGGERS.PROBLEM.UNACK} | X | Количество неподтвержденных триггеров в состоянии ПРОБЛЕМА для элемента на картах сетей. Поддерживается начиная с версии 1.8.3. | ||||||||
{TRIGGERS.ACK} | X | Количество подтвержденных триггеров для элемента на картах сетей, без учета состояния триггера. Триггер считается не подтвержденным, если все его события ПРОБЛЕМА подтверждены. Поддерживается начиная 1.8.3. | ||||||||
{TRIGGERS.PROBLEM.ACK} | X | Количество подтвержденных триггеров ПРОБЛЕМА для элемента на картах сетей. Триггер считается подтвержденным, если все его события ПРОБЛЕМА подтверждены. Поддерживается начиная с 1.8.3. | ||||||||
{host:key.func(param)} | X | X2 | X | Простой макрос используется в выражении триггера. | ||||||
{$MACRO} | X | X | X | X | Пользовательские макросы. Поддерживается в именах триггеров и в описаниях элементов данных начиная с версии 1.8.4. | |||||
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
[2]В подписях на карте сети поддерживаются только функции last, avg, max и min с секундами в качестве аргумента.
Макрос {TRIGGER.ID} поддерживается в URL триггера начиная с Zabbix 1.8.8.
Пользовательские макросы
Для большей гибкости, Zabbix поддерживает пользовательские макросы, которые могут быть определены на глобальном уровне, на уровне шаблонов и на уровне узлов сети. Эти макросы имеют специальный синтаксис: {$MACRO}. Макросы могут быть использованы в ключах элементов данных и в выражениях триггеров. Начиная с Zabbix версии 1.8.4 пользовательские макросы так же возможно использовать в описаниях элементов данных и в именах триггеров.
Следующие символы допустимы в именах макросов: A-Z , 0-9 , _ , .
Zabbix замещает макросы в соответствии со следующей очередностью:
-
макрос назначенный узлу сети (проверяется в первую очередь)
-
макрос назначенный первому уровню шаблонов у узла сети(т.е. шаблоны присоединенные напрямую к узлу сети), которые отсортированы по ID шаблона
-
макрос назначенный второму уровню шаблонов у узла сети, которые отсортированы по ID шаблона
-
макрос назначенный третьему уровню шаблонов у узла сети, которые отсортированы по ID шаблона
-
…
-
глобальные макросы (проверяется в последнюю очередь)
Иными словами, если макрос не существует для узла сети непосредственно, тогда Zabbix попытается найти его в шаблонах, присоединенных к узлу сети, с учетом уровня глубины шаблонов. Если макрос все еще не найден, тогда будет использоваться макрос глобального уровня, если он существует конечно.
В случае, если Zabbix не удалось найти макрос, макрос не будет заменен на значение.
Для определения пользовательского макроса, перейдите в соответствующие разделы в веб-интерфейсе:
-
для глобальных макросов, откройте Администрирование → Общие → Макросы
-
для макросов на уровне узлов сети и шаблонов, откройте свойства узла сети или шаблона и найдите блок Макросы с правой стороны страницы
Наиболее общие случаи использования глобальных макросов и макросов уровня узлов сети:
-
используются шаблоны со специфичными для узла сети атрибутами: пароли, номера портов, имена файлов, регулярные выражения, и т.д.
-
глобальные макросы для глобального изменения конфигурации через “одно нажатие” и более тонкой настройки
Пример 1
Использование макроса в ключе элемента данных “Status of SSH daemon”:
ssh,{$SSH_PORT}
Пример 2
Использование макроса уровня узла сети в триггере “CPU load is too high”:
{ca_001:system.cpu.load[,avg1].last(0)}>{$MAX_CPULOAD}
Пример 3
Использование двух макросов в триггере “CPU load is too high”:
{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}
Заметьте, что макрос может быть использован в качестве параметра для функции триггера, в этом примере для функции min().
3 Группы элементов данных
Группа элементов данных представляет собой набор элементов данных для узла сети. Например, группа элементов данных ‘MySQL Server’ может содержать все элементы данных, которые относятся к серверу MySQL: доступность MySQL, размер на диске, загруженность процессора, количество операций в секунду, количество медленных запросов и т.д.
Элемент данных может быть связан с одним или несколькими группами элементов данных.
Группы элементов данных используются в веб-интерфейсе Zabbix для группировки элементов данных.
4 Графики
Пользовательские графики позволяют создавать сложные (состоящие из нескольких элементов данных) графики.
Такие графики, однажды настроенные, потом можно легко использовать через меню Мониторинг→Графики.
Настройку пользовательских графиков можно легко осуществить перейдя в Настройка→Шаблоны или Настройка→Узлы сети и нажав на ссылку Графики у соответствующего шаблона или узла сети.
1. если первый элемент данных был выбран из шаблона, тогда только из этого шаблона;
2. если первый элемент данных был выбран из любого узла сети, тогда из любого узла сети (но уже не из шаблонов)
5 Способы оповещений
Способы оповещений являются каналами передачи оповещений от Zabbix сервера. Один или более способов оповещений могут быть назначены одному пользователю.
Оповещения по электронной почте.
Jabber
Оповещение, используя сообщения Jabber.
При отправке оповещений, Zabbix попытается найти первую запись SRV Jabber, и если не удалось найти, тогда будет использоваться адрес записи этого домена. Среди записей SRV Jabber, будет выбрана одна с наивысшим приоритетом и с максимальным весом. Если не удалось найти такую запис, другие записи проверяться не будут.
Обзор записей SRC Jabber поддерживается начиная с Zabbix 1.8.6. До этой версии Zabbix пытался найти только запись адреса.
Скрипты
Пользовательские медиа скрипты выполняются из пути указанного в конфигурационном файле Zabbix сервера в переменной AlertScriptsPath. Скрипт должен иметь три параметра коммандной строки, получаемые в порядке:
-
Получатель
-
Тема
-
Сообщение
Переменные среды не сохраняются или создаются для скрипта, поэтому они должны быть обработаны в явном виде.
GSM модем
Zabbix поддерживают отправку СМС сообщений, используя GSM-модем, подключенный к последовательному порту Zabbix сервера.
Убедитесь, что:
-
Скорость последовательного устройства (обычно это /dev/ttyS0 под Linux) совпадает со скоростью GSM-модема. Zabbix не устанавливает скорость для последовательного соединения. Он использует настройки по умолчанию.
-
Пользователь Zabbix имеет доступ на чтение/запись в последовательное устройство. Выполните команду ls -l /dev/ttyS0, чтобы увидеть текущие права доступа к последовательному устройству.
-
В GSM-модеме введен ПИН-код и он сохраняется даже после перезагрузки модема. Помимо этого, вы можете отключить запрос ПИН-кода для самой SIM карточки. ПИН-код может быть введен путем использования команды AT + CPIN = “NNNN” (где NNNN это ваш ПИН-код, квычки должны присутствовать) в терминальном приложении, в таких как Minicom или HyperTerminal в Unix или Windows соответственно.
Zabbix был протестирован на следующих модемах GSM:
-
Siemens MC35
-
Teltonika ModemCOM/G10
6 Шаблоны узлов сети
Использование шаблонов это отличный способ сделать управление системой Zabbix более простой.
Шаблон может быть присоединен к любому количеству узлов сети. Элементы данных, триггеры и графики шаблона будут автоматически добавлены к связанному узлу сети. Измените любые элементы шаблона (элементы данных, триггер, графики) и изменения будут автоматически применены к узлам сети, связанным с этим шаблоном .
Атрибуты шаблона узла сети:
Параметр | Описание |
---|---|
Имя | Уникальное имя шаблона (узла сети). Имя должно быть уникальным в пределах каждой Zabbix ноды. |
Группы | Список групп узлов сети, к которым шаблон принадлежит. |
Новая группа | Назначение шаблону новой группы узлов сети. |
Узлы сети|Шаблоны | Связывание шаблона с указанными узлами сети или другими шаблонами. |
Соединить с шаблоном | Используется для создания иерархии шаблонов. |
Макрос | Использование макросов на уровне шаблонов. |
7 Группы узлов сети
Группа узлов сети может содержать один, несколько улов сети или не содержать их вообще.
Атрибуты групп узлов сети:
Параметр | Описание |
---|---|
Название группы | Уникальное имя группы узлов сети. Имя должно быть уникальным в пределах Zabbix ноды. |
Узлы сети | Список узлов сети включенных в эту группу. |
8 Узлы сети и зависимости триггеров
Zabbix не поддерживает зависимостей для узлов сети. Зависимости для узлов сети могут быть заданы с использованием более гибкого способа – зависимостей триггеров.
Как это работает?
Триггер может иметь список из одного или более зависимых триггеров. Это означает, что триггер будет все же менять свое состояние независимо от состояния триггеров в списке, но триггер не будет генерировать оповещения и действия в случае, если один из триггеров в списке находится в состоянии ПРОБЛЕМА .
Пример 1
Зависимость узла сети
Предположим, у вас есть два узла сети: маршрутизатор и сервер. Сервер находится за маршрутизатором. Таким образом, мы хотим получать только одно уведомление, если маршрутизатор недоступен:
“The router is down”
вместо:
“The router is down” и “The host is down”
Для того чтобы добиться этого, мы создаем зависимость у триггера:
"The host is down" зависит от "The router is down"
В случае, если сервер и маршрутизатор будут недоступны, Zabbix не будет выполнять действия для триггера “The host is down”.
19 Элементы данных
Элемент данных – это одиночная проверка (метрика) производительности или доступности.
1 Ключ элемента данных
1.1 Гибкие и не гибкие параметры
Параметр является гибким, если он может принимать аргументы. Например, параметр vfs.fs.size[*] является гибким. * означает любую строку, которая будет передана в как аргумент параметру. Примеры правильных определений:
-
vfs.fs.size[/]
-
vfs.fs.size[/etc]
1.2 Формат ключа
Следуйте правилам синтаксиса в формате ключа элемента данных, включая параметры ключа. На рисунках изображен поддерживаемый синтаксис. Допустимые элементы и символы в каждой позиции можно определить следуя линиям – если в каком то блоке может быть достигнута линия, в таком случае разрешено, если линия не может быть достигнута – тогда не разрешено.
Ключ элемента данных
Для построения правильного ключа элемента данных, вы должны начать с указания имени ключа, то есть выбрать имеет ли ключ параметры или нет – о чем свидетельствуют две линии, которые вы можете достичь.
Имя ключа
Имя ключа имеет ограниченный диапазон разрешенных символов, которые просто следуют друг за другом. Разрешенные символы:
0-9a-zA-Z_-.
Что означает:
-
все цифры;
-
все буквы в нижнем регистре;
-
все буквы в верхнем регистре;
-
подчеркивание;
-
тире;
-
точка.
Параметры ключа
Ключ элемента данных может принимать множество параметров, которые должны быть разделены запятой.
Индивидуальный параметр ключа
Каждый параметр ключа может быть одним из: строка заключенная в кавычки, строка без кавычек, массив.
Параметр можно оставить пустым и тогда будет использоваться значение по умолчанию. В этом случае Вы должны добавить соответствующее количество запятых, если какой-то из дальнейших параметров все же нужно задать. Например, ключ элемента данных icmpping[,,200,,500] будет указывать на то, что период проверки ping 200 миллисекунд, таймаут – 500 миллисекунд, а все остальные параметры будут заполнены значениями по умолчанию.
Параметр – строка заключенная в кавычки
Если параметр ключа это строка, заключенная в кавычки, тогда разрешен любой символ в Юникоде, и если требуется включение двойных кавычек, то они должны быть экранированы обратной наклонной чертой.
Параметр – строка не заключенная в кавычки
Если параметр ключа это строка без кавычек, тогда разрешен любой символ в Юникоде, за исключением запятой и правой квадратной скобки (]).
Параметр – массив
Если параметр ключа это массив, тогда он должен быть заключен в квадратные скобки, в которых каждый индивидуальный параметр следует один за другим, согласно правилам и синтаксису.
1.3 Доступные кодировки
Параметр “кодировка” используется для задания специфичной кодировки для обработки элементов данных, так что полученные данные не будут повреждены. Для получения списка поддерживаемых кодировок (идентификаторы кодовых страниц), пожалуйста, обратитесь к соответствующей документации, таких документаций как libiconv (GNU Project) или Microsoft Windows SDK “Идентификаторы кодовых страниц”. Если параметр “кодировка” не задан, тогда используется ANSI по умолчанию с определенным расширением в системе (Windows) или UTF-8 (локаль по умолчанию для новых дистрибутивов Unix/Linux, смотрите настройки вашей системы).
2 Не поддерживаемые элементы данных
Элемент данных может перейти в состояние “не поддерживается”, если по какой либо причине его значение получить не удалось. Такие элементы данных проверяются повторно через интервал времени, который настраивается в разделе Администрирования.
3 Поддержка по платформам
Если элемент данных обозначен символом “X” тогда он поддерживается, если другим символом ”-” тогда не поддерживается.
Если элемент обозначен символом ”?”, значит неизвестно поддерживается он или нет.
Если элемент обозначен символом “r”, значит он требует root привилегий.
Если элемент обозначен символом “i”, значит он игнорируется.
NetBSD | ||||||||||||
OpenBSD | ▼▼ | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Mac OS X | ▼▼ | |||||||||||
Tru64 | ▼▼ | |||||||||||
AIX | ▼▼ | |||||||||||
HP-UX | ▼▼ | |||||||||||
Solaris | ▼▼ | |||||||||||
FreeBSD | ▼▼ | |||||||||||
Linux 2.6 | ▼▼ | |||||||||||
Linux 2.4 | ▼▼ | |||||||||||
Windows | ▼▼ | |||||||||||
Параметр / система | ▼▼ | |||||||||||
▼▼ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |
agent.hostname | X | X | X | X | X | X | X | X | X | X | X | |
agent.ping | X | X | X | X | X | X | X | X | X | X | X | |
agent.version | X | X | X | X | X | X | X | X | X | X | X | |
kernel.maxfiles | – | X | X | X | – | – | – | ? | X | X | X | |
kernel.maxproc | – | – | X | X | X | – | – | ? | X | X | X | |
log[файл,<regexp>,<кодировка>,<макс. кол-во строк>] | X | X | X | X | X | X | X | X | X | X | X | |
logrt[формат_файла,<regexp>,<кодировка>,<макс. кол-во строк>] | X | X | X | X | X | X | X | X | X | X | X | |
eventlog[имя,<regexp>,<важность>,<ресурс>,<eventid>, <макс. кол-во строк>] |
X | – | – | – | – | – | – | – | – | – | – | |
net.if.collisions[if] | – | X | X | X | X | – | X | – | – | X | r | |
net.if.in[if,<режим>] | X | X | X | X | X | – | X | – | – | X | r | |
режим ▲ | bytes (по умолч.) | X | X | X | X | X | – | X | – | – | X | r |
packets | X | X | X | X | X | – | X | – | – | X | r | |
errors | X | X | X | X | X | – | X | – | – | X | r | |
dropped | X | X | X | X | – | – | – | – | – | X | r | |
net.if.list | X | – | – | – | – | – | – | – | – | – | – | |
net.if.out[if,<режим>] | X | X | X | X | X | – | X | – | – | X | r | |
режим ▲ | bytes (по умолч.) | X | X | X | X | X | – | X | – | – | X | r |
packets | X | X | X | X | X | – | X | – | – | X | r | |
errors | X | X | X | X | X | – | X | – | – | X | r | |
dropped | X | X | X | – | – | – | – | – | – | – | – | |
net.if.total[if,<режим>] | X | X | X | X | X | – | X | – | – | X | r | |
режим ▲ | bytes (по умолч.) | X | X | X | X | X | – | X | – | – | X | r |
packets | X | X | X | X | X | – | X | – | – | X | r | |
errors | X | X | X | X | X | – | X | – | – | X | r | |
dropped | X | X | X | – | – | – | – | – | – | – | – | |
net.tcp.dns[<ip>,зона] | – | X | X | X | X | X | X | X | X | X | X | |
net.tcp.dns.query[<ip>,зона,<тип>] | – | X | X | X | X | X | X | X | X | X | X | |
net.tcp.listen[порт] | X | X | X | X | X | – | – | – | – | – | – | |
net.tcp.port[<ip>,порт] | X | X | X | X | X | X | X | X | X | X | X | |
net.tcp.service.perf[сервис,<ip>,<порт>] | X | X | X | X | X | X | X | X | – | X | X | |
net.tcp.service[сервис,<ip>,<порт>] | X | X | X | X | X | X | X | X | – | X | X | |
net.udp.listen[порт] | – | X | X | – | – | – | – | – | – | – | – | |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||
proc.mem[<имя>,<пользователь>,<режим>,<cmdline>] | – | X | X | X | X | – | X | X | ? | X | X | |
режим ▲ | sum (по умолч.) | – | X | X | X | X | – | X | X | ? | X | X |
avg | – | X | X | X | X | – | X | X | ? | X | X | |
max | – | X | X | X | X | – | X | X | ? | X | X | |
min | – | X | X | X | X | – | X | X | ? | X | X | |
proc.num[<имя>,<пользователь>,<состояние>,<cmdline>] | X | X | X | X | X | – | X | X | ? | X | X | |
состояние ▲ | all (по умолч.) | – | X | X | X | X | – | X | X | ? | X | X |
sleep | – | X | X | X | X | – | X | X | ? | X | X | |
zomb | – | X | X | X | X | – | X | X | ? | X | X | |
run | – | X | X | X | X | – | X | X | ? | X | X | |
sensor[устройство,датчик,<режим>] | – | X | – | – | – | – | – | – | – | X | – | |
services[<тип>,<состояние>,<исключение>] | X | – | – | – | – | – | – | – | – | – | – | |
system.boottime | – | X | X | X | X | – | – | – | – | X | X | |
system.cpu.intr | – | X | X | X | X | – | X | – | – | X | X | |
system.cpu.load[<cpu>,<режим>] | X | X | X | X | X | X | – | X | ? | X | X | |
режим ▲ | avg1 (по умолч.) | X | X | X | X | X | X | – | X | ? | X | X |
avg5 | X | X | X | X | X | X | – | X | ? | X | X | |
avg15 | X | X | X | X | X | X | – | X | ? | X | X | |
system.cpu.num[<тип>] | X | X | X | X | X | X | X | – | – | X | X | |
тип ▲ | online (по умолч.) | X | X | X | X | X | X | X | – | – | X | X |
max | – | X | X | X | X | – | – | – | – | – | – | |
system.cpu.switches | – | X | X | X | X | – | X | – | – | X | X | |
system.cpu.util[<cpu>,<тип>,<режим>] | X | X | X | X | X | X | X | X | ? | X | X | |
тип ▲ | user (по умолч.) | – | X | X | X | X | X | X | X | ? | X | X |
nice | – | X | X | X | – | X | – | X | ? | X | X | |
idle | – | X | X | X | X | X | X | X | ? | X | X | |
system | X | X | X | X | – | X | X | X | ? | X | X | |
kernel | – | – | – | – | X | – | – | – | – | – | – | |
iowait | – | – | X | – | – | – | X | – | – | – | – | |
wait | – | – | – | – | X | – | – | – | – | – | – | |
interrupt | – | – | X | X | – | – | – | – | – | X | – | |
softirq | – | – | X | – | – | – | – | – | – | – | – | |
steal | – | – | X | – | – | – | – | – | – | – | – | |
режим ▲ | avg1 (по умолч.) | X | X | X | X | – | X | X | X | ? | X | – |
avg5 | X | X | X | X | – | X | X | – | ? | X | – | |
avg15 | X | X | X | X | – | X | X | – | ? | X | – | |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||
system.hostname[<тип>] | X | X | X | X | X | X | X | X | X | X | X | |
system.localtime | X | X | X | X | X | X | X | X | X | X | X | |
тип ▲ | utc (по умолч.) | X | X | X | X | X | X | X | X | X | X | X |
local | X | X | X | X | X | X | X | X | X | X | X | |
system.run[команда,<режим>] | X | X | X | X | X | X | X | X | X | X | X | |
режим ▲ | wait (по умолч.) | X | X | X | X | X | X | X | X | X | X | X |
nowait | X | X | X | X | X | X | X | X | X | X | X | |
system.stat[ресурс,<тип>] | – | – | – | – | – | – | X | – | – | – | – | |
system.swap.in[<устройство>,<тип>] (возможность указать устройство доступна только в Linux) | – | X | X | – | X | – | – | – | – | X | – | |
тип ▲ (pages будут работать, только если устройство не указано) |
count (по умолчанию для всех кроме Linux) | – | X | X | – | X | – | – | – | – | X | – |
sectors | – | X | X | – | – | – | – | – | – | – | – | |
pages (по умолчанию для Linux) | – | X | X | – | X | – | – | – | – | X | – | |
system.swap.out[<устройство>,<тип>] (возможность указать устройство доступна только в Linux) | – | X | X | – | X | – | – | – | – | X | – | |
тип ▲ (pages будут работать, только если устройство не указано) |
count (по умолчанию для всех кроме Linux) | – | X | X | – | X | – | – | – | – | X | – |
sectors | – | X | X | – | – | – | – | – | – | – | – | |
pages (по умолчанию для Linux) | – | X | X | – | X | – | – | – | – | X | – | |
system.swap.size[<устройство>,<тип>] | X | X | X | X | X | – | – | X | ? | X | – | |
тип ▲ | free (по умолч.) | X | X | X | X | X | – | – | X | ? | X | – |
total | X | X | X | X | X | – | – | X | ? | X | – | |
used | – | X | X | X | – | – | – | – | – | X | – | |
pfree | – | X | X | X | X | – | – | – | ? | X | – | |
pused | – | X | X | X | X | – | – | – | ? | X | – | |
system.uname | X | X | X | X | X | X | X | X | – | X | X | |
system.uptime | X | X | X | X | X | – | X | ? | ? | X | X | |
system.users.num | – | X | X | X | X | X | X | X | – | X | X | |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||
vfs.dev.read[<устройство>,<тип>,<режим>] | – | X | X | X | X | – | – | – | – | X | – | |
тип ▲
(умолчания различны |
sectors | – | X | X | – | – | – | – | – | – | – | – |
operations | – | X | X | X | X | – | – | – | – | X | – | |
bytes | – | – | – | X | X | – | – | – | – | X | – | |
sps | – | X | X | – | – | – | – | – | – | – | – | |
ops | – | X | X | X | – | – | – | – | – | – | – | |
bps | – | – | – | X | – | – | – | – | – | – | – | |
режим ▲ (совместимо только с типами: sps, ops, bps) |
avg1 (по умолчанию) | X | X | X | – | – | – | – | – | i | – | |
avg5 | – | X | X | X | – | – | – | – | – | i | – | |
avg15 | – | X | X | X | – | – | – | – | – | i | – | |
vfs.dev.write[<устройство>,<тип>,<режим>] | – | X | X | X | X | – | – | – | – | X | – | |
тип ▲
(умолчания различны |
sectors | – | X | X | – | – | – | – | – | – | – | – |
operations | – | X | X | X | X | – | – | – | – | X | – | |
bytes | – | – | – | X | X | – | – | – | – | X | – | |
sps | – | X | X | – | – | – | – | – | – | – | – | |
ops | – | X | X | X | – | – | – | – | – | – | – | |
bps | – | – | – | X | – | – | – | – | – | – | – | |
режим ▲ (совместимо только с типами: sps, ops, bps) |
avg1 (по умолчанию) | X | X | X | – | – | – | – | – | i | – | |
avg5 | – | X | X | X | – | – | – | – | – | i | – | |
avg15 | – | X | X | X | – | – | – | – | – | i | – | |
vfs.file.cksum[файл] | X | X | X | X | X | X | X | X | – | X | X | |
vfs.file.exists[файл] | X | X | X | X | X | X | X | X | X | X | X | |
vfs.file.md5sum[файл] | X | X | X | X | X | X | X | X | – | X | X | |
vfs.file.regexp[файл,regexp,<кодировка>] | X | X | X | X | X | X | X | X | – | X | X | |
vfs.file.regmatch[файл,regexp,<кодировка>] | X | X | X | X | X | X | X | X | – | X | X | |
vfs.file.size[файл] | X | X | X | X | X | X | X | X | – | X | X | |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ||
vfs.file.time[файл,<режим>] | X | X | X | X | X | X | X | X | – | X | X | |
режим ▲ | modify (по умолч.) | X | X | X | X | X | X | X | X | – | X | X |
access | X | X | X | X | X | X | X | X | – | X | X | |
change | X | X | X | X | X | X | X | X | – | X | X | |
vfs.fs.inode[fs,<режим>] | – | X | X | X | X | X | X | X | ? | X | X | |
режим ▲ | total (по умолч.) | – | X | X | X | X | X | X | X | ? | X | X |
free | – | X | X | X | X | X | X | X | ? | X | X | |
used | – | X | X | X | X | X | X | X | ? | X | X | |
pfree | – | X | X | X | X | X | X | X | ? | X | X | |
pused | – | X | X | X | X | X | X | X | ? | X | X | |
vfs.fs.size[fs,<режим>] | X | X | X | X | X | X | X | X | ? | X | X | |
режим ▲ | total (по умолч.) | X | X | X | X | X | X | X | X | ? | X | X |
free | X | X | X | X | X | X | X | X | ? | X | X | |
used | X | X | X | X | X | X | X | X | ? | X | X | |
pfree | X | X | X | X | X | X | X | X | ? | X | X | |
pused | X | X | X | X | X | X | X | X | ? | X | X | |
vm.memory.size[<режим>] | X | X | X | X | X | X | X | X | ? | X | X | |
режим ▲ | total (по умолч.) | X | X | X | X | X | X | X | X | ? | X | X |
free | X | X | X | X | X | X | X | X | ? | X | X | |
used | – | – | – | X | – | – | – | – | – | X | X | |
shared | – | X | X | X | – | X | – | – | ? | X | X | |
buffers | – | X | X | – | – | X | – | – | ? | X | X | |
cached | X | X | X | X | – | X | X | – | ? | X | X | |
pfree | X | X | X | X | – | – | – | – | – | X | X | |
pused | – | – | – | X | – | – | – | – | – | X | X | |
available | – | X | X | – | – | – | – | – | – | – | – | |
web.page.get[хост,<путь>,<порт>] | X | X | X | X | X | X | X | X | X | X | X | |
web.page.perf[хост,<путь>,<порт>] | X | X | X | X | X | X | X | X | X | X | X | |
web.page.regexp[хост,<путь>,<порт>,<regexp>,<длина>] | X | X | X | X | X | X | X | X | X | X | X | |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
4 Zabbix агент
Список поддерживаемых параметров
Ключ | ||||
---|---|---|---|---|
▲ | Описание | Возвращаемое значение |
Параметры | Комментарии |
agent.hostname | ||||
Возвращает имя хоста агента. | Строка | – | Возвращает действительное значение hostname агента из файла конфигурации. Этот элемент данных поддерживается начиная с версии 1.8.13. |
|
agent.ping | ||||
Проверка доступности агента. | Возвращает ‘1’, если доступен и ничего не возвращает, если недоступен. | – | Может быть использовано как TCP ping. Используйте функцию nodata() для проверки недоступности хоста. | |
agent.version | ||||
Версия Zabbix агента. | Строка | – | Пример возвращаемого значения: 1.8.2 | |
kernel.maxfiles | ||||
Максимальное количество открытых файлов поддерживаемое ОС. | Количество файлов. Целочисленное. | |||
kernel.maxproc | ||||
Максимальное количество процессов поддерживаемое ОС. | Количество процессов. Целочисленное. | |||
log[файл,<regexp>,<кодировка>,<макс кол-во строк>] | ||||
Мониторинг файлов журналов (логов). | Журнал | файл – полное имя файла regexp – регулярное выражение для шаблона кодировка – Идентификатор кодовой страницы максимальное количество строк – Максимальное количество новых строк в секунду, которое может отправить агент Zabbix серверу или Прокси. Этот параметр заменяет опцию 'MaxLinesPerSecond' в zabbix_agentd.conf |
Должен быть настроен как Активная проверка. Например: log[/home/zabbix/logs/logfile,,,100] Более подробную информацию смотрите здесь |
|
logrt[имя файла в формате,<regexp>,<кодировка>,<макс кол-во строк>] | ||||
Мониторинг файлов журналов (логов) с поддержкой ротации логов. | Журнал | имя файла в формате – имя файла в формате [абсолютный путь][имя файла в формате регулярного выражения] regexp – регулярное выражения для шаблона кодировка – Идентификатор кодовой страницы максимальное количество строк – Максимальное количество новых строк в секунду, которое может отправить агент Zabbix серверу или Прокси. Этот параметр заменяет опцию 'MaxLinesPerSecond' в zabbix_agentd.conf |
Должен быть настроен как Активная проверка. Например: logrt[“\home\zabbix\logs\^logfile[0-9]{1,3}$”,,,100] Ротация логов базируется на времени последнего изменения файлов. Более подробную информацию смотрите здесь |
|
eventlog[имя,<regexp>,<важность>,<источник>,<eventid>,<макс. кол-во строк>] | ||||
Мониторинг журналов событий. | Log. | имя – имя журнала событий regexp – регулярное выражение важность – важность события Параметр может принимать следующие значения: “Information”, “Warning”, “Error”, “Failure Audit”, “Success Audit” источник – Имя источника eventid – регулярное выражение максимальное количество строк – Максимальное количество новых строк в секунду, которое агент может отправить Zabbix Серверу или Прокси. Этот параметр заменяет опцию 'MaxLinesPerSecond' в zabbix_agentd.conf |
Должен быть настроен как Активная проверка. Например: eventlog[Application] eventlog[Security,,"Failure Audit",,529|680] eventlog[System,,"Warning|Error"] eventlog[System,,,,^1$] eventlog[System,,,,@TWOSHORT] – здесь регулярное выражение с именем TWOSHORT, определено в веб-интерфейсе с типом результата Результат TRUE и самим выражением ^1$|^70$. |
|
net.if.collisions[if] | ||||
Коллизии Out-of-window. | Количество коллизий. Целочисленное. | if – интерфейс | ||
net.if.in[if,<режим>] | ||||
Входящая статистика по сетевому интерфейсу. | Целочисленное. | if – интерфейс режим – bytes количество байт (по умолчанию) packets количество пакетов errors количество ошибок dropped количество отброшенных пакетов |
Начиная с версии 1.8.6 Zabbix агента поддерживаются мултибайтные имена интерфейса. \\Примеры: net.if.in[eth0,errors] net.if.in[eth0] Вы должны использовать для этого ключа Дельта (изменение в секунду), чтобы получить статистику по байтам в секунду. |
|
net.if.list | ||||
Список сетевых интерфейсов: Тип Состояние IPv4 Описание | Строковое | Поддерживается Zabbix агентом начиная с версии 1.8.1. Начиная с версии 1.8.6 Zabbix агента поддерживаются мултибайтные имена интерфейса. Отключенные интерфесы не добавляются в список.
Обратите внимание, что включение/отключение некоторых компонентов Windows могут изменить порядок имени интерфейса в Windows. |
||
net.if.out[if,<режим>] | ||||
Исходящая статистика по сетевому интерфейсу. | Целочисленное. | if – интерфейс режим – bytes количество байт (по умолчанию) packets количество пакетов errors количество ошибок dropped количество отброшенных пакетов |
Начиная с версии 1.8.6 Zabbix агента поддерживаются мултибайтные имена интерфейса. \\Примеры: net.if.out[eth0,errors] net.if.out[eth0] Вы должны использовать для этого ключа Дельта (изменение в секунду), чтобы получить статистику по байтам в секунду. |
|
net.if.total[if,<режим>] | ||||
Суммарная входящая и исходящая статистика на сетевом интерфейсе. | Целочисленное. | if – интерфейс режим – bytes количество байт (по умолчанию) packets количество пакетов errors количество ошибок dropped количество отброшенных пакетов |
Примеры: net.if.total[eth0,errors] net.if.total[eth0] Вы должны использовать для этого ключа Дельта (изменение в секунду), чтобы получить статистику по байтам в секунду. Обратите внимание отброшенные пакеты поддердивабтся только если both net.if.in и net.if.out работают для отброшенных пакетов на вашей платформе. |
|
net.tcp.dns[<ip>,зона] | ||||
Проверяется работает ли сервис DNS. | 0 – DNS недоступен 1 – DNS работает |
ip – IP адрес DNS сервера (игнорируется) зона – зона для тестирования DNS |
Пример: net.tcp.dns[127.0.0.1,zabbix.com] Интернациональные доменные имена не поддерживаются вместо них, пожалуйста, используйте имена IDNA. |
|
net.tcp.dns.query[<ip>,зона,<тип>] | ||||
Выполняет запрос на указанный тип записи DNS. | В случае успеха возвращает строку символов с типом требуемой информации. | ip – IP адрес DNS сервера (игнорируется) зона – зона для тестирования DNS тип – Тип записи запроса (по умолчанию SOA) |
Пример: net.tcp.dns.query[127.0.0.1, zabbix.com, MX] тип может быть одним из: A, NS, CNAME, MB, MG, MR, PTR, MD, MF, MX, SOA, NULL, WKS, HINFO, MINFO, TXT, SRV Тип записи SRV поддерживается Zabbix агентом начиная с версии 1.8.6. Интернациональные доменные имена не поддерживаются вместо них, пожалуйста, используйте имена IDNA. |
|
net.tcp.listen[порт] | ||||
Проверяется находится ли указанный TCP порт в состоянии LISTEN. | 0 – не находится 1 – находится в состоянии LISTEN |
порт – номер порта TCP | Пример: net.tcp.listen[80] В Linux поддерживается начиная с версии Zabbix агента 1.8.4 |
|
net.tcp.port[<ip>,порт] | ||||
Проверяет, возможно ли создать TCP подключение на указанный номер порта. | 0 – не удалось подключиться 1 – подключение возможно |
ip – IP адрес(по умолчанию 127.0.0.1) порт – номер порта |
Пример: net.tcp.port[,80]может быть использовано для тестирования доступности Веб сервера, запущенного на 80 порту. Старое название: check_port[*] Для простого тестирования производительности TCP используйте net.tcp.service.perf[tcp,<ip>,<порт>] Заметьте, что эти проверки могут привести к возникновению дополнительных сообщений в файлах журналов системных демонов (сессии SMTP и SSH обычно журналируются). |
|
net.tcp.service[сервис,<ip>,<порт>] | ||||
Проверяется запущен ли сервис принимает ли он TCP подключения. | 0 – сервис недоступен 1 – сервис работает |
сервис – один из: ssh, service.ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp ip – IP адрес (по умолчанию 127.0.0.1) порт – номер порта (по умолчанию используется стандартный номер порта для указанного сервиса) |
Например: net.tcp.service[ftp,,45] может быть использовано для проверки доступности FTP сервера на порту 45. Старое название: check_service[*] Обратите внимание, что в версиях Zabbix до 1.8.3 следует использовать service.ntp вместо ntp. Заметьте, что эти проверки могут привести к возникновению дополнительных сообщений в файлах журналов системных демонов (сессии SMTP и SSH обычно журналируются). Проверки зашифрованных протоколов (таких как IMAP на порту 993 или POP на порту 995) в настоящее время не поддерживаются. В качестве альтернативного способа, пожалуйста, используйте net.tcp.port для этих проверок. Проверка LDAP через Windows агента в настоящее время не поддерживается. |
|
net.tcp.service.perf[сервис,<ip>,<порт>] | ||||
Проверяется производительность сервиса | 0 – сервис недоступен секунды – количество секунд потребовавшихся для подключения к сервису |
сервис -один из: ssh, service.ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp ip – IP адрес (по умолчанию 127.0.0.1) порт – номер порта (по умолчанию используется стандартный номер порта для указанного сервиса) |
Пример: net.tcp.service.perf[ssh] может быть использован для проверки скорости ответа SSH сервера. Старое название: check_service_perf[*] Обратите внимание, что в версиях Zabbix до 1.8.3 следует использовать service.ntp вместо ntp. Проверки зашифрованных протоколов (таких как IMAP на порту 993 или POP на порту 995) в настоящее время не поддерживаются. В качестве альтернативного способа, пожалуйста, используйте net.tcp.port для этих проверок. Проверка LDAP через Windows агента в настоящее время не поддерживается. |
|
net.udp.listen[порт] | ||||
Проверяется находится ли указанный UDP порт в состоянии LISTEN. | 0 – не находится 1 – находится в состоянии LISTEN |
порт – номер порта UDP | Пример: net.udp.listen[68] В Linux поддерживается начиная с версии Zabbix агента 1.8.4 |
|
proc.mem[<имя>,<пользователь>,<режим>,<cmdline>] | ||||
Количество выделенной памяти под процесс с указанным именем запущенным под указанным пользователем | Использование памяти процессом. | имя – имя процесса пользователь – имя пользователя (по умолчанию все пользователи) режим – один из: avg, max, min, sum (по умолчанию) cmdline – фильтр по командной строке |
Пример: proc.mem[,root] – использованная память для всех процессов работающих под пользователем “root”. proc.mem[zabbix_server,zabbix] – использованная память для всех процессов zabbix_server запущенных под пользователем zabbix proc.mem[,oracle,max,oracleZABBIX] – максимальное значение использованной памяти процессами запущенными под пользователем oracle и имеющими oracleZABBIX в содержимом командной строки |
|
proc.num[<имя>,<пользователь>,<состояние>,<cmdline>] | ||||
Количество процессов с указанным именем имеющим указанное состояние и запущенными под указанным пользователем | Количество процессов. | имя – имя процесса пользователь – имя пользователя (по умолчанию все пользователи) состояние – одно из: all (по умолчанию), run, sleep, zomb cmdline – фильтр по командной строке |
Пример: proc.num[,mysql] – количество процессов запущенных под пользователем mysql proc.num[apache2,www-data] – количество процессов apache2 запущенных под пользователем www-data proc.num[,oracle,sleep,oracleZABBIX] – количество процессов в режиме sleep запущенных под пользователем oracle и имеющими oracleZABBIX в содержимом командной строки В Windows в качестве аргументов поддерживаются только имя и пользователь. |
|
sensor[устройство,датчик,<режим>] | ||||
Чтение аппаратного датчика. | устройство – имя устройства (если указывается <режим>, то в этом поле нужно вводить регулярное выражение) датчик – имя датчика (если указывается <режим>, то в этом поле нужно вводить регулярное выражение) режим – один из avg, max, min (если этот ключ не указан, устройство и датчик указываются дословно). |
Для Linux 2.4 читает /proc/sys/dev/sensors. Например: sensor[w83781d-i2c-0-2d,temp1] До версии Zabbix 1.8.4 использовался формат датчика sensor[temp1]. Для OpenBSD читает hw.sensors MIB. Например: |
||
system.boottime | ||||
Штамп времени (timestamp) времени загрузки системы. | Целочисленное. | Время в секундах. | ||
system.cpu.intr | ||||
Ошибки устройства. | Целочисленное. | |||
system.cpu.load[<цпу>,<режим>] | ||||
Загрузка ЦПУ. | Загрузка процессора(ов). Число с плавающей точкой. |
cpu – номер CPU (по умолчанию все ЦПУ, поддерживается только “all”) режим – один из: avg1 (по умолчанию),avg5 (среднее за последние 5 минут), avg15 |
Пример: system.cpu.load[] Обратите внимание, возвращаемое значение не процентное отношение. Старое название: system.cpu.loadX |
|
system.cpu.num[<тип>] | ||||
Количество ЦПУ. | Количество доступных процессоров. | тип – один из: online (по умолчанию), max | Пример: system.cpu.num |
|
system.cpu.switches | ||||
Переключение контекста. | Счетчик переключений контекста. | Старое название: system[switches] | ||
system.cpu.util[<cpu>,<тип>,<режим>] | ||||
Утилизация ЦПУ. | Утилизация процессора в процентном отношении | cpu – номер ЦПУ (по умолчанию все ЦПУ) тип – один из: idle, nice, user (по умолчанию), system, kernel, iowait, interrupt, softirq, steal режим – один из: avg1 (по умолчанию),avg5 (среднее значение за последние 5 минут), avg15 |
Старое название: system.cpu.idleX, system.cpu.niceX, system.cpu.systemX, system.cpu.userX Пример: system.cpu.util[0,user,avg5] |
|
system.run[команда,<режим>] | ||||
Запускает указанную команду на удаленном хосте. | Текстовый результат выполнения команды | команда – команда для выполнения режим – один из: wait (по умолчанию ожидание завершения), nowait (без ожидания) |
Пример: system.run[ls -l /] – подробный список файлов в корневой папке. Примечание: Для включения этой функциональности, в настройках агента должна быть опция EnableRemoteCommands=1. |
|
system.hostname[<тип>] | ||||
Возвращается имя хоста. | Строковое значение | тип (только для Windows, игнорируется остальными системами) – netbios (по умолчанию) или host | В Windows значение получается из функции GetComputerName() (для netbios) или функции gethostname() (для host) и из команды “hostname” в других системах.
Пример возвращаемого значения Параметр для этого элемента данных поддерживается начиная с версии 1.8.6. |
|
system.localtime | ||||
Локальное системное время. | Численное или строковое значение. | utc – (по умолчанию) время начиная с начала Эпохи (00:00:00 UTC, Январь 1, 1970), измеряется в секундах. local – время в формате 'гггг-мм-дд,чч:мм:сс.нн,+чч:мм' |
||
system.stat[ресурс,<тип>] | ||||
Статистика виртуальной памяти | Целочисленное | ent – количество процессорных единиц выделенных на ресурс (дробное) kthr,<тип> – информация о состояниях потоков ядра: r – среднее количество запускаемых потоков ядра (дробное) b – среднее количество потоков ядра помещенных в очередь ожидания Менеджера Виртуальный Памяти (дробное) memory,<тип> – информация о использовании виртуальной и реальной памяти: avm – активные виртуальные страницы (целое) fre – размер свободного списка (целое) page,<тип> – информация об ошибках страниц и активности страниц: fi – операции страничного ввода файлов в секунду (дробное) fo – операции страничного вывода файлов в секунду (дробное) pi – pages paged in from paging space (дробное) po – pages paged out to paging space (дробное) fr – pages freed (page replacement) (дробное) sr – количество сканированных страниц алгоритмом замещения страниц (дробное) faults,<тип> – соотношение ловушек и прервываний: in – прерывания устройства (float) sy – системные вызовы (float) cs – переключения контекста потока ядра (дробное) cpu,<тип> – разделеное использование процессорного времени в процентах: us – пользовательское время (дробное) sy – системное время (дробное) id – время простоя (дробное) wa – время простоя в ходе которого система обрабатывала запросы I/O диска/NFS (дробное) pc – количество использованных физических процессоров (дробное) ec – процентное соотношение размеченного занятого пространства (дробное) lbusy – indicates the percentage of logical processor(s) utilization that occurred while executing at the user and system level (дробное) app – отображает количество доступных физических процессоров в распределенном пуле (дробное) disk,<тип> – статистика о дисках: bps – отображает суммарное количество данных переданных (чтением или записью) на диск в байтах в секунду (целое) tps – indicates the number of transfers per second that were issued to the physical disk/tape (дробное) Этот элемент данных поддерживается начиная с версии 1.8.1. |
||
system.swap.in[<устройство>,<тип>] | ||||
Операции ввода в файл подкачки (с устройства в память). | Числовое значение | устройство – устройство файла подкачки (по умолчанию все устройства), тип – один из: count (по умолчанию, количество операций ввода в файл подкачки), sectors (количество секторов ввода в файл подкачки), pages (страниц ввода в файл подкачки). Смотрите поддержку по платформам для получения подробностей по умолчаниям. | Пример: system.swap.in[,bytes] Старое название: swap[in] |
|
system.swap.out[<устройство>,<тип>] | ||||
Операции вывода из файла подкачки (с устройства в память). | Числовое значение | устройство – устройство файла подкачки (по умолчанию все устройства), тип – один из: count (по умолчанию, количество операций вывода из файла подкачки), sectors (количество секторов вывода из файла подкачки), pages (страниц вывода из файла подкачки). Смотрите поддержку по платформам для получения подробностей по умолчаниям. | Пример: system.swap.out[,pages] Старое название: swap[out] |
|
system.swap.size[<устройство>,<режим>] | ||||
Размер swap. | Количество байт или процентное отношение | устройство – устройство swap (по умолчанию все устройства), режим – один из: free (по умолчанию, свободное пространство в swap), total (весь размер swap), pfree (свободное просмотранство в swap, в процентном отношении), pused (занятое просмотранство в swap, в процентном отношении) | Пример: system.swap.size[,pfree] – процентное отношение свободного места в swap Старое название: system.swap.free, system.swap.total |
|
system.uname | ||||
Возвращается подробная информация о хосте. | Строковое значение | Пример возвращаемого значения: FreeBSD localhost 4.4-RELEASE FreeBSD 4.4-RELEASE #0: Tue Sep 18 11:57:08 PDT 2001 [email protected]: /usr/src/sys/compile/GENERIC i386 |
||
system.uptime | ||||
Время работы системы в секундах (uptime) | Количество секунд | Используйте Формат отображения s или uptime для того чтобы увидеть читаемые значения. | ||
system.users.num | ||||
Количество подключенных пользователей. | Количество пользователей | Используется команда who на стороне агента. | ||
vfs.dev.read[<устройство>,<тип>,<режим>] | ||||
Статистика чтения с диска. | Целочисленное значение для тип в: sectors, operations, bytes Дробное для тип в: sps, ops, bps |
устройство – дисковое устройство (по умолчанию все ;1; диски), тип – один из: sectors, operations, bytes, sps, ops, bps (необходимо указывать, какие именно параметры требуется использовать, т.к. они являются разными для различных ОС). состояния sps, ops, bps равны: сектора, операции, байт в секунду соответственно режим – один из: avg1 (по умолчанию),avg5 (среднее за последние 5 минут), avg15. Совместимо только в тип в: sps, ops, bps |
Пример: vfs.dev.read[,operations] Старое название: io[*]
Параметр тип со значениями ops, bps и sps лимитирован 8 устройствами на поддерживаемых платформах (7 устройств +1 для “all” устройств). Поддерживается LVM начиная с Zabbix 1.8.6. До Zabbix 1.8.6, можно было использовать только относительные имена устройств (например, sda), начиная с 1.8.6 опциональный префикс /dev/ может использоваться (например, /dev/sda) |
|
vfs.dev.write[< устройство>,<тип>,<режим>] | ||||
Статистика записи на диск. | Целочисленное значение для тип в: sectors, operations, bytes Дробное для тип в: sps, ops, bps |
устройство – дисковое устройство (по умолчанию все ;1; диски), тип – один из: sectors, operations, bytes, sps, ops, bps (необходимо указывать, какие именно параметры требуется использовать, т.к. они являются разными для различных ОС). состояния sps, ops, bps равны: сектора, операции, байт в секунду соответственно режим – один из: avg1 (по умолчанию),avg5 (среднее за последние 5 минут), avg15. Совместимо только в тип в: sps, ops, bps |
Пример: vfs.dev.write[,operations] Старое название: io[*]
Параметр тип со значениями ops, bps и sps лимитирован 8 устройствами на поддерживаемых платформах (7 устройств +1 для “all” устройств). Поддерживается LVM начиная с Zabbix 1.8.6. До Zabbix 1.8.6, можно было использовать только относительные имена устройств (например, sda), начиная с 1.8.6 опциональный префикс /dev/ может использоваться (например, /dev/sda) |
|
vfs.file.cksum[файл] | ||||
Подсчитывает контрольную сумму для файла | Подсчет контрольной суммы использует алгоритм UNIX cksum. | файл – полный путь к файлу | Пример возвращаемого значения: 1938292000 Пример: vfs.file.cksum[/etc/passwd] Старое название: cksum |
|
vfs.file.exists[файл] | ||||
Проверяется существует ли файл | 0 – файл не существует 1 – файл существует |
файл – полный путь к файлу | Пример: vfs.file.exists[/tmp/application.pid] | |
vfs.file.md5sum[файл] | ||||
Контрольная сумма MD5 для файла | MD5 хэш для файла. | Пример возвращаемого значения: b5052decb577e0fffd622d6ddc017e82 Пример: Лимит в 64МБ для размера файла у этого элемента данных был удален в версии 1.8.6. |
||
vfs.file.regexp[файл,regexp,<кодировка>] | ||||
Поиск строки в файле | Найденная строка или EOF если выражение не найдено | файл – полный путь к файлу regexp – Регулярное выражение GNU кодировка – Идентификатор страницы кодировки |
Пример: vfs.file.regexp[/etc/passwd,zabbix] | |
vfs.file.regmatch[файл,regexp,<кодировка>] | ||||
Поиск строки в файле | 0 – выражение не найдено \\1 – найдено | файл – полный путь к файлу regexp – Регулярное выражение GNU кодировка – Идентификатор страницы кодировки |
Пример: vfs.file.regmatch[/var/log/app.log,error] | |
vfs.file.size[файл] | ||||
Размер файла | Размер в байтах. | файл – полный путь к файлу | Файл должен иметь права чтения для пользователя zabbix
Пример: vfs.file.size[/var/log/syslog] |
|
vfs.file.time[файл,<режим>] | ||||
Информация о времени файла. | Unix timestamp. | файл – полный путь к файлу режим – один из: modify (по умолчанию, время изменения), access – время последнего доступа, change – время последнего изменения |
Пример: vfs.file.time[/etc/passwd,modify] | |
vfs.fs.inode[fs,<режим>] | ||||
Количество inodes | Строковое значение | fs – файловая система режим – один из: total (по умолчанию), free, used, pfree (свободно в процентном отношении), pused (занято в процентном отношении) |
Пример: vfs.fs.inode[/,pfree] Старое название: vfs.fs.inode.free[*], vfs.fs.inode.pfree[*], vfs.fs.inode.total[*] | |
vfs.fs.size[fs,<режим>] | ||||
Размер диска | Размер диска в байтах | fs – файловая система режим – один из: total (по умолчанию), free, used, pfree (свободно в процентном отношении), pused (занято в процентном отношении) |
В случае смонтированного диска, возвращает размер диска локальной файловой системы. Пример: vfs.fs.size[/tmp,free] Старые названия: vfs.fs.free[*], vfs.fs.total[*], vfs.fs.used[*], vfs.fs.pfree[*], vfs.fs.pused[*] | |
vm.memory.size[<режим>] | ||||
Размер памяти | Размер памяти в байтах | режим – один из: total (по умолчанию), shared, free, buffers, cached, pfree, available | Старые названия: vm.memory.buffers, vm.memory.cached, vm.memory.free, vm.memory.shared, vm.memory.total | |
web.page.get[хост,<путь>,<порт>] | ||||
Получает содержимое Веб страницы | Веб страницы в виде текста | хост – имя хоста пусть – путь к HTML документу (по умолчанию /) порт – номер порта (по умолчанию 80) |
Возвращает EOF при ошибке. Пример: web.page.get[www.zabbix.com,index.php,80] |
|
web.page.perf[хост,<путь>,<порт>] | ||||
Получение времени полной загрузки Веб страницы | Время в секундах | хост – имя хоста пусть – путь к HTML документу (по умолчанию /) порт – номер порта (по умолчанию 80) |
Возвращает 0 при ошибке. Пример: web.page.perf[www.zabbix.com,index.php,80] |
|
web.page.regexp[хост,<путь>,<порт>,<regexp>,<длина>] | ||||
Получает первое вхождение регулярного выражения в Веб странице | Совпадающая строка | хост – имя хоста путь – путь к HTML документу (по умолчанию /) порт – номер порта (по умолчанию 80) regexp – регулярное выражение GNU, длина – максимальное количество возвращаемых символов |
Возвращает EOF в случае несовпадения или других неудачах (превышено время ожидания, ошибка подключения и т.п.). Пример: web.page.regexp[www.zabbix.com,index.php,80,OK,2] |
Смотрите этот раздел для понимания различий между элементами данных в пассивном и активном режиме.
В некоторых случаях возвращаемые значения следует рассматривать как относительные значения (изменяемые во времени), но не как абсолютные значения.
5 Параметры специфичные для WIN32
Этот раздел содержит описания параметров поддерживаемых только агентами Zabbix WIN32.
Ключ | |||
---|---|---|---|
▲ | Описание | Возвращаемое значение | Комментарии |
perf_counter[счетчик,<интервал>] | |||
Значение любого счетчика производительности, где в качестве “счетчика” передается путь к счетчику и “интервал” – временной период для хранения среднего значения. | Среднее значение “счетчика” за последние “интервал” секунд. Значение по умолчанию, если не задано, для “интервал” 1. | Мониторинг производительности может быть использован для получения списка счетчиков. До версии 1.6 этот параметр может вернуть правильное значение только для счетчиков, которые возвращают только одно значение (например \System\Threads). Параметр не будет работать со счетчиками, которые возвращают более одного значения – например утилизация ЦПУ. Начиная с версии 1.6 используется интервал, такая проверка каждый раз возвращает среднее значение за последние “интервал” секунд. | |
service_state[*] | |||
Состояние сервиса. В качестве параметра имя сервиса. | 0 – запущен 1 – пауза 2 – ожидание старта 3 – ожидание паузы 4 – ожидание продолжения 5 – ожидание остановки 6 – остановлен 7 – неизвестно 255 – такой сервис не существует |
Параметр должен передавать реальное имя сервиса, такое как в свойствах сервиса в строке “Имя:” или имя EXE файла. | |
services[<тип>,<состояние>,<исключение>] | |||
Список сервисов, разделенных новой строкой или 0, если список пустой. | тип – один из: all (по умолчанию), automatic, manual, disabled состояние – один из: all (по умолчанию), stopped, started, start_pending, stop_pending, running, continue_pending, pause_pending, paused исключение – список служб, исключенных из результата. Исключение сервисов должно быть записано в двойных кавычках и без пробелов. Этот параметр поддерживается начиная с версии 1.8.1. |
Например: services[,started] – список запущенных процессов services[automatic, stopped] – список остановленных процессов, которые должны быть запущены services[automatic, stopped, “service1,service2,service3”] -список остановленных сервисов, которые должны быть запущены, исключая сервисы с именами service1,service2 и service3 |
|
proc_info[<процесс>,<атрибут>,<тип>] | |||
Различная информация о указанном процессе(ах). | <процесс> – имя процесса (как и в параметре proc_cnt[]) <атрибут> – запрашиваемый атрибут процесса. <тип> – тип представления (будет полезно в случае если имеется несколько процессов с одинаковым именем). |
Поддерживаются следующие атрибуты: vmsize – Размер виртуальной памяти в Кбайтах wkset – Размер множества процесса (объем физической памяти используемой процессом) в Кбайтах pf – Количество ошибок страницs ktime – Время процесса ядра в миллисекундах utime – Пользовательское время процесса в миллисекундах io_read_b – Количество байт прочитанных за I/O операции io_read_op – Количество операций чтения для процесса io_write_b – Количество байт прочитанных за I/O операции io_write_op – Количество операций записи для процесса io_other_b – Количество байт переданных процессом при операции, кроме операций выполнения чтения и записи io_other_op – Количество операций ввода/вывода при выполнении процесса, кроме операций чтения и записи gdiobj – Количество объектов GDI использованных процессом userobj – Количество объектов типа USER использованных процессом Допустимые типы: Примеры: |
6 SNMP агент
Zabbix должен быть сконфигурирован с поддержкой SNMP, для того чтобы была возможность получения данных от SNMP агентов.
Следующие шаги должны быть выполнены для того, чтобы добавить мониторинг по SNMP:
Шаг 1
Создайте узел сети для SNMP устройства.
Введите IP адрес. Выберите состояние узла сети “Не контролируется”. Теперь вы можете использовать узел сети один из SNMP шаблонов (Template_SNMPv1_Device, Template_SNMPv2_Device), который автоматически добавит элементы данных. Однако, шаблон, может быть несовместим с узлом сети.
Шаг 2
Узнайте OID SNMP для элементов данных, которые вы хотите мониторить.
После создания узла сети используйте приложение 'snmpwalk' (часть пакета ucd-snmp/net-snmp, который должен быть установлен как часть Zabbix) или эквивалентную утилиту:
shell> snmpwalk <хост или IP хоста> public
Эта команда вернет вам список строк SNMP и их последнее значение. Если команда не работает, то вполне возможно, что 'community' SNMP отличается от стандартного public, в этом случае вам необходимо узнать какое community у вас используется. Затем вы должны пройтись по списку, пока не найдете строку, которую вы хотите мониторить, например, Вы хотели, чтобы наблюдать за количеством входящих байт на 3 порту вашего коммутатора:
interfaces.ifTable.ifEntry.ifOctetsIn.3 = Counter 32: 614794138
Теперь Вы должны использовать команду snmpget, чтобы найти OID для interfaces.ifTable.ifEntry.ifInOctets.3:
shell> snmpget -On 10.62.1.22 interfaces.ifTable.ifEntry.ifOctetsIn.3
где последняя цифра в строке номер порта, который вы хотите мониторить. Команда должна вернуть что-то вроде:
.1.3.6.1.2.1.2.2.1.10.3 = Counter32: 614794138
опять последняя цифра в OID это номер порта.
3COM кажется использует номера портов в сотнях, т.е. порт 1=порту 101, порт 3=порту 103, но Cisco использует обычные номера, т.е. порт 3=3.
Шаг 3
Создание элемента данных для мониторинга.
Итак, теперь вернитесь в Zabbix и выберите элементы данных, выбрав SNMP узел сети созданный ранее. В зависимости от того, использовали ли вы или нет шаблоны при создании узла сети, вы увидите список элементов данных SNMP, связанных с вашим узлом сети или просто окно нового элемента данных. Предположим, что вы собираетесь создать элемент данных самостоятельно с помощью информации, которую вы только что собрали с помощью snmpwalk и snmpget, теперь введите описание на английском (или родном) языке в поле 'Имя' в окне нового элемента данных. Убедитесь, что в поле 'Узел сети' указан ваш коммутатор/маршрутизатор и измените поле “Тип” на “SNMPv1 агент”. Введите community (как правило – public) и введите числовой OID, который вы получили ранее, в поле 'SNMP OID'. Не забудьте начать с точки, т.е. .1.3.6.1.2.1.2.2.1.10.3
Заполните 'Порт SNMP' значением 161 и 'Ключ' любой интуитивно понятной записью, например SNMP-InOctets-BPS. Выберите множитель, если требуется, и заполните 'Интервал обновления' и 'Сохранять историю', если вы хотите, чтобы эти параметры отличались от стандартных. Выставьте 'Состояние' в Активирован, 'Тип информации' в Числовой с плавающей точкой и 'Хранить значение' в Дельта (что важно, ибо в противном случае вы получите кумулятивные значения от SNMP устройства вместо последних изменений).
Теперь сохраните элемент данных и вернитесь назад к узлам сети в Zabbix. Здесь установите состояние SNMP устройства “Контролируется” и перейдите в меню Мониторинг→Последние данные, здесь вы можете увидеть собранные данные по только что созданному элементу данных!
Пример 1
Общий пример
Параметр | Описание |
---|---|
Community | public |
OID | 1.2.3.45.6.7.8.0 (или .1.2.3.45.6.7.8.0) |
Ключ | <Униальная строка, которая будет использована как ссылка в триггерах> Например, ‘my_param’. |
Обратите внимание, что OID может быть задан или в числовом, или строковом представлении. Однако в некоторых случаях, OID строки должны быть преобразованы в числовое представление. Для этих целей может быть использована утилита snmpget:
shell> snmpget -On localhost public enterprises.ucdavis.memory.memTotalSwap.0
Пример 2
Мониторинг Uptime'а
Параметр | Описание |
---|---|
Community | public |
Oid | MIB::sysUpTime.0 |
Ключ | router.uptime |
Тип значения | числовое с плавающей точкой |
Единица измерения | uptime |
Множитель | 0.01 |
7 Простые проверки
Простая проверка обычно используются для мониторинга без использования Агента или для проверки удаленных сервисов. Обратите внимание, что Zabbix агент не является необходимым для простой проверки. За обработку простых проверок отвечает Zabbix сервер (осуществление внешних подключений и т.д.).
Все простые проверки могут принимать один необязательный параметр:
-
порт – номер порта. Если номер порта пропущен, то используется стандартный порт по умолчанию для этого сервиса.
Примеры использования простых проверок:
ftp,155 http http_perf,8080
Список поддерживаемых простых проверок:
Ключ | ||
---|---|---|
▲ | Описание | Возвращаемое значение |
ftp,<port> | ||
Проверяется запущен ли FTP сервер и принимает ли подключения | 0 – FTP сервер недоступен 1 – FTP сервер запущен |
|
ftp_perf,<port> | ||
Проверяется запущен ли FTP сервер и принимает ли подключения | 0 – FTP сервер недоступен В противном случае возвращает количество миллисекунд времени попытки подключения к серверу FTP. |
|
http,<port> | ||
Проверяется запущен ли HTTP сервер и принимает ли подключения | 0 – HTTP сервер недоступен 1 – HTTP сервер запущен |
|
http_perf,<port> | ||
Проверяется запущен ли HTTP (WEB) сервер и принимает ли подключения | 0 – HTTP (WEB) сервер недоступен В противном случае возвращает количество миллисекунд времени попытки подключения к серверу HTTP (WEB). |
|
icmpping[<цель>,<пакеты>,<интервал>,<размер>,<таймаут>] | ||
Проверяется доступен ли сервер по ICMP ping цель – IP адрес или DNS имя узла сети пакеты – количество пакетов интервал – время между успешными пакетами в миллисекундах размер – размер пакета в байтах таймаут – время ожидания в миллисекундах |
0 – не удалось ICMP ping 1 – успешно ICMP ping |
|
icmppingloss[<цель>,<пакеты>,<интервал>,<размер>,<таймаут>] | ||
Возвращает процент потерянных пакетов цель – IP адрес или DNS имя узла сети пакеты – количество пакетов интервал – время между успешными пакетами в миллисекундах размер – размер пакета в байтах таймаут – время ожидания в миллисекундах |
Потери пакетов в процентном отношении | |
icmppingsec[<цель>,<пакеты>,<интервал>,<размер>,<таймаут>,<режим>] | ||
Возвращает время ответа на ICMP ping цель – IP адрес или DNS имя узла сети пакеты – количество пакетов интервал – время между успешными пакетами в миллисекундах размер – размер пакета в байтах таймаут – время ожидания в миллисекундах режим – один из min, max, avg (по умолчанию) |
Количество секунд | |
imap,<port> | ||
Проверяется запущен ли IMAP сервер и принимает ли подключения | 0 – IMAP сервер недоступен 1 – IMAP сервер запущен |
|
imap_perf,<port> | ||
Проверяется запущен ли IMAP сервер и принимает ли подключения | 0 – IMAP сервер недоступен В противном случае возвращает количество секунд времени попытки подключения к серверу IMAP. |
|
ldap,<port> | ||
Проверяется запущен ли LDAP сервер и принимает ли подключения | 0 – LDAP сервер недоступен 1 – LDAP сервер запущен |
|
ldap_perf,<port> | ||
Проверяется запущен ли LDAP сервер и принимает ли подключения | 0 – LDAP сервер недоступен\В противном случае возвращает количество секунд времени попытки подключения к серверу LDAP. | |
nntp,<port> | ||
Проверяется запущен ли NNTP сервер и принимает ли подключения | 0 – NNTP сервер недоступен 1 – NNTP сервер запущен |
|
nntp_perf,<port> | ||
Проверяется запущен ли NNTP сервер и принимает ли подключения | 0 – NNTP сервер недоступен\В противном случае возвращает количество секунд времени попытки подключения к серверу NNTP. | |
ntp,<port> | ||
Проверяется запущен ли NTP сервер и принимает ли подключения | 0 – NTP сервер недоступен 1 – NTP сервер запущен |
|
ntp_perf,<port> | ||
Проверяется запущен ли NTP сервер и принимает ли подключения | 0 – NTP сервер недоступен\В противном случае возвращает количество секунд времени попытки подключения к серверу NTP. | |
pop,<port> | ||
Проверяется запущен ли POP сервер и принимает ли подключения | 0 – POP сервер недоступен 1 – POP сервер запущен |
|
pop_perf,<port> | ||
Проверяется запущен ли POP сервер и принимает ли подключения | 0 – POP сервер недоступен В противном случае возвращает количество секунд времени попытки подключения к серверу POP. |
|
smtp,<port> | ||
Проверяется запущен ли SMTP сервер и принимает ли подключения | 0 – SMTP сервер недоступен 1 – SMTP сервер запущен |
|
smtp_perf,<port> | ||
Проверяется запущен ли SMTP сервер и принимает ли подключения | 0 – SMTP сервер недоступен В противном случае возвращает количество секунд времени попытки подключения к серверу SMTP. |
|
ssh,<port> | ||
Проверяется запущен ли SSH сервер и принимает ли подключения | 0 – SSH сервер недоступен 1 – SSH сервер запущен |
|
ssh_perf,<port> | ||
Проверяется запущен ли SSH сервер и принимает ли подключения | 0 – SSH сервер недоступен В противном случае возвращает количество секунд времени попытки подключения к серверу SSH. |
|
tcp,port | ||
Проверяется запущен ли сервис TCP и принимает ли подключения | 0 – TCP сервис недоступен 1 – TCP сервис запущен |
|
tcp_perf,port | ||
Проверяется запущен ли сервис TCP и принимает ли подключения | 0 – сервис на указанном порту недоступен В противном случае возвращает количество секунд времени попытки подключения к серверу TCP. |
Обработка таймаутов
Zabbix не будет обрабатывать простую проверку дольше чем указано в параметре Таймаут в файле конфигурации Zabbix.
ICMP pings
Zabbix использует внешнюю утилиту fping для обработки ICMP pings. Утилита не распространяется в комплекте с Zabbix и должна быть установлена дополнительно. Если программа отсутствует, имеет неправильные права или её путь не соответствует параметру FpingLocation, указанному в файле конфигурации, ICPM pings (icmpping, icmppingsec и icmppingloss) не будут обработаны.
fping должен быть выполняем под пользователем Zabbix демонов и должен иметь setuid root. Выполните эти команды под пользователем root для настройки правильных полномочий:
shell> chown root:zabbix /usr/sbin/fping shell> chmod 4710 /usr/sbin/fping
Значения по умолчанию параметров для проверок по ICMP:
Параметр | Значение | Описание | Флаг в fping | Мин | Макс |
---|---|---|---|---|---|
пакетов | 3 | количество пакетов до цели | -c | 1 | 10000 |
интервал | 25 | миллисекунд, по умолчанию в “fping” | -p | 20 | |
размер | 56 или 68 | байт, по умолчанию в “fping”; 56 байт для x86, 68 байт для x86_64 | -b | 24 | 65507 |
таймаут | 500 | миллисекунд, по умолчанию в “fping” | -t | 50 |
Zabbix записывает во временный файл адреса для проверки, которые затем будут переданы утилите fping. Если элементы данных имеют разные параметры, то только те которые имеют идентичные параметры записываются в один файл.
8 Внутренние проверки
Внутренняя проверка позволяют контролировать внутреннее состояние Zabbix. Внутренние проверки подсчитываются самим Zabbix сервером.
Ключ | ||||
---|---|---|---|---|
▲ | Описание | Комментарии | ||
zabbix[boottime] | ||||
Время запуска процесса Zabbix сервера в секундах. | В секундах, начиная с Эпохи. | |||
zabbix[history] | ||||
Количество значений записанных в таблицу HISTORY | Не используйте при MySQL InnoDB, Oracle или PostgreSQL | |||
zabbix[history_log] | ||||
Количество значений записанных в таблицу HISTORY_LOG | Не используйте при MySQL InnoDB, Oracle или PostgreSQL! Этот элемент данных поддерживается начиная с версии 1.8.3. |
|||
zabbix[history_str] | ||||
Количество значений записанных в таблицу HISTORY_STR | Не используйте при MySQL InnoDB, Oracle или PostgreSQL! | |||
zabbix[history_text] | ||||
Количество значений записанных в таблицу HISTORY_TEXT | Не используйте при MySQL InnoDB, Oracle или PostgreSQL! Этот элемент данных поддерживается начиная с версии 1.8.3. |
|||
zabbix[history_uint] | ||||
Количество значений записанных в таблицу HISTORY_UINT | Не используйте при MySQL InnoDB, Oracle или PostgreSQL! Этот элемент данных поддерживается начиная с версии 1.8.3. |
|||
zabbix[trends] | ||||
Количество значений записанных в таблицу TRENDS | Не используйте при MySQL InnoDB, Oracle или PostgreSQL! | |||
zabbix[trends_uint] | ||||
Количество значений записанных в таблицу TRENDS_UINT | Не используйте при MySQL InnoDB, Oracle или PostgreSQL! Этот элемент данных поддерживается начиная с версии 1.8.3. |
|||
zabbix[items] | ||||
Количество элементов данных в базе данных Zabbix | ||||
zabbix[items_unsupported] | ||||
Количество не поддерживаемых элементов данных в базе данных Zabbix | ||||
zabbix[triggers] | ||||
Количество триггеров в базе данных Zabbix. | ||||
zabbix[log] | ||||
Сохраняет сообщения предупреждений и ошибок генерируемых Zabbix сервером. | Тип – символьный. Добавьте этот элемент данных, чтобы записывать внутренние сообщения Zabbix. | |||
zabbix[process,<тип>,<режим>,<состояние>] | ||||
Время конкретного процесса Zabbix или группы процессов (указывается через <тип> и <режим>), потраченное на <состояние> в процентах. Расчет производится только за последнюю минуту.
Если в качестве <режим> указано номер процесса Zabbix, который не запущен (например, при 5 запущенных пуллерах, в <режиме> указано 6), такой элемент данных переходит в состояние не поддерживается. |
В данный момент поддерживаются следующие типы процессов: alerter – процесс для отправки уведомлений configuration syncer – процесс управления кешем конфигурационных данных в оперативной памяти db watchdog – процесс для отправки предупреждающего сообщения, в случае если БД недоступна discoverer – процесс для обнаружения устройств escalator – процесс для эскалации в действиях history syncer – процесс, который записывает историю в БД http poller – пуллер веб мониторинга housekeeper – процесс для удаления старых данных истории icmp pinger – пуллер для проверок icmpping ipmi poller – пуллер для проверок по IPMI node watcher – процесс для отправки данных истории и изменений в конфигурации между нодами self-monitoring – процесс для сбора внутренней статистики сервера poller – нормальный пуллер для пассивных проверок proxy poller – пуллер для пассивных прокси timer – процесс для обработки функций триггеров, связанных со временем, и для обслуживания trapper – процесс-улавливатель для активных проверок, трапов, связей между нодами и прокси unreachable poller – пуллер для недоступных устройств Примечание: Вы также можете видеть эти типы процессов в файле журнала сервера. Возможные режимы: Возможные состояния: Примеры: Этот элемент данных поддерживается начиная с версии 1.8.5. |
|||
zabbix[proxy,<имя>,<параметры>] | ||||
Информация доступная по Прокси. | <имя> – Имя прокси Список поддерживаемых параметров (<параметры>): lastaccess – штамп времени последнего оповещения доступности от Прокси Например, zabbix[proxy,”Germany”,lastaccess] Функция триггера fuzzytime() может быть использована для проверки доступности прокси. |
|||
zabbix[queue,<от>,<до>] | ||||
Количество наблюдаемых элементов данных в Очереди, у которых задержка <от> и <до> секунд включительно. | <от> – по умолчанию: 6 секунд <до> – по умолчанию: бесконечно Поддерживаются Суффиксы s,m,h,d,w для этих параметров. Параметры <от> и <до> поддерживаются начиная с версии 1.8.3. |
|||
zabbix[requiredperformance] | ||||
Требуемое быстродействие Zabbix сервера, имеются ввиду новые значения в секунду. | Приблизительно соответствует значению “Требуемое быстродействие сервера, новые значения в секунду” на странице Отчеты > Состояние Zabbix. Поддерживается начиная с версии 1.6.2. | |||
zabbix[uptime] | ||||
Uptime процесса Zabbix сервера в секундах. | ||||
zabbix[wcache,<кэш>,<режим>] | ||||
Кэш | Режим | |||
values | all | Количество значений обрабатываемых Zabbix сервером, исключая не поддерживаемые | Счетчик. | |
float | Счетчик. | |||
uint | Счетчик. | |||
str | Счетчик. | |||
log | Счетчик. | |||
text | Счетчик. | |||
not supported | Количество обрабатываемых неподдерживаемых элементов данных. | Счетчик. Этот элемент данных поддерживается начиная с версии 1.8.6. |
||
history | pfree | Свободное место в буфере истории в процентах. | Низкое количество свободного места отражает проблемы с производительностью на стороне базы данных. | |
total | ||||
used | ||||
free | ||||
trend | pfree | |||
total | ||||
used | ||||
free | ||||
text | pfree | |||
total | ||||
used | ||||
free | ||||
zabbix[rcache,<кэш>,<режим>] | ||||
Кэш | Режим | |||
buffer | pfree | |||
total | ||||
used | ||||
free |
9 Агрегированные проверки
Агрегированные проверки не требуют, чтобы агент был запущен на наблюдаемом узле сети. Zabbix сервер собирает агрегированную информацию делая прямые запросы к базе данных.
Синтаксис ключа агрегированного элемента данных
groupfunc["Группа узлов сети","Ключ элемента данных","функция элемента данных","параметр"]
Поддерживаемые параметры функции группы:
Функция группы | Описание |
---|---|
grpavg | Среднее значение |
grpmax | Максимальное значение |
grpmin | Минимальное значение |
grpsum | Сумма значений |
Поддерживаемые параметры элементов данных:
Функция элемента данных | Описание |
---|---|
avg | Среднее значение |
count | Количество значений |
last | Последнее значение |
max | Максимальное значение |
min | Минимальное значение |
sum | Сумма значений |
Примеры ключей для агрегированных проверок:
Пример 1
Суммарное значение размера дисков для группы хостов 'MySQL Servers'.
grpsum["MySQL Servers","vfs.fs.size[/,total]","last","0"]
Пример 2
Средняя загрузка процессора для группы узлов сети 'MySQL Servers'.
grpavg["MySQL Servers","system.cpu.load[,avg1]","last","0"]
Пример 3
Среднее (5мин) количество запросов в секунду для группы узлов сети 'MySQL Servers'
grpavg["MySQL Servers","mysql.qps","avg","300"]
10 Внешние проверки
Внешние проверки это проверки выполняемые Zabbix сервером путем выполнения скрипта или бинарного файла.
Внешняя проверка не требует никакого запущенного агента на наблюдаемом узле сети.
Синтаксис ключа элемента данных:
скрипт[параметры] * скрипт – имя скрипта. * параметры – список параметров командной строки. Параметры будут переданы командной строке без каких либо изменений.
Если вы не планируете передавать какие либо параметры в скрипт, вы можете использовать следующие записи:
скрипт[] или скрипт <- этот упрощенный синтаксис поддерживается Zabbix начиная с версии 1.8.1.
Zabbix сервер найдет и выполнит команду в директории, указанной в параметре ExternalScripts конфигурационного файла zabbix_server.conf. Команда будет выполнена от пользователя под которым работает Zabbix сервер, поэтому необходимые права доступа или переменные окружения должны быть предусмотрены в самом скрипте, если необходимо, и разрешения на команду должны быть даны пользователю для их выполнения. Команды доступны только те, которые размещены в указанной директории.
Первый параметр командной строки это IP адрес или DNS имя, другие параметры заменяются параметрами.
Zabbix использует первую строку (конечные пробелы удаляются) в стандартный вывод скрипта как значение. Остальные строки, стандартная ошибка и код выхода отбрасываются.
Пример 1
Выполнить скрипт check_oracle.sh с параметрами ”-h 192.168.1.4”. DNS имя хоста 'www1.company.com'.
check_oracle.sh[-h 192.168.1.4]
Zabbix будет выполнять:
check_oracle.sh www1.company.com -h 192.168.1.4.
11 Проверки по SSH
Zabbix должен быть сконфигурирован с поддержкой SSH2.
SSH проверки используются для безагентного мониторинга. Обратите внимание, что Zabbix агент не требуется для проверок по SSH.
Ключ | Описание | Комментарии |
---|---|---|
ssh.run[<уникальное короткое описание>,<ip>,<порт>,<кодировка>] | Выполняет команду используя SSH сессию |
12 Проверки по Telnet
Проверки по Telnet используются для безагентного мониторинга. Zabbix агент не требуется для проверок через Telnet.
Актуальные команды для выполнения должны быть помещены в поле Выполняемый скрипт в настройках элемента данных. Несколько команд могут быть выполнены одна за другой, разместив их каждую в новой строке.
До версии 1.8.1, поддерживаются строковые символы, которые могут заканчиваться на:
-
$
-
#
-
>
В версии 1.8.2 добавлено поддержку дополнительного символа:
-
%
Ключ | Описание | Комментарии |
---|---|---|
telnet.run[<уникальное короткое описание>,<ip>,<порт>,<кодировка>] | Выполнение команды на удаленном устройстве используя telnet соединение |
13 Вычисляемые элементы данных
С вычисляемыми элементами данных вы можете создавать вычисления на основе других элементов данных. Таким образом, вычисляемые элементы данных используются для создания виртуальных источников данных. Значения элементов данных периодически вычисляются, базируясь на арифметическом выражении.
Результирующие данные будут записаны в базу данных Zabbix, как и для любого другого элемента данных – это значит, что сохраняются как значения истории так и тендеций для более быстрого отображения графика. Вычисляемые элементы данных могут быть использованы в выражениях триггеров.
Для использования вычисляемых элементов данных, выберите тип элемента данных Вычисляемый. Ключ является уникальным идентификатором элемента данных (в пределах узла сети). Вы можете создать любое имя ключа, используя допустимые символы. Определение расчета нужно ввести в поле Формула (называется Выражение в версиях 1.8.1 и 1.8.2). Не существует практически никакой взаимосвязи между формулой и ключем. Параметры ключа никаким образом не используются в формуле – переменные могут быть переданы в формулу с помощью пользовательских макросов.
Корректный синтаксис для простой формулы имеет вид:
func(<ключ>,<параметр1>,<параметр2>,...)
Где:
Аргумент | Определение |
---|---|
func | Одна из функций, поддерживаемых выражениями триггеров: last, min, max, avg, count и др. |
узел сети:ключ | Ключ другого элемента данных, данные которого вы хотите использовать. Может быть определен как ключ или имя_хоста:ключ. Примечание: Заключение всего ключа в двойные кавычки (”…”) настоятельно рекомендуется во избежании неправильного разбора пробелов или разделителей в ключе. Так же если в ключе имеются двойные кавычки, то кавычки должныть быть экранированы бэкслешем (\). Смотрите Примеры 5 и 6 ниже. |
параметр(ы) | Любые дополнительные параметры, которые могут потребоваться. Смотрите Пример 5 ниже. |
Поддерживаемые символы для имени узла сети:
a..zA..Z0..9 ._-
Поддерживаемые символы для ключа:
a..zA..Z0..9.,_
Поддерживаемые символы для функции:
a..zA..Z0..9_
В отличии от выражений триггеров, процесс Zabbix вычисляет элементы данных в соответствии с интервалом обновления, а не при получении нового значения. Также, если вы меняете ключ элемента данных у элемента ссылки, вы должны вручную обновить все формулы, где используется этот элемент данных.
Вычисляемый элемент данных может перейти в состояние не поддерживаемого в нескольких случаях:
-
ссылка на элемент данных не найдена
-
нет данных для вычисления функции
-
деление на ноль
-
использование некорректного синтаксиса
Пример 1
Вычисление процентного отношения свободного места на диске в '/'.
Используем функцию last:
100*last("vfs.fs.size[/,free]")/last("vfs.fs.size[/,total]")
Zabbix возьмет последние значения для свободного и всего места на диске, и вычислит процентное отношение по указанной выше формуле.
Пример 2
Вычисление среднего количества значений за 10 минут обработанных Zabbix.
Используем функцию avg:
avg("Zabbix Server:zabbix[wcache,values]",600)
Следует отметить, что использование вычисляемых элементов данных с большим временным периодом может повлиять на производительность Zabbix сервера.
Пример 3
Вычисление полной пропускной способности на интерфейсе eth0.
Сумма двух функций:
last("net.if.in[eth0,bytes]")+last("net.if.out[eth0,bytes]")
Пример 4
Вычисление процента входящего трафика.
Другое сложное выражение:
100*last("net.if.in[eth0,bytes]")/(last("net.if.in[eth0,bytes]")+last("net.if.out[eth0,bytes]"))
Пример 5
Вычисление количества записей в файле журнала за последние 10 минут.
Примите к сведению, то как двойные кавычки экранируются внутри ключа и первого параметра функции, если требуется:
count("logrt[\"/tmp/test.log\",\"some words pattern\"]",600)
Пример 6
Возможно использование аггрегированных элементов данных в вычисляемых элементах данных.
Примите к сведению, то как экранируются двойные кавычки внутри заключенного в кавычки ключа:
last("grpsum[\"video\",\"net.if.out[eth0,bytes]\",\"last\",\"0\"]") / last("grpsum[\"video\",\"nginx_stat.sh[active]\",\"last\",\"0\"]")
10 Пользовательские параметры
Функциональность Zabbix агентов может быть расширена путем добавления пользовательских параметров (параметр конфигурации UserParameter) в файле конфигурации агента. Как только пользовательские параметры определены они могут быть использованы так же, как и любые другие элементы данных агента – по ключу, указанному в параметре.
Пользовательские параметры это команды, которые выполняются Zabbix агентом. В операционных системах UNIX используется интерпретатор командной строки /bin/sh.
Смотрите пошаговое руководство по использованию пользовательских параметров.
1 Простые пользовательские параметры
Для того, чтобы задать новый параметр для мониторинга, должна быть добавлена всего одна строка в файл конфигурации Zabbix агента, после чего агента следует перезапустить.
Пользовательский параметр имеет следующий синтаксис:
UserParameter=ключ,команда
Параметр | Описание |
---|---|
Ключ | Уникальный ключ элемента данных. |
Команда | Команда, которая будет выполнена для получения значения ключа. |
Пример 1
Простая команда
UserParameter=ping,echo 1
Агент всегда будет возвращать '1' для элемента данных с ключом 'ping'.
Пример 2
Более сложный пример
UserParameter=mysql.ping,mysqladmin -uroot ping | grep -c alive
Агент будет возвращать '1' если MySQL сервер доступен, '0' – в противном случае.
2 Гибкие пользовательские параметры
Гибкие пользовательские параметры могут быть использованы для большей управляемости и гибкости.
Гибкий пользовательский параметр:
UserParameter=ключ[*],команда
Параметр | Описание |
---|---|
Ключ | Уникальный ключ элемента данных. [*] определяет, что ключ может принимать параметры. |
Команда | Команда, которая будет выполнена для получения значения ключа. Zabbix агент производит анализ содержимого внутри квадратных скобок [] и заменяет им переменные $1,…,$9 в команде. Переменная $0 будет заменена оригинальной командой (до расширения $0,…,$9) для выполнения. |
Пример 1
Очень простой пример
UserParameter=ping[*],echo $1
Мы можем создать неограниченное количество элементов данных для наблюдения за чем угодно, указав в таком формате ping[что угодно].
-
ping[0] – будет всегда возвращать ‘0’
-
ping[aaa] – будет всегда возвращать ‘aaa’
Пример 2
Давайте добавим больше смысла!
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive
Этот параметр может быть использован для мониторинга доступности баз данных MySQL. В качестве параметров мы можем передать имя пользователя и пароль. Ключ элемента данных в таком случае выглядит вот так:
mysql.ping[zabbix,our_password]
Пример 3
Сколько строк в файле, которые соответствуют регулярному выражению?
UserParameter=wc[*],grep -c "$2" $1
Этот параметр может быть использован для подсчета количества строк в файле.
wc[/etc/passwd,root] wc[/etc/services,zabbix]
11 Счетчики производительности в Windows
Счетчики производительности в Windows могут быть эффективно контролируемы при использовании perf_counter[].
Например:
perf_counter["\Processor(0)\Interrupts/sec"]
или
perf_counter["\Processor(0)\Interrupts/sec", 10]
Для того чтобы получить полный список доступных счетчиков производительности для мониторинга вы можете запустить:
typeperf -qx
К сожалению, в зависимости от настроек местоположения, именования счетчиков производительности могут быть разными на разных серверах Windows. Это может ввести определенные проблемы при создании шаблонов для Windows, имеющих разные настройки местоположения.
Каждый счетчик производительности может быть переведен в цифровую форму, которая является уникальной и независимой от языковых настроек.
Выполните regedit, затем найдите HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009.
Реестр содержит информацию:
1 1847 2 System 4 Memory 6 % Processor Time 10 File Read Operations/sec 12 File Write Operations/sec 14 File Control Operations/sec 16 File Read Bytes/sec 18 File Write Bytes/sec ....
Таким образом, для того, чтобы перевести строку имени счетчика производительности в числовую форму,
найдите соответствующие цифры для каждой части счетчика производительности, например:
System -> 2 % Processor Time -> 6 \System\% Processor Time
Затем используйте эти цифры, чтобы создать числовой формат:
\2\6
1 Простые пользовательские параметры
Для того, чтобы задать новые параметры для мониторинга, должна быть добавлена всего одна строка в файл конфигурации Zabbix агента и агент должен быть перезапущен.
12 Триггеры
Триггеры это логические выражения, которые отображают собой состояние системы.
Триггер может принимать следующие значения:
Значение | Описание |
---|---|
ПРОБЛЕМА | Обычно означает, что что-то случилось. Например, высокая загрузка процессора. Называлось TRUE в предыдущих версиях Zabbix. |
ОК | Это нормальное состояние для триггера. Называлось FALSE в предыдущих версиях Zabbix. |
НЕИЗВЕСТНО | Означает что Zabbix не может высчитать выражение триггера. Это может произойти по нескольким причинам: – сервер недоступен – выражение триггера не может быть высчитано – выражение триггера было недавно изменено |
1 Выражения у триггеров
Используемые в триггерах выражения являются очень гибкими. Вы можете использовать их для создания сложных логических тестов, учитывая статистику по мониторингу.
1.1 Операторы выражений
Следующие операторы поддерживаются для триггеров (представлены по убыванию приоритета выполнения):
Приоритет | Оператор | Определение |
---|---|---|
1 | / | Деление |
2 | * | Умножение |
3 | – | Арифметический минус |
4 | + | Арифметический плюс |
5 | < | Менее чем. Этот оператор может быть представлен в виде: A<B ⇔ (A<=B-0.000001) |
6 | > | Более чем. Этот оператор может быть представлен в виде: A>B ⇔ (A>=B+0.000001) |
7 | # | Не равен. Этот оператор может быть представлен в виде: A#B ⇔ (A<=B-0.000001) | (A>=B+0.000001) |
8 | = | Равен. Этот оператор может быть представлен в виде: A=B ⇔ (A>B-0.000001) & (A<B+0.000001) |
9 | & | Логическое И |
10 | | | Логическое ИЛИ |
2 Функции триггеров
Функции триггеров позволяют ссылаться на собранные значения, текущее время и другие факторы.
2.1 Функции основанные на времени
Состояние (выражение) триггера пересчитывается каждый раз когда Zabbix сервер получает новое значение данных, если это значение данных является частью выражения. Если в выражении триггера используются функции относящиеся ко времени такой триггер пересчитывается каждые 30 секунд.
Функции относящиеся ко времени:
-
nodata()
-
date()
-
dayofmonth()
-
dayofweek()
-
time()
-
now()
2.2 Список функций триггеров
Поддерживаются следующие функции:
2) Строковые аргументы должны быть заключены в двойные кавычки. В противном случае они могут быть не верно интерпретированы.
▼ | ФУНКЦИЯ | Аргумент(ы) | Типы поддерживаемых значений |
---|---|---|---|
Описание | |||
abschange | игнорируется | float, int, str, text, log | |
Возвращает абсолютную разницу между последним и предыдущим значениями. Для строк: 0 – значения равны 1 – значения различны |
|||
avg | секунды или #num | float, int | |
Среднее значение за период времени. Параметр определяет продолжительность периода в секундах. Эта функция принимает секунды, необязательный параметр time_shift. Это бывает полезно, когда нужно сравнить текущее среднее значение со средним значением time_shift секунд ранее. Например, avg(3600,86400) вернет среднее значение за один час одним днем ранее. Параметр time_shift поддерживается начиная с Zabbix 1.8.2 |
|||
change | игнорируется | float, int, str, text, log | |
Возвращает разницу между последним и предыдущим значениями. Для строк: 0 – значения равны 1 – значения различны |
|||
count | секунды или #num | float, int, str, text, log | |
Количество значений данных из истории за период времени в секундах или количество последних #num значений попадающих под условие. Функция может принимать второй необязательный параметр шаблон, третий параметр оператор, и четвертый параметр time_shift. Например, count(600,12) вернет точное количество значений равных '12' из истории за промежуток времени 10 минут. Элементы данных с типом Целые числа: точное совпадение Числа с плавающей запятой: совпадение с точностью до 0.00001 Строки, текст и журналы элементы данных: поддерживаются операторы like (по умолчанию), eq, ne. Поддерживаемые операторы: eq – равно ne – не равно gt – больше ge – больше или равно lt – меньше le – меньше или равно like (только текстовый поиск) – совпадение, если содержит шаблон. Например, count(600,12,"gt") вернет точное количество значений больших чем '12' из истории за последние 10 минут. Другой пример: count(#10,12,"gt",86400) вернет точное количество значений больших '12' из истории из последних 10 значений 24 часами ранее. Если требуется подсчитывать произвольные значения, например, за последние 600 секунд 24 часами ранее, либо count(600,,86400) или count(600,,,86400) должно быть использовано в зависимости от того что требуется подсчитать – текст или числа, соответственно. Параметр #num поддерживается начиная с Zabbix 1.6.1. Параметр time_shift и строковые операторы поддерживаются начиная с Zabbix 1.8.2 |
|||
date | игнорируется | любые | |
Возвращает текущую дату в формате ГГГГММДД. Например: 20031025 |
|||
dayofmonth | игнорируется | любые | |
Возвращает день месяца из диапазона от 1 до 31. Эта функция поддерживается начиная с 1.8.5 |
|||
dayofweek | игнорируется | любые | |
Возвращает день недели из диапазона от 1 до 7. Пн – 1, Вс – 7. | |||
delta | секунды или #num | float, int | |
То же самое, что и max()-min(). Начиная с версии Zabbix 1.8.2 эта функция поддерживает секунды, необязательный параметр time_shift. Смотрите функцию avg для примера использования. |
|||
diff | игнорируется | float, int, str, text, log | |
Возвращает: 1 – последнее и предыдущее значения различаются 0 – наоборот |
|||
fuzzytime | секунды | float, int | |
Возвращает 1 если штамп времени (значения элемента данных) не отличается от времени на Zabbix сервере более чем на N секунд, 0 – наоборот. Обычно применяется с system.localtime, для проверки синхронно ли локальное время с локальным временем Zabbix сервера. |
|||
iregexp | 1-ый – строка, 2-ой – секунды или #num | str, log, text | |
Это – не чувствительный к регистру аналог функции regexp. | |||
last | секунды или #num | float, int, str, text, log | |
Последнее (самое новое) значение. Параметр: секунды – игнорируется #num – N-ное значение Например, last(0) всегда равняется last(#1) last(#3) – третье из последних значений Функция поддерживает необязательный параметр time_shift. Например: last(0,86400) вернет последнее значение одним днем ранее. Zabbix не гарантирует точный порядок значений, если за одну секунду имеется более одного значения. Параметр #num поддерживается начиная с Zabbix 1.6.2. Параметр time_shift поддерживается начиная с Zabbix 1.8.2. |
|||
logeventid | строка | log | |
Проверяет соответствие регулярному выражению Event ID последней записи в журнале. Параметр определяет регулярное выражение в формате расширенных регулярных выражений POSIX. Возвращает: 0 – не соответствует 1 – соответствует Эта функция поддерживается начиная с версии 1.8.5 |
|||
logseverity | игнорируется | log | |
Возвращает важность последней записи в журнале (логе). Параметры игнорируются. 0 – важность по умолчанию N – важность (целое число, полезно для журналов событий Windows). Zabbix берет важность журнала из колонки Информация из журнала событий Windows. |
|||
logsource | строка | log | |
Проверяет совпадает ли последняя запись в логе с параметром. 0 – не совпадает 1 – совпадает Обычно используется для журнала событий Windows. Например, logsource["VMWare Server"] |
|||
max | секунды или #num | float, int | |
Максимальное значение за период времени. Параметр определяет период времени в секундах. Начиная с версии Zabbix 1.8.2, функция поддерживает секунды, необязательный параметр time_shift. Смотрите функцию avg для примера использования. |
|||
min | секунды или #num | float, int | |
Минимальное значение за период времени. Параметр определяет период времени в секундах. Начиная с версии Zabbix 1.8.2, функция поддерживает секунды, необязательный параметр time_shift. Смотрите функцию avg для примера использования. |
|||
nodata | секунды | любые | |
Возвращает: 1 – если не было получено данных за указанный промежуток времени в секундах. Период не может быть меньше 30 секунд. 0 – наоборот |
|||
now | игнорируется | любые | |
Возвращает количество секунд с начала Эпохи (00:00:00 UTC, 1 Января 1970 г.). | |||
prev | игнорируется | float, int, str, text, log | |
Возвращает предыдущее значение. Параметр игнорируется. Аналог last(#2) |
|||
regexp | 1-ый – строка, 2-ой – секунды или #num | str, log, text | |
Проверяет, соответствует ли последнее значение регулярному выражению. Параметр должен задаваться регулярным выражением в формате расширенных регулярных выражений POSIX. Второй необязательный параметр это количество секунд или количество строк для анализа. В этом случае будет обработано более одного значения. Эта функция чувствительная к регистру. Возвращает: 1 – если найдено 0 – наоборот |
|||
str | 1-ый – строка, 2-ой – секунды или #num | str, log, text | |
Ищет строку в последнем значении. Параметр определяет строку для поиска. Эта функция чувствительная к регистру! Второй необязательный параметр это количество секунд или количество строк для анализа. В этом случае будет обработано более одного значения. Возвращает: 1 – если найдено 0 – если не найдено |
|||
strlen | секунды или #num | str, log, text | |
Длина последнего (наиболее нового) значения в символах (не в байтах). Параметры такие же, как и для функции last. Например, strlen(0) идентично strlen(#1) strlen(#3) – длина третьего наиболее нового значения strlen(0,86400) – длина наиболее нового значения один день назад. Эта функция поддерживается начиная с версии Zabbix 1.8.4. |
|||
sum | секунды или #num | float, int | |
Сумма значений за период времени. Параметр определяет период времени в секундах. Начиная с версии Zabbix 1.8.2, функция поддерживает секунды, необязательный параметр time_shift. Смотрите функцию avg для примера использования. |
|||
time | игнорируется | любые | |
Возвращает текущее время в формате ЧЧММСС. Например: 123055 |
Большинство числовых функций принимают количество секунд в качестве аргумента. Вы также можете использовать префикс # чтобы указать, что аргумент имеет другое значение:
ВЫЗЫВАЕМАЯ ФУНКЦИЯ | СМЫСЛ |
---|---|
sum(600) | Сумма всех значений в течении 600 секунд |
sum(#5) | Сумма последних 5 значений |
Функция last имеет особый смысл для значений с префиксом решетки – функция выбирает N-ное предыдущее значение. Поэтому из представленных значений (выстроены от последних к предыдущим) 3, 7, 2, 6, 5, функция last(#2) вернет 7 и функция last(#5) вернет 5.
Выражения триггеров поддерживают использование различных множителей, такие как суффиксы.
Простое полезное выражение может выглядеть так:
{<сервер>:<ключ>.<функция>(<параметр>)}<оператор><константа>
Параметр должен быть предоставлен даже для тех функций, которые его игнорируют. Например: last(0)
Пример 1
Высокая загрузка процессора на www.zabbix.com
{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5
'www.zabbix.com:system.cpu.load[all,avg1]' передает короткое имя наблюдаемого параметра.
Эта строка указывает, что контролируется сервер 'www.zabbix.com' и ключ 'system.cpu.load[all,avg1]'. Используя функцию 'last()', мы ссылаемся на самое последнее значение. И наконец '>5' означает, что триггер будет определен как ПРОБЛЕМА всякий раз, когда последнее значение загрузки процессора на сервере www.zabbix.com будет превышать 5.
Пример 2
www.zabbix.com перегружен
{www.zabbix.com:system.cpu.load[all,avg1].last(0)}>5|{www.zabbix.com:system.cpu.load[all,avg1].min(600)}>2
Это выражение будет определено как ПРОБЛЕМА, когда либо текущая загрузка процессора больше 5, либо загрузка процессора больше 2 за последние 10 минут.
Пример 3
Изменился файл /etc/passwd
Используем функцию diff:
{www.zabbix.com:vfs.file.cksum[/etc/passwd].diff(0)}>0
Это выражение будет определено как ПРОБЛЕМА, когда предыдущее значение контрольной суммы файла /etc/passwd отличается от последнего значения.
Аналогичные выражения могут быть полезны для мониторинга изменений в важных файлах, таких как /etc/passwd, /etc/inetd.conf, /kernel и других.
Пример 4
Кто-то скачивает большой файл из Интернет
Используем функцию min:
{www.zabbix.com:net.if.in[eth0,bytes].min(300)}>100K
Это выражение будет определено как ПРОБЛЕМА, когда сумма полученных байт за последних 5 минут на интерфейсе eth0 превышает 100КБ.
Пример 5
Оба узла кластера SMTP серверов недоступны
Примечание, в выражении используются два разных узла сети:
{smtp1.zabbix.com:net.tcp.service[smtp].last(0)}=0&{smtp2.zabbix.com:net.tcp.service[smtp].last(0)}=0
Это выражение будет определено как ПРОБЛЕМА, когда оба SMTP сервера недоступны smtp1.zabbix.com и smtp2.zabbix.com.
Пример 6
Zabbix агент нуждается в обновлении
Используем функцию str():
{zabbix.zabbix.com:agent.version.str("beta8")}=1
Это выражение будет определено как ПРОБЛЕМА, когда версия Zabbix агента содержит в себе 'beta8' (возможно 1.0beta8).
Пример 7
Сервер недоступен
{zabbix.zabbix.com:icmpping.count(1800,0)}>5
Выражение правдиво, если узел сети “zabbix.zabbix.com" недоступен более 5 раз за последние 30 минут.
Пример 8
Нет получения данных за последние 3 минуты
Используем функцию nodata():
{zabbix.zabbix.com:tick.nodata(180)}=1
‘tick’ должен иметь тип ‘Zabbix trapper’’. Для того чтобы этот триггер заработал, элемент данных ‘tick’ должен существовать. Узел сети должен периодически отправлять данные этому элементу данных используя zabbix_sender. Если не было получено данных за последние 180 секунд, значение триггера будет определено как ПРОБЛЕМА.
Пример 9
Активность ЦПУ в ночное время
Используем функцию time():
{zabbix:system.cpu.load[all,avg1].min(300)}>2&{zabbix:system.cpu.load[all,avg1].time(0)}>000000&{zabbix:system.cpu.load[all,avg1].time(0)}<060000
Триггер может быть определен как ПРОБЛЕМА только в ночное время (00:00-06:00).
Пример 10
Проверяет, если локальное время на клиенте синхронизировано с временем на Zabbix сервере
Используется функция fuzzytime():
{MySQL_DB:system.localtime.fuzzytime(10)}=0
Триггер меняет состояние на проблему тогда, когда локальное время на сервере MySQL_DB и Zabbix сервере различаются более чем на 10 секунд.
3 Зависимости триггеров
Зависимости триггеров могут быть использованы для определения взаимосвязи между триггерами.
Зависимости триггера являются очень удобным способом ограничения количества сообщений, которые будут отправлены в случае если возникающее событие относится к нескольким ресурсам.
Например, узел сети Хост находится позади маршрутизатора Роутер2, а Роутер2 находится позади Роутер1.
Zabbix - Роутер1 – Роутер2 - Хост
Если Роутер1 недоступен, то очевидно, что и Хост и Роутер2 недоступны. Никто не хочет получать три уведомления с информацией о Хост, Роутер1 и Роутер2. Это как раз тот случай, когда использование зависимостей триггера будет очень удобным.
Для этого случая, мы определяем эти зависимости:
триггер 'Хост недоступен' зависит от триггера 'Роутер2 недоступен' триггер 'Роутер2 недоступен' зависит от триггера 'Роутер1 недоступен'
Перед изменением состояния триггера 'Хост недоступен', Zabbix будет проверять существуют ли у этого триггера заданные зависимости. Если это так, и один из триггеров в находится в состоянии ПРОБЛЕМА, то состояние триггера не будет изменено и, следовательно, действие не будет выполнено и оповещение не будет отправлено.
Zabbix выполняет эту проверку рекурсивно. Если Роутер1 или Роутер2 недоступен, тогда триггер у Хоста не будет изменен.
4 Важности триггеров
Важность триггера определяет насколько триггер важен. Zabbix поддерживает следующие важности триггеров:
Важность | Определение | Цвет |
---|---|---|
Не классифицировано | Неизвестная важность. | Серый. |
Информация | В информационных целях. | Светло зеленый. |
Предупреждение | Предупреждающий. | Светло желтый. |
Средняя | Средняя проблема. | Темно красный. |
Высокая | Произошло что-то важное. | Красный. |
Чрезвычайная | Чрезвычайный. Финансовые потери и т.п. | Ярко красный. |
Важности могут быть использованы в:
-
визуальном представлении триггеров. Различные цвета для различных уровней важности.
-
звуковой сигнализации на странице наблюдения за состоянием триггеров. Различные звуковые сигналы для различных важностей.
-
оповещениях пользователей. Различные типы оповещений (каналы оповещения) для различных важностей. Например, СМС – для высокой важности, email – для остального.
5 Гистерезис
Иногда триггер должен иметь различные условия для разных состояний. Например, мы хотим определить триггер, который перейдет в состояние ПРОБЛЕМА если температура в серверной комнате поднимется выше 20 градусов. При этом триггер должен оставаться в состоянии ПРОБЛЕМА, пока температура не опустится ниже 15 градусов.
Для того чтобы сделать это, мы определим следующий триггер:
Пример 1
Температура в серверной комнате слишком высокая.
({TRIGGER.VALUE}=0&{server:temp.last(0)}>20)| ({TRIGGER.VALUE}=1&{server:temp.last(0)}>15)
Примечание: Здесь используется макрос {TRIGGER.VALUE}, который возвращает текущее состояние триггера (его числовое значение).
Пример 2
Осталось очень мало свободного места на диске
Проблема: осталось меньше чем 10ГБ за последние 5 минут
Восстановление: остается более чем 40ГБ за последние 10 минут
({TRIGGER.VALUE}=0&{server:vfs.fs.size[/,free].max(5m)}<10G) | ({TRIGGER.VALUE}=1&{server:vfs.fs.size[/,free].min(10m)}<40G)
Примечание: Здесь используется макрос {TRIGGER.VALUE}, который возвращает текущее состояние триггера (его числовое значение).
14 IT услуги
ИТ-услуги предназначены для тех, кто хочет получить мониторинг более высокого уровня (бизнес). Во многих случаях мы не заинтересованы в низком уровне подробностей, таких как недостаток места на диске, высокая загрузка процессора и т.д. Чем мы заинтересованы это доступность услуг, предоставляемых нашим ИТ-отделом. Мы также можем быть заинтересованы в выявлении слабых мест в ИТ-инфраструктуре, SLA различных ИТ-услуг, структуре существующей ИТ-инфраструктуры, а также любой другой информации на более высоком уровне.
ИТ-услуги в Zabbix дают ответы на все выше упомянутые вопросы.
ИТ-услуги иерархичное представление данных мониторинга.
Очень простая структура ИТ-услуги может выглядеть следующим образом:
IT услуга | |-Рабочие станции | | | |-Workstation1 | | | |-Workstation2 | |-Сервера
Каждый узел структуры имеет аттрибут состояние. Состояние подсчитывается и распространяется на верхние уровни в соответствии с выбранным алгоритмом. На самом низком уровне IT услуги являются триггерами. Состояние отдельных узлов зависит от состояния их триггеров.
Настройка IT услуг
Для настройки IT услуг, перейдите в Настройка → IT услуги.
На этой странице вы можете построить иерархию вашей наблюдаемой инфраструктуры инфраструктуры. Родительский сервис 'root' самого высокого уровня. Вы можете построить свою иерархию вниз, добавлением родительские сервисы более низкого уровня, а затем и отдельные узлы к ним.
Нажмите на сервис для добавления сервисов к нему или для редактирования сервиса. Отобразится форма, где вы можете редактировать аттрибуты сервиса.
Настройка IT сервиса
Аттрибуты IT сервиса:
Параметр | Описание |
---|---|
Имя | Имя сервиса. |
Родительская услуга IT | Принадлежность к родительскому сервису. |
Зависит от | Список дочерних сервисов от которых сервис зависит. |
Алгоритм подсчета статуса | Метод вычисления состояния сервиса: Не подсчитывать – не вычислять состояние сервиса Проблема, если хотя бы один дочерний сервис в состоянии проблема – считается проблемой только если один дочерний сервис имеет проблему Проблема, если все дочернии сервисы в состоянии проблем – считается проблемой, только если все дочерние сервисы имеют проблемы |
Подсчет SLA | Включить вычисление и отображение SLA. |
Приемлимый SLA (в %) | Процент SLA, который является приемлемым для этого сервиса. Используется для отчетности. |
Интервалы времени услуги | По умолчанию, все сервисы как ожидается работают 24x7x365. Если требуются исключения, добавьте новые времена сервиса. |
Новый интервал времени услуги | Интервал времени сервиса: Единовременный простой – одиночный простой. Состояние сервиса, в течении этого периода не влияет на SLA. Доступность – доступность сервиса Недоступность – состояние сервиса, в течении этого периода не влияет на SLA. Добавляет соответствующие часы. |
Связать с триггером? | Связь с триггером: Пусто – нет связи имя триггера – связан с триггером, таким образом зависит от состояния триггера Сервисы нижнего уровня должны быть соединены с триггерами. (В противном случае их состояние не будет точно представлено.) |
Порядок сортировки | Порядок сортировки при отображении, меньшие значения на первом месте. |
Мониторинг IT сервисов
Для мониторинга IT сервисов, перейдите в Мониторинг → IT сервисы.
Список существующих ИТ услуг отображается вместе с данными их состояния и SLA. Из раскрывающегося списка в правом верхнем углу вы можете выбрать требуемый период для отображения.
Отображаемые данные:
Параметр | Описание |
---|---|
Сервис | Имя сервиса. |
Состояние | Состояние сервиса: OK – нет проблем (цвет и важность триггера) – указывает на наличие проблемы и её важности |
Причина | Указывает на причину проблемы (если таковая имеется). |
SLA (период) | Отображает полосу SLA. Соотношение зеленого/красного указывает на пропорцию доступности/проблем. |
SLA | Отображает приемлимое значение SLA в SLA/текущее. Если текущее значение ниже допустимого уровня, то значение отображается красным цветом. |
График | Содержит ссылку на график с данными доступности. |
Вы также можете нажать на зеленую/красную полосу SLA для доступа к Отчет доступности IT услуг.
Здесь вы можете оценить доступность данных ИТ сервиса за более длительный период времени на основе дня/недели/месяца/года.
16 Очередь
1 Обзор
В очереди Zabbix отображаются элементы данных, которые ждут обновления. Очереди это просто логическое представление данных из базы данных. В Zabbix не существует IPC очереди или очереди иного механизма.
Статистика, представленная в Очереди, является хорошим показателем производительности сервера Zabbix.
2 Как читать
Очередь на одиночной инсталляции или на мастер узле показывает элементы, ожидающие обновления.
В этом случае, мы видим, что у нас есть ноль элементов типа Zabbix агент ожидающих обновления 0-5 секунд, ноль элементов типа Zabbix агент (активный) ожидающий более чем пять минут (если здесь будет больше 0, то это например может означать что агент недоступен).
Обратите внимание, что информация отображаемая для подчиненной ноды не является актуальной (свежей). Мастер нода получает данные истории с некоторой задержкой (как правило, вплоть до 10 секунд из-за передачи данных между нодами), так что информация отображается с задержкой.
На скриншоте мы видим, что существует 42 элемента данных с ожиданием обновления более 5 минут на подчиненной ноде, однако мы не обязаны доверять информации, поскольку она зависит от:
-
производительности подчиненной ноды
-
соединений между мастер и подчиненной нодой
-
возможной разницы локального времени между мастер и подчиненной нодой
17 Утилиты
1 Скрипты автозапуска
Скрипты используются для автоматического запуска/остановки Zabbix процессов во время загрузки/завершения работы системы.
Скрипты размещаются в папке misc/init.d.
2 Скрипт snmptrap.sh
Скрипт используется для получения SNMP трапов. Скрипт должен быть использован в сочетании с snmptrapd, который является частью пакета Net-SNMP.
Руководство по конфигурации:
-
Установите snmptrapd (часть net-snmp или ucd-snmp)
-
Измените snmptrapd.conf.
Добавьте следующую строку:
traphandle default /bin/bash /usr/local/bin/snmptrap.sh
-
Скопируйте misc/snmptrap/snmptrap.sh в /usr/local/bin
-
Отредактируйте snmptrap.sh для настройки некоторых основных параметров
-
Добавьте в Zabbix специальный узел сети с элементом данных типа “Zabbix траппер” (тип информации “Текст”). Ключ элемента данных смотрите в snmptrap.sh
-
Запустите snmptrapd
18 Регулярные выражения
Сложные регулярные выражения могут быть созданы и протестированы в веб-интерфейсе Zabbix. Перейдите в Администрирование → Общие → Регулярные выражения.
Общий вид
Добавление/редактирование одной группы регулярных выражений
14 Использование регулярных выражений
После того как регулярное выражение создано, его можно использовать везде где поддерживаются регулярные выражения, ссылаясь на его имя с префиксом @, например, @mycustomregexp.
14.1 Пример 1
Проверяем возвращает ли элемент данных правильное значение DNS имени.
Создайте новую группу регулярных выражений и добавьте туда регулярное выражение:
^[0-9a-zA-Z_\-]+\.[a-zA-Z]{2,4}$
Это регулярное выражение означает, что строка может начинаться с цифро-буквенных символов с количеством более одного, потом должна идти точка и далее может быть от двух до четырех буквенных символов. ^ – начало строки, $ – конец строки.
Установите тип регулярного выражения “Результат TRUE” и отметьте галку регистрозависимый.
Протестируйте добавленное регулярное выражение:
Введите zabbix.com в поле “Тестовая строка” и нажмите кнопку “Тест”. Если регулярное выражение составлено верно и тестируемая строка соответствует выражению, то результат тестирования будет ИСТИНА, в противном случае ЛОЖЬ.
Сохраним группу регулярных выражений с именем “check_dns”.
Теперь, чтобы использовать добавленную группу в выражениях триггеров нужно указать @check_dns. Например:
({Template_DNS_Check:dns_check.iregexp(@regexp_check_ip)}=1
15 Типы регулярных выражений
Все регулярные выражения в Zabbix, созданные при помощи расширенного редактора, или введенные вручную, поддерживают расширенные регулярные выражения стандарта POSIX.
20 Определения в веб-интерфейсе
Хотя многие параметры веб-интерфейса можно настроить используя сам интерфейс, но некоторые настройки в настоящее время возможно изменить только через файл определений. Этот файл размещается в папке веб-интерфейса, include/defines.inc.php. Параметры в этом файле, которые могут быть интересны пользователям:
-
TRIGGER_FALSE_PERIOD
Как долго отображать триггеры в состоянии ОК после изменения их состояния из ПРОБЛЕМА, в секундах.
По умолчанию: 1800
-
TRIGGER_BLINK_PERIOD
Как долго триггер должен мигать после изменения состояния, в секундах.
По умолчанию: 1800
-
ZBX_PERIOD_DEFAULT
Период графика по умолчанию, в секундах. По умолчанию один час.
-
ZBX_MIN_PERIOD
Минимальный период графика в секундах. По умолчанию один час.
-
ZBX_MAX_PERIOD
Максимальный период графика в секундах. По умолчанию два года начиная с 1.6.7 и один год до 1.6.7.
-
GRAPH_YAXIS_SIDE_DEFAULT
Размещение по умолчанию оси Y в простых графиках и значение по умолчанию в выпадающем списке при добавлении элементов данных в пользовательские графики. Возможные значения: 0 – слева, 1 – справа.
По умолчанию: 0
-
ZBX_UNITS_ROUNDOFF_THRESHOLD
Значение порога округления констант. Значения, меньшие чем порог, будут округлены до ZBX_UNITS_ROUNDOFF_LOWER_LIMIT количества цифр после запятой, и соответственно значения, большие чем порог, будут округлены до ZBX_UNITS_ROUNDOFF_UPPER_LIMIT количества цифр после запятой.
По умолчанию: 0.01
-
ZBX_UNITS_ROUNDOFF_UPPER_LIMIT
Округлять к количеству знаков после запятой, когда значение больше порога округления.
По умолчанию: 2
-
ZBX_UNITS_ROUNDOFF_LOWER_LIMIT
Округлять к количеству знаков после запятой, когда значение меньше порога округления.
По умолчанию: 6
-
ZBX_HISTORY_DATA_UPKEEP (доступно начиная с 1.8.4)
Количество дней, которые будут влиять на выбор данных или из таблицы истории или из таблицы тенденций при обработке выбранного периода для отрисовки графика в веб-интерфейсе.
Возможные определения:
-
меньше нуля – для выполнения вычислений zabbix берет значения элемента данных для выбранного периода графика, исходя из настройки элемента данных “сохранять историю”;
-
равно нулю – zabbix берет значения элементов данных только из тенденций;
-
больше чем нуль – zabbix переопределяет настройку элемента данных “сохранять историю” этим значением;
Это определение может быть полезным для партиционированного хранения данных.
По умолчанию: -1
-
ZAPCAT_COMPATIBILITY
Включает поддержку синтаксиса ключей элементов данных для Zapcat Zabbix Java JMX bridge.
По умолчанию: false
21 Суффиксы
Используя суффиксы, в Zabbix есть возможность упростить выражения триггеров или ключей элементов данных.
1 Стандартные множители
В следующей таблице представлены доступные стандартные множители для Zabbix веб-интерфейса и сервера:
До 1.8.2 | Дополнительные в 1.8.2 | |
---|---|---|
Сервер | K (Кило) M (Мега) G (Гига) |
T (Тера) |
Веб-интерфейс | K (Кило) M (Мега) G (Гига) T (Тера) |
P (Пета) E (Экза) Z (Зетта) Y (Йотта) |
2 Множители, относящиеся ко времени
Начиная с Zabbix версии 1.8.2 доступны следующие множители, относящиеся ко времени:
-
s – секунды; если используется, тогда действует так же как и сырое значение (raw values);
-
m – минуты;
-
h – часы;
-
d – дни;
-
w – недели.
Это поддерживаемые в выражениях триггеров константы и параметры функций, а также параметры во внутренних элементах данных zabbix[очередь,<от>,<до>].
3 Примеры
Эти множители позволяют писать выражения, которые легче понять и управлять ими, например следующие выражения:
{host:zabbix[proxy,zabbix_proxy,lastaccess]}>120 {host:system.uptime[].last()}<86400 {host:system.cpu.load.avg(600)}<10
можно заменить на:
{host:zabbix[proxy,zabbix_proxy,lastaccess]}>2m {host:system.uptime.last()}<1d
22 Спецификация периода времени
1 Формат
Период времени имеет следующий формат:
d-d,hh:mm-hh:mm
Вы можете указать более одного периода времени используя разделитель точку с запятой (;):
d-d,hh:mm-hh:mm;d-d,hh:mm-hh:mm...
2 Описание
Формат | Описание |
---|---|
d | День недели: 1 – Понедельник, 2 – Вторник ,… , 7 – Воскресенье |
hh | Часы: 00-24 |
mm | Минуты: 00-59 |
3 По умолчанию
Пустая спецификация времени равна 01-07,00:00-24:00
4 Примеры
Часы работы. Понедельник – Пятница с 9:00 до 18:00:
1-5,09:00-18:00
Часы работы плюс выходные. Понедельник – Пятница с 9:00 до 18:00 и Суббота, Воскресенье с 10:00 до 16:00:
1-5,09:00-18:00;6-7,10:00-16:00
Data source: Zabbix