В этой статье я опишу некоторые элементы данных Zabbix агента. Кратко опишу эти элементы, расскажу где можно применить предобработку.
Введение
Я уже рассказывал про то как установить Zabbix агента на Linux или Windows и как начать мониторинг за хостом — здесь.
В этой статье я расскажу про некоторые элементы данных (метрики), которые предоставляет Zabbix агент. Всего таких метрик в 6 версии Zabbix более 80, их описание вы можете посмотреть в официальной документации. Здесь я покажу лишь некоторые из элементов, в качестве примеров. А дальше, используя документацию, вы сможете подключить те элементы, которые нужны именно вам.
Доступность агента
- Ключ — agent.ping.
- Возвращает 1 если агент запущен и ничего не возвращает, если агент не запущен.
- Тип информации — Числовой (целое положительное).
- Можно использовать и на Linux, и на Windows.
- В качестве триггера можно указать отсутствие данных, например за минуту.
Количество открытых файлов
- Ключ — kernel.openfiles.
- Как известно, в Linux есть лимит по максимальному числу открытых файлов. Об этом я писал здесь. В Windows такого лимита нет, вы сможете открыть столько файлов, сколько вам позволит объём памяти. Этот элемент данных возвращает текущее количество открытых файлов.
- Тип информации — Числовой (целое положительное).
- Можно использовать только на Linux.
- В качестве триггера можно указать приближение к указанному лимиту. Посмотреть текущее значение открытых файлов и лимит можно с помощью команды:
cat /proc/sys/fs/file-nr
. Например лимит 150000, тогда триггером будет превышение 140000.
Ошибки при входящем и исходящем трафике
- Ключ для входящего трафика — net.if.in[<интерфейс>, errors] + предобработка «Простое изменение».
- Ключ для исходящего трафика — net.if.out[<интерфейс>, errors] + предобработка «Простое изменение».
- Эти элементы данных с предобработкой возвращают количество ошибок со времени предыдущей проверки.
- Тип информации — Числовой (целое положительное).
- Можно использовать и на Linux, и на Windows. На Windows я вместо имени интерфейса указываю назначенный ему ip адрес.
- В качестве триггера можно указать что возвращаемое число не равно нулю. Это будет означать что на интерфейсе появились ошибки.
Загрузка CPU
Здесь я для LInux и Windows использую разные стратегии и разные элементы данных.
- Ключ для Linux — proc.cpu.util[] + предобработка «Пользовательский множитель».
- Покажет загрузку CPU всеми процессами в процентах. Если у вас 8 ядер, то полная загрузка будет равняться 800%. Поэтому стоит добавить предобработку «Пользовательский множитель» чтобы поделить полученное значение на количество ядер. Чтобы получить множитель, нужно 1/n, где n — это количество ядер. Например: множитель 0.5 для 2 ядер, множитель 0.125 для 8 ядер.
- Тип информации — Числовой (с плавающей точкой).
- Можно использовать только на Linux.
- Ключ для Windows — system.cpu.util[].
- В системе Windows покажет загрузку CPU, как показывает диспетчер задач. Но в Linux показывает загрузку только по определённому типу (idle, user (по умолчанию), system) а в сумме нельзя.
- Тип информации — Числовой (с плавающей точкой).
- Можно использовать и на Linux, и на Windows. Но в данном примере следует использовать только на Windows.
- В обоих случаях, в качестве триггера, можно указать превышение 70% в течении 5 минут.
Load Average
- Ключ — system.cpu.load[].
- Про него (для Linux) я писал здесь, это как бы средняя нагрузка на систему. Если нагрузка меньше чем число ядер, значит всё хорошо, если больше — то плохо. Этот элемент возвращает среднюю нагрузку на систему (Load Average) усреднённую за 1 минуту.
- Тип информации — Числовой (с плавающей точкой).
- Можно использовать и на Linux, и Windows.
- В качестве триггера можно указать превышение количества ядер в системе в течении 5 минут.
Занято памяти
- Ключ — vm.memory.size[pused].
- С параметром pused покажет использованную память в системе, в процентах.
- Тип информации: Числовой (с плавающей точкой).
- Можно использовать и на Linux, и Windows.
- В качестве триггера можно указать превышение 75% в течении 5 минут.
Использование SWAP
- Ключ — system.swap.size[,pused]. Для Linux. Тип информации: Числовой (с плавающей точкой).
- Ключ — system.swap.size[,used]. Для Windows. Тип информации: Числовой (целое положительное).
- Покажет использование файла или раздела подкачки. На Linux, в качестве второго параметра я указываю pused (просмотр занятой памяти в процентах). А на Windows, второй параметр — used (просмотр занятой памяти в байтах), так как pused не поддерживается.
- Можно использовать и на Linux, и Windows.
- В обоих случаях, в качестве триггера можно указать превышение 75%, только для Windows нужно будет произвести расчет самостоятельно и вместо процентов указать количество байтов.
Занято на диске
- Ключ — vfs.fs.size[/,pused] — ключ для Linux.
- Ключ — vfs.fs.size[C:\,pused] — ключ для Windows.
- Покажет на сколько процентов занят раздел жёсткого диска. Для Linux нужно указать точку монтирования, а для Windows — букву диска.
- Можно использовать и на Linux, и Windows.
- Тип информации: Числовой (с плавающей точкой).
- В качестве триггера можно указать превышение 75%.
Занято inode
- Ключ — vfs.fs.inode[/,pused].
- Создавая файлы, мы занимаем индексные дескрипторы (inode) на файловой системе. Об этом я писал здесь. На Windows (NTFS) inode не могут закончится. А на Linux (Ext4) — могут закончится. Элемент с параметром pused возвращает процент занятых файловых дескрипторов на файловой системе.
- Тип информации: Числовой (с плавающей точкой).
- Можно использовать только на Linux.
- В качестве триггера можно указать превышение 75%.
Проверка изменения файла
- Ключ — vfs.file.cksum[/etc/passwd].
- Покажет хэш указанного файла. Это бывает полезно, чтобы знать, что файл не изменялся.
- Тип информации — Числовой (целое положительное).
- Можно использовать и на Linux, и Windows. Для Windows нужно указать путь в виде C:\… .
- В качестве триггера можно указать изменение получаемого значения в сравнении с предыдущим значением. То есть, если полученное значение не такое, как при предыдущей проверке, значит файл изменился.
Проверка открытого TCP порта
- Ключ проверяющий работает ли web сервер — net.tcp.listen[443].
- Ключ проверяющий работает ли rdp сервер net.tcp.listen[3389].
- Если нам нужно следить за определённым сервисом, то мы можем следить, прослушивается ли указанный порт на сервере. Возвращает 1 если порт находится в состоянии LISTEN, 0 — если не находится.
- Тип информации — Числовой (целое положительное).
- Можно использовать и на Linux, и Windows.
- В качестве триггера можем указать 0, то есть наблюдаемый порт не прослушивается на сервере.
Производительность TCP сервиса
- Ключ для проверки web-сервера (https) — net.tcp.service.perf[https, 127.0.0.1, 443].
- Ключ для проверки сервера удалённых рабочих столов — net.tcp.service.perf[tcp, 127.0.0.1, 3389].
- Этот элемент может проверить работу TCP сервиса, есть подобный и для udp. Проверять можно следующие сервисы: ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet — подробнее об этом здесь. Возвращает 0 если сервис недоступен или количество секунд за которые сервис ответил.
- Тип информации: Числовой (с плавающей точкой).
- Можно использовать и на Linux, и Windows.
- В качестве триггера можем указать 0 — значит сервер не доступен. Или превышение какого-то количества секунд, например 3, значит сервер отвечает очень медленно.
Количество определённых процессов
- Ключ — proc.num[<процесс>].
- Этот элемент данных покажет количество определённых процессов. В качестве процесса вы должны указать его имя, например zabbix_agentd (для Linux), zabbix_agentd.exe (для Windows).
- Тип информации — Числовой (целое положительное).
- Можно использовать и на Linux, и Windows.
- В качестве триггера можно указать 0, что будет означать отсутствие наблюдаемых процессов на сервере.
Если понравилась статья, подпишитесь на мой канал в VK.