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. Например:
sensor[cpu0,temp0] - температура одного из ЦПУ
sensor[cpu[0-2]$,temp,avg] - средняя температура первого из трех ЦПУ
Поддерживается в OpenBSD начиная с Zabbix 1.8.4.
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" в других системах.

Пример возвращаемого значения
www.zabbix.com

Параметр для этого элемента данных поддерживается начиная с версии 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

Пример:
vfs.file.md5sum[/etc/zabbix/zabbix_agentd.conf]

Лимит в 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]

Смотрите этот раздел для понимания различий между элементами данных в пассивном и активном режиме.

[1] По умолчанию используется "all" первым параметром для ключей vfs.dev.* и возвращает суммарную статистику, включая: все блочные устройства такие как sda, sbd и их разделы sda1, sda2, sdb3 ... и несколько устройств (MD raid) на основе этих блочных устройств/разделов и логические разделы (LVM) на основе этих блочных устройств/разделов.
В некоторых случаях возвращаемые значения следует рассматривать как относительные значения (изменяемые во времени), но не как абсолютные значения.

Заметка специфики для Linux. Zabbix агент должен иметь только права чтения файловой системы /proc. Патчи к ядру для ограничения прав непривилегированных пользователей вы можете найти на странице www.grsecurity.org.

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 использованных процессом

Допустимые типы:
min - минимальное значение среди процессов указанного в параметре
max - максимальное значение среди процессов указанного в параметре
avg - среднее значение среди процессов указанного в параметре
sum - сумма всех значение среди процессов указанного в параметре

Примеры:
1. Для того чтобы получить объем физической памяти выделено под все процессы Internet Explorer, используйте следующий параметр: proc_info[iexplore.exe,wkset,sum]
2. Для того чтобы получить среднее количество ошибок страницы для всех процессов Internet Explorer, используйте следующий параметр: proc_info[iexplore.exe,pf,avg]
Примечание: Все аттрибуты io_xxx,gdiobj и userobj доступны только в Windows 2000 и более поздних версиях Windows, не в Windows NT 4.0.

6 SNMP агент

Zabbix должен быть сконфигурирован с поддержкой SNMP, для того чтобы была возможность получения данных от SNMP агентов.

Если вы мониторите устройства SNMPv3, удостоверьтесь что msgAuthoritativeEngineID (также известное как "snmpEngineID" или "Engine ID") никогда не используется общее для двух устройств. Этот параметр должен быть уникальным для каждого устройства.

Для защиты и аутентификации SNMPv3 сейчас поддерживаются протоколы MD5 и DES.

Следующие шаги должны быть выполнены для того, чтобы добавить мониторинг по SNMP:

Шаг 1

Создайте узел сети для SNMP устройства.

Введите IP адрес. Выберите состояние узла сети "Не контролируется". Теперь вы можете использовать узел сети один из SNMP шаблонов (Template_SNMPv1_Device, Template_SNMPv2_Device), который автоматически добавит элементы данных. Однако, шаблон, может быть несовместим с узлом сети.

Проверки SNMP не используют Порт агента, он игнорируется.

Шаг 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

Мониторинг SNMP параметров возможен, если при конфигурировании исходных кодов Zabbix был указан флаг -with-net-snmp или -with-ucd-snmp

Пример 2

Мониторинг Uptime'а

Параметр Описание
Community public
Oid MIB::sysUpTime.0
Ключ router.uptime
Тип значения числовое с плавающей точкой
Единица измерения uptime
Множитель 0.01

7 Простые проверки

Простая проверка обычно используются для мониторинга без использования Агента или для проверки удаленных сервисов. Обратите внимание, что Zabbix агент не является необходимым для простой проверки. За обработку простых проверок отвечает Zabbix сервер (осуществление внешних подключений и т.д.).

Все простые проверки могут принимать один необязательный параметр:

  • порт - номер порта. Если номер порта пропущен, то используется стандартный порт по умолчанию для этого сервиса.

Примеры использования простых проверок:

ftp,155
       http
       http_perf,8080 

IP берется из указанного узла сети Zabbix.

Проверка протоколов с шифрованием (таких как IMAP на порту 993 или POP на порту 995) в данный момент не поддерживается. В качестве решения проблемы используйте, пожалуйста, tcp и tcp_perf для проверок таких проверок.

Список поддерживаемых простых проверок:

Ключ
Описание Возвращаемое значение
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

Внимание: Значения по умолчанию в fping могут различаться в зависимости от плафтормы и версии - если имеются сомнения, посмотрите документацию fping

Zabbix записывает во временный файл адреса для проверки, которые затем будут переданы утилите fping. Если элементы данных имеют разные параметры, то только те которые имеют идентичные параметры записываются в один файл.

8 Внутренние проверки

Внутренняя проверка позволяют контролировать внутреннее состояние Zabbix. Внутренние проверки подсчитываются самим 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), такой элемент данных переходит в состояние не поддерживается.
Минимум и максимум относится к процентному использованию одним процессом. Таким образом, если в группе из 3 пуллеров процентное использование составило 2, 18 и 66, тогда min должен вернуть 2 а max должен вернуть 66.
В общей памяти процессы отмечают то что они делают и процесс само-мониторинга резюмирует эти данные каждую секунду. Изменения состояний (busy/idle) регистрируются при изменении - таким образом, процессы, которые становятся занятыми, регистрируют это состояние и не меняют и не обновляют его пока процесс не станет свободным. Такое поведение гарантирует, что даже полностью зависшие процессы будут корректно зарегистрированы как 100% занятые.
В настоящее время, "busy" означает "не спит", но в будущем могут быть добавлены дополнительные состояния - ожидание блокировки, выполнение запросов в базу данных, и т.д.
В Linux и в большинстве других систем, разрешение составляет 1/100 секунды.
В данный момент поддерживаются следующие типы процессов:
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 - пуллер для недоступных устройств
Примечание: Вы также можете видеть эти типы процессов в файле журнала сервера.

Возможные режимы:
avg - среднее значение для всех процессов указанного типа (по умолчанию)
count - количество форков указанного типа процесса, <состояние> не должно быть указано
max - максимальное значение
min - минимальное значение
<process number> - номер процесса (от 1 до количества префорк процессов). Например, если запущенно 4 траппера, тогда значение от 1 до 4.

Возможные состояния:
busy - процесс в занятом состоянии, например, обработка запроса (по умолчанию).
idle - процесс в свободном состоянии, ничего не делающий.

Примеры:
zabbix[process,poller,avg,busy] - среднее время, потраченное процессами пуллеров, которые что-либо делали за последнюю минуту
zabbix[process,"icmp pinger",max,busy] - максимальное время, потраченное любыми процессами ICMP pinger, которые что-либо делали за последнюю минуту
zabbix[process,trapper,count] - общее количество запущенных процессов trapper

Этот элемент данных поддерживается начиная с версии 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 сервер, поэтому необходимые права доступа или переменные окружения должны быть предусмотрены в самом скрипте, если необходимо, и разрешения на команду должны быть даны пользователю для их выполнения. Команды доступны только те, которые размещены в указанной директории.

Эта директория размещается на Zabbix сервере. Для выполнения пользовательских команд, используя Zabbix агента, смотрите документацию по пользовательским командам.

Первый параметр командной строки это IP адрес или DNS имя, другие параметры заменяются параметрами.

Zabbix использует первую строку (конечные пробелы удаляются) в стандартный вывод скрипта как значение. Остальные строки, стандартная ошибка и код выхода отбрасываются.

Не злоупотребляйте внешними проверками! Они могут намного снизить производительность системы 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. <note important>Поддерживаемая минимальная версия библиотеки libssh2 1.0.0 :::

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

С вычисляемыми элементами данных вы можете создавать вычисления на основе других элементов данных. Таким образом, вычисляемые элементы данных используются для создания виртуальных источников данных. Значения элементов данных периодически вычисляются, базируясь на арифметическом выражении.

Результирующие данные будут записаны в базу данных 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. ссылка на элемент данных не найдена
  2. нет данных для вычисления функции
  3. деление на ноль
  4. использование некорректного синтаксиса
Пример 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\"]")