...
- Установить программу iostat:
Command sudo apt install sysstat
- Создать каталог
/etc/zabbix/scripts/:Command sudo mkdir -p /etc/zabbix/scripts/
- В каталоге
/etc/zabbix/scripts/создать сценарийiostat.sh, который будет использоваться Zabbix-агентом для сбора данных о работе накопителей.Раскрыть title Содержимое файла /etc/zabbix/scripts/iostat.sh... Блок кода #!/bin/bash export LC_ALL="" export LANG="C" # Проверка на передачу параметров if [[ -z "$1" || -z "$2" || -z "$3" ]]; then ##### DISCOVERY ##### DEVICES=`iostat -d | awk '{print $1}' | sed -e '/^\([hsv]d[a-z]\)$/!d'` if [[ -n ${DEVICES} ]]; then JSON="{ \"data\":[" SEP="" for DEV in ${DEVICES}; do JSON=${JSON}"$SEP{\"{#HDNAME}\":\"${DEV}\"}" SEP=", " done JSON=${JSON}"]}" echo ${JSON} fi exit 0 fi ##### PARAMETERS ##### RESERVED="$1" METRIC="$2" DISK="$3" EXEC_TIMEOUT="2" NOW_TIME=`date '+%s'` ##### RUN ##### # Чтение статистики по метрике для конкретного диска declare -A METRICS=( ["r/s"]=2 ["rkB/s"]=3 ["rrqm/s"]=4 ["%rrqm"]=5 ["r_await"]=6 ["rareq-sz"]=7 ["w/s"]=8 ["wkB/s"]=9 ["wrqm/s"]=10 ["%wrqm"]=11 ["w_await"]=12 ["wareq-sz"]=13 ["d/s"]=14 ["dkB/s"]=15 ["drqm/s"]=16 ["%drqm"]=17 ["d_await"]=18 ["dareq-sz"]=19 ["f/s"]=20 ["f_await"]=21 ["aqu-sz"]=22 ["%util"]=23 ) COLUMN=${METRICS[$METRIC]} if [[ -z "$COLUMN" ]]; then echo "Неизвестная метрика, проверьте в 'iostat -dxk': $METRIC" exit 1 fi iostat -dxk | awk -v disk="$DISK" -v col="$COLUMN" '$1 == disk {print $col}' - Задать права для сценария:
Command chmod 750 /etc/zabbix/scripts/iostat.sh
chown root:zabbix /etc/zabbix/scripts/iostat.sh - Настроить Zabbix-агента на использование сценария.
Для этого в файле /etc/zabbix/zabbix_agentd.conf задать параметрUserParameter:
Значение параметраБлок кода ### Option: UserParameter # User-defined parameter to monitor. There can be several user-defined parameters. # Format: UserParameter=<key>,<shell command> # See 'zabbix_agentd' directory for examples. # # Mandatory: no # Default: # UserParameter= UserParameter=iostat[*],/etc/zabbix/scripts/iostat.sh "none" "$1" "$2"
UserParameterсостоит из частей:
-/etc/zabbix/scripts/iostat.sh "none" "$1" "$2"– команда с параметрами, запускаемая Zabbix-агентом для получения данных;
-[*]– означает, что команда будет запускаться с параметрами, полученными от Zabbix-сервера;
- iostat – ключ, который используется в качестве идентификатора (названия) команды/etc/zabbix/scripts/iostat.sh.
При настройке отдельного элемента Zabbix-сервера указывается ключ команды, с помощью которой будут собираться данные для отображения этим элементом. - Перезапустить Zabbix-агента для вступления настроек в силу:
Command sudo systemctl restart zabbix-agent
...