Введение
В статье описана установка расширения Zabbix для получения статистики работы дисковых накопителей на клиентском компьютере через команду iostat -dxk.
Предварительная настройка
Настроить Zabbix-сервер и Zabbix-агента в соответствии со статьёй "Установка системы мониторинга Zabbix на Astra Linux Special Edition".
Настройка Zabbix-агента
apt update
sudo apt install sysstat
sudo mkdir -p /etc/zabbix/scripts/
- Создать скрипт /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}'
chmod 750 /etc/zabbix/scripts/iostat.sh
chown root:zabbix /etc/zabbix/scripts/iostat.sh
chmod +x /etc/zabbix/scripts/iostat.sh
В файле /etc/zabbix/zabbix_agentd.conf сделать:
UserParameter=iostat[*],/etc/zabbix/scripts/iostat.sh "none" "$1" "$2"
UnsafeUserParameters=1
- перезапустить:
sudo systemctl restart zabbix-agent
Настройка Zabbix-сервера
загрузить шаблон