Приведу пример мониторинга использования каждого ядра процессора используя Zabbix.
Допустим на высоконагруженном NAT сервере основная нагрузка от softirq, присутствует один процессор с 8 ядрами, а также на сервере установлен Zabbix агент.
И чтобы увидеть равномерно ли распределены прерывания сетевого адаптера по ядрам процессора, создадим элементы данных на Zabbix сервере, в которых укажем:
Тип: Zabbix агент
Тип информации: Числовой (с плавающей точкой)
Единица измерения: %
А также ключ:
system.cpu.util[0,softirq,avg5]
Где 0 — номер процессора, softirq — тип нагрузки, avg5 — средняя нагрузка за 5 минут. Аналогично создадим элементы данных для других ядер процессора с ключами, а также добавим их на один график:
system.cpu.util[1,softirq,avg5]
system.cpu.util[2,softirq,avg5]
system.cpu.util[3,softirq,avg5]
...
Вместо softirq можно указать idle, nice, user (по умолчанию для Linux), system (по умолчанию для Windows), iowait, interrupt, softirq, steal, guest, guest_nice.
А вместо avg5 можно указать: avg1 (среднее за одну минуту, по умолчанию) или avg15 (среднее за 15 минут).
Чтобы не указывать ядра процессоров вручную, можно создать правило обнаружения:
system.cpu.discovery
И указать в нем элемент данных, например:
system.cpu.util[{#CPU.NUMBER},softirq,avg5]
Также можно создать триггер, чтобы узнать когда значение будет больше 90:
({ixnfo.com cpu template:system.cpu.util[0,softirq,avg5].last(0)}>90)
Ниже приведу примеры элементов данных, которые отображают различную информацию о CPU, кстати эти элементы данных по умолчанию присутствуют в шаблоне «Template OS Linux».
Processor load (1 min average per core):
system.cpu.load[percpu,avg1]
Processor load (5 min average per core):
system.cpu.load[percpu,avg5]
Processor load (15 min average per core):
system.cpu.load[percpu,avg15]
Interrupts per second:
system.cpu.intr
Context switches per second:
system.cpu.switches
CPU idle time:
system.cpu.util[,idle]
CPU interrupt time:
system.cpu.util[,interrupt]
CPU iowait time:
system.cpu.util[,iowait]
CPU nice time:
system.cpu.util[,nice]
CPU softirq time:
system.cpu.util[,softirq]
CPU steal time:
system.cpu.util[,steal]
CPU system time:
system.cpu.util[,system]
CPU user time:
system.cpu.util[,user]
Смотрите другие мои статьи в категории Zabbix.