Мониторинг дисков ZABBIX

Мониторинг дисков ZABBIX
http://www.zabbix.com/

Рано или поздно у вас появится необходимость отслеживать производительность дисковой подсистемы серверов, как виртуальных, так и физических. Если вы все ещё это не делаете, то обязательно скоро придется. Почему?  — если оперативную память, процессорную мощность и объем долговременной памяти можно считать константами, то этого нельзя сказать о производительности дисковой подсистемы. Во-первых, потому что рабочая нагрузка на серверы обычно растет со временем (даже если взять за основу постоянное количество сотрудников компании), а производительность дисков со временем деградирует и их надо менять, во-вторых, традиционно большинство администраторов учитывают лишь мощность cpu и объем ram и никто не утруждает себя подсчетом необходимых iops-ов. Если с windows-системами все достаточно просто и работает что называется «из коробки» (я о счетчиках производительности), то с Unix-системами все обстоит сложнее. Благо в сети есть достаточно объемные и подробные инструкции с готовыми скриптами для постановки на мониторинг показателей производительности дисковой подсистемы. Использование одной из них я планирую максимально подробно описать в этой статье.


Вводная статья по шаблонам мониторинга ZABBIX — Шаблоны ZABBIX.

Если вам интересна тематика ZABBIX, рекомендую обратиться к основной статье — Система мониторинга ZABBIX, в ней вы найдете дополнительную информацию.


Исходные данные

Настройка zabbix-агента будет проводиться на самом zabbix-сервере, ОС — Debian 7.7. Все необходимые скрипты и файлы конфигураций можно найти тут. Небольшое «введение» можно прочитать в статье «Zabbix + Iostat: мониторинг дисковой подсистемы«.

Мониторинг дисков ZABBIX — Настройка

Необходимо поставить пакет «sysstat», в котором находится необходимая нам утилита «iostat»:
root@debian7:~# apt-get install sysstat

Вспомним где у нас лежат конфигурационные файлы zabbix-агента:
root@debian7:~# find / -name «zabbix_agentd.conf»
/usr/local/etc/zabbix_agentd.conf

Перейдем в папку с конфигурационными файлами:
root@debian7:~# cd /usr/local/etc/

Создадим папки для будущих скриптов и файлов конфигураций и сразу установим к ним права:
root@debian7:/usr/local/etc# mkdir -m 755 zabbix_agent_configs
root@debian7:/usr/local/etc# mkdir -m 755 zabbix_agent_scripts

Вернемся в корневую директорию:
root@debian7:/usr/local/etc# cd

Создадим файл iostat.conf в директории с конфигурационными файлами zabbix-агента

root@debian7:~# nano /usr/local/etc/zabbix_agent_configs/iostat.conf

… со следующим содержанием:

# Disk statistics via iostat (sysstat)
# Attention: Second parameter in iostat.collect must be less than Timeout option in zabbix_agentd.conf
UserParameter=iostat.discovery, iostat -d | awk ‘BEGIN {check=0;count=0;array[0]=0;} {if(check==1 && $1 != «»){array[count]=$1;count=count+1;}if($1==»Device:»){check=1;}} END {printf(«{\n\t\»data\»:[\n»);for(i=0;i<count;++i){printf(«\t\t{\n\t\t\t\»{#HARDDISK}\»:\»%s\»}», array[i]); if(i+1<count){printf(«,\n»);}} printf(«]}\n»);}’
UserParameter=iostat.collect,/usr/local/etc/zabbix_agent_scripts/iostat-collect.sh /tmp/iostat.out 8 || echo 1
UserParameter=iostat.metric[*],/usr/local/etc/zabbix_agent_scripts/iostat-parse.sh /tmp/iostat.out $1 $2

Создадим первый скрипт:

root@debian7:~# nano /usr/local/etc/zabbix_agent_scripts/iostat-collect.sh

Вставим код:

#!/usr/bin/env bash
# Description: Script for iostat monitoring
# Author: Epikhin Mikhail michael@nomanlab.org
# Revision 1: Lesovsky A.V. lesovsky@gmail.com

SECONDS=$2
TOFILE=$1
IOSTAT=»/usr/bin/iostat»

[[ $# -lt 2 ]] && { echo «FATAL: some parameters not specified»; exit 1; }

DISK=$($IOSTAT -x 1 $SECONDS | awk ‘BEGIN {check=0;} {if(check==1 && $1==»avg-cpu:»){check=0}if(check==1 && $1!=»»){print $0}if($1==»Device:»){check=1}}’ | tr ‘\n’ ‘|’)
echo $DISK | sed ‘s/|/\n/g’ > $TOFILE
echo 0

И второй:

root@debian7:/usr/local/etc# nano /usr/local/etc/zabbix_agent_scripts/iostat-parse.sh

Вот с таким кодом:

#!/usr/bin/env bash
# Description: Script for disk monitoring
# Author: Epikhin Mikhail michael@nomanlab.org
# Revision 1: Lesovsky A.V. lesovsky@gmail.com

NUMBER=0
FROMFILE=$1
DISK=$2
METRIC=$3

[[ $# -lt 3 ]] && { echo «FATAL: some parameters not specified»; exit 1; }
[[ -f «$FROMFILE» ]] || { echo «FATAL: datafile not found»; exit 1; }

case «$3» in
«rrqm/s»)
NUMBER=2
;;
«wrqm/s»)
NUMBER=3
;;
«r/s»)
NUMBER=4
;;
«w/s»)
NUMBER=5
;;
«rkb/s»)
NUMBER=6
;;
«wkb/s»)
NUMBER=7
;;
«avgrq-sz»)
NUMBER=8
;;
«avgqu-sz»)
NUMBER=9
;;
«await»)
NUMBER=10
;;
«r_await»)
NUMBER=11
;;
«w_await»)
NUMBER=12
;;
«svctm»)
NUMBER=13
;;
«util»)
NUMBER=14
;;
*) echo ZBX_NOTSUPPORTED; exit 1 ;;
esac

grep -w $DISK $FROMFILE | tail -n +2 | tr -s ‘ ‘ |awk -v N=$NUMBER ‘BEGIN {sum=0.0;count=0;} {sum=sum+$N;count=count+1;} END {printf(«%.2f\n», sum/count);}’

Выставим на оба скрипта необходимые права:
root@debian7:~# chmod 755 /usr/local/etc/zabbix_agent_scripts/iostat-collect.sh
root@debian7:~# chmod 755 /usr/local/etc/zabbix_agent_scripts/iostat-parse.sh

Отредактируем файл конфигурации агента:
root@debian7:~# nano /usr/local/etc/zabbix_agentd.conf
Нам нужен параметр «Include«, задаем ему следующее значение:
Include=/usr/local/etc/zabbix_agent_configs

Структура каталогов должна выглядеть примерно следующим образом, если вы настраивали все точно также как и я:

zabbix disk monitoring 01

Перезапускаем агента:
root@debian7:~# service zabbix-agent restart

Проверяем подцепляется ли конфигурационный файл с пользовательскими параметрами (можно воспользоваться любой командой):
root@debian7:~# zabbix_agentd -t iostat.discovery
root@debian7:~# zabbix_get -s 127.0.0.1 -p 10050 -k iostat.discovery

Должно получиться что-то на подобии этого:

zabbix disk monitoring 02

Дальше необходимо добавить шаблон мониторинга на наш zabbix-сервер через web-интерфейс. Для этого проходим в Настройка>Шаблоны, нажимаем справа вверху «Импорт» и загружаем шаблон «iostat-disk-utilization-template.xml». Подцепляем шаблон к узлам мониторинга — Узлы сети > выбираем нужный узел > вкладка «Шаблоны» > соединяем с новым шаблоном > нажимаем «Добавить» > нажимаем «Обновить».

У автора скриптов есть одна непримечательная заметка:

Attention: Second parameter in iostat.collect must be less than Timeout option in zabbix_agentd.conf

Игнорировать её не стоит, иначе работать скрипты не будут. Для исправления заходим в конфигурационный файл zabbix-агента:

root@debian7:~# nano /usr/local/etc/zabbix_agentd.conf

Ищем опцию «Timeout» и задаем ей значение больше, чем в скрипте, например:

Timeout=20

То же самое делаем в файле конфигурации zabbix-сервера:

root@debian7:~# nano /usr/local/etc/zabbix_server.conf

Timeout=20

На этом настройка завершена, данные должны приходить. Чтобы не быть голословным, приведу пару скриншотов, свидетельствующих хотя бы то, что у меня все работает:

zabbix disk monitoring 03

zabbix disk monitoring 04

Подробнее о параметрах «iostat» можно прочитать в «манах», но на всякий случай опубликую описания тут:

avgqu-sz — The average queue length of the requests that were issued to the device.
avgrq-sz — The average size (in sectors) of the requests that were issued to the device.
await — The average time (in milliseconds) for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
r_await — The average time (in milliseconds) for read requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
rsec/s (rkB/s, rMB/s) — The number of sectors (kilobytes, megabytes) read from the device per second.
r/s — The number (after merges) of read requests completed per second for the device.
rrqm/s — The number of read requests merged per second that were queued to the device.
%util — Percentage of CPU time during which I/O requests were issued to the device (bandwidth utilization for the device). Device saturation occurs when this value is close to 100%.
w_await — The average time (in milliseconds) for write requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
w/s — The number (after merges) of write requests completed per second for the device.
wrqm/s — The number of write requests merged per second that were queued to the device.
wsec/s (wkB/s, wMB/s) — The number of sectors (kilobytes, megabytes) written to the device per second.


Кому интересно, можно почитать немного отличающиеся варианты реализации мониторинга нагрузки на жесткие диски:

Мониторинг дисковой активности с помощью zabbix

ZABBIX & IOSTAT. Мониторим диски

comments powered by HyperComments
2sophist
2022-06-19 08:51:19
<strong>3displacement</strong>
english dissertation help
2022-07-05 14:59:01
<strong>help writing a dissertation https://professionaldissertationwriting.org/</strong>
chapters writing room
2022-07-05 19:01:01
<strong>dissertation vs thesis https://professionaldissertationwriting.com/</strong>
dissertation research
2022-07-05 21:01:52
<strong>dissertation help leicester https://helpwithdissertationwritinglondon.com/</strong>
what is a dissertation
2022-07-05 23:48:54
<strong>doctoral dissertation writing help https://dissertationwritingcenter.com/</strong>
help writing a dissertation
2022-07-06 02:36:52
<strong>writing service https://dissertationhelpexpert.com/</strong>
dissertation writing services
2022-07-06 04:32:33
<strong>dissertation writing guide https://accountingdissertationhelp.com/</strong>
thesis or dissertation
2022-07-06 07:13:11
<strong>dissertation help online free https://examplesofdissertation.com/</strong>
cheap dissertation writing services
2022-07-06 08:48:45
<strong>dissertation help articles https://writing-a-dissertation.net/</strong>
thesis vs dissertation
2022-07-06 11:53:37
<strong>writing dissertation proposal https://bestdissertationwritingservice.net/</strong>
bestdissertation
2022-07-06 14:51:29
<strong>citing a dissertation https://businessdissertationhelp.com/</strong>
dissertation topics
2022-07-06 22:12:49
<strong>dissertation help services https://writingadissertationproposal.com/</strong>
writing a dissertation literature review
2022-07-06 23:50:15
<strong>writing tutor https://dissertationhelpspecialist.com/</strong>
dissertation help online free
2022-07-07 02:08:20
<strong>dissertation example https://dissertationhelperhub.com/</strong>
what is a dissertation paper
2022-07-07 05:06:07
<strong>mba dissertation writing services https://customthesiswritingservices.com/</strong>
win real money online casino for free
2022-07-25 18:57:38
<strong>ocean casino online login https://download-casino-slots.com/</strong>
online bitcoin casino
2022-07-25 22:33:02
<strong>twin river casino online https://firstonlinecasino.org/</strong>
online casino with same day payout
2022-07-26 00:01:49
<strong>online casino best payout https://onlinecasinofortunes.com/</strong>
vegas casino online
2022-07-26 04:27:54
<strong>pa casino online https://trust-online-casino.com/</strong>
slots wynn online casino
2022-07-26 10:29:24
<strong>instant withdrawal online casino usa 2021 https://9lineslotscasino.com/</strong>
tropicana casino online
2022-07-26 14:48:33
<strong>grand casino online https://internet-casinos-online.net/</strong>
free online casino bonus codes
2022-07-26 17:46:23
<strong>what is the best online casino https://cybertimeonlinecasino.com/</strong>
party casino online nj
2022-07-26 21:02:28
<strong>online casino no deposit bonus code https://1freeslotscasino.com/</strong>
atlantic city online casino
2022-07-26 23:50:11
<strong>best online casino for usa players https://vrgamescasino.com/</strong>
online casino paysafe
2022-07-27 01:36:10
<strong>gila river casino online https://casino-online-roulette.com/</strong>
mgm nj online casino
2022-07-27 03:34:56
<strong>castle casino online https://casino-online-jackpot.com/</strong>
sugarhouse casino online sportsbook
2022-07-27 06:10:06
<strong>online casino with free bonus without deposit https://onlineplayerscasino.com/</strong>
online casino ny real money no deposit
2022-07-27 10:29:16
<strong>riversweeps online casino app download https://ownonlinecasino.com/</strong>
golden nugget online casino
2022-07-27 15:19:01
<strong>vegas strip online casino https://casino8online.com/</strong>
best free vpn for windows
2022-08-07 14:50:55
<strong>best free vpn to use in china https://freevpnconnection.com/</strong>
free vpn into china
2022-08-07 17:57:15
<strong>best free pc vpn https://shiva-vpn.com/</strong>
free vpn chrome
2022-08-07 19:18:05
<strong>tor vpn https://freehostingvpn.com/</strong>
best vpn wirecutter
2022-08-07 22:05:12
<strong>torguard vpn https://ippowervpn.net/</strong>
free russian vpn
2022-08-07 23:55:10
<strong>best vpn deals https://imfreevpn.net/</strong>
best vpn service providers
2022-08-08 08:27:23
<strong>hola free vpn https://rsvpnorthvalley.com/</strong>
Яндекс.Метрика