Для начала изучим документацию на саму команду iostat из состава FreeBSD. Простой вызов команды iostat отображает статистику дисковых устройств вместе со статистикой процессора и терминала. К счастью, у команды iostat имеется несколько опций, полезных для наших целей:
- -d - отображать только статистику по дисковым устройствам,
- -x - отобразить расширенную статистику,
- -I - отображать счётчики нарастающим итогом, а не среднюю статистику за период времени.
Команда iostat, вызванная со всеми этими опциями, выведет примерно такой результат:
# iostat -dxI extended device statistics device r/i w/i kr/i kw/i wait svc_t %b mfid0 6994332913.0 13128877288.0 544161035422.5 493573917948.0 0 5.1 18Смысл столбцов такой:
- device - имя файла устройства в файловой системе /dev,
- r/i - количество операций чтения за период времени,
- w/i - количество операций записи за период времени,
- kr/i - прочитано килобайт за период времени,
- kw/i - записано килобайт за период времени,
- wait - длина очереди транзакций,
- svc_t - средняя длительность транзакций в миллисекундах,
- %b - процент времени, когда на устройстве была одна или более невыполненных транзакций.
Добавим в файл конфигурации Zabbix-агента /usr/local/etc/zabbix24/zabbix_agentd.conf следующие строки:
UserParameter=iostat.discovery,iostat -dxI | awk 'BEGIN { printf "{\"data\":["; } { if (NR > 3) printf ","; if (NR > 2) printf "{\"{#DEVNAME}\":\"" $1 "\"}"; } END { printf "]}"; }' UserParameter=iostat.read.ops[*],/usr/sbin/iostat -dxI | awk '$$1 == "$1" { print $$2; }' UserParameter=iostat.write.ops[*],/usr/sbin/iostat -dxI | awk '$$1 == "$1" { print $$3; }' UserParameter=iostat.read.bytes[*],/usr/sbin/iostat -dxI | awk '$$1 == "$1" { print 1024 * $$4; }' UserParameter=iostat.write.bytes[*],/usr/sbin/iostat -dxI | awk '$$1 == "$1" { print 1024 * $$5; }' UserParameter=iostat.queue.length[*],/usr/sbin/iostat -dxI | awk '$$1 == "$1" { print $$6; }' UserParameter=iostat.transactions.duration[*],/usr/sbin/iostat -dxI | awk '$$1 == "$1" { print $$7; }' UserParameter=iostat.busy.duration[*],/usr/sbin/iostat -dxI | awk '$$1 == "$1" { print $$8; }'После внесения изменений в файл конфигурации Zabbix-агента, не забудьте его перезапустить:
# /usr/local/etc/rc.d/zabbix_agentd restartЯ подготовил два варианта шаблона:
- Template_App_iostat_FreeBSD.xml - шаблон с элементами данных типа "Zabbix-агент"
- Template_App_iostat_FreeBSD_Active.xml - шаблон с элементами данных типа "Zabbix-агент (активный)"
Для каждого найденного устройства создаётся семь элементов данных, соответствующих колонкам из вывода iostat:
Страница последних данных для одного из дисков выглядят следующим образом:
Элемент данных с названием "Загрузка диска" показывает процент времени, в течение которого диск занимается обработкой хотя бы одной транзакции.
Комментариев нет:
Отправить комментарий