...
- Установить программу 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=iostat[*],/etc/zabbix/scripts/iostat.sh "none" "$1" "$2" UnsafeUserParameters=1
- Перезапустить Zabbix-агента для вступления в силу настроек:
Command sudo systemctl restart zabbix-agent
...