Добрый день. Есть ли возможность мониторить программный рейд 1 (mdadm) в linux (centos 5.4). Жесткие диски разбит на 3 раздела md0,md1,md2.
Ad Widget
Collapse
Мониторинг программного рейда в linux на zabbix.
Collapse
X
-
Tags: None
-
На примере RedHat Linux, все данные в файлах /proc/mdstat и /proc/diskstats.
В /etc/zabbix/zabbix_agentd.conf
Добавляются строки
UserParameter=softraid.status,egrep "\[.*_.*\]" /proc/mdstat|wc –l
UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$4}'
UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$7}'
UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$8}'
UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$11}'
UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$12}'
UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$13}'
UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$6}'
UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | grep $1 | head -1 | awk '{print $$10}'
Соответственно softraid.status, это количество Raid массивов в degrade состоянии. 0 - все Ok.Last edited by dima_dm; 09-04-2010, 09:48. -
Спасибо добрый человек.На примере redhat linux, все данные в файлах /proc/mdstat и /proc/diskstats.
В /etc/zabbix/zabbix_agentd.conf
Добавляются строки
userparameter=softraid.status,egrep "\[.*_.*\]" /proc/mdstat|wc –l
Соответственно softraid.status, это количество raid массивов в degrade состоянии. 0 - все ok.Comment
-
Более грамотный скрипт
Этот скрипт использует промежуточное хранение данных и дополняет zabbix-agentd.conf всего одной строкой:
UserParameter=custom.vfs.dev[*], {some_path}/io.sh $2 $1
В приложении пример items и графики
PS: Возможно ли снимать с md что-нибудь кроме read-write\sectors-ops?Code:#!/bin/bash ##DECRIPTION # $1 - имя узла сети в zabbix'е (не используется) # $2 - измеряемая метрика # $3 - http ссылка на станицу статистики io ### OPTIONS VERIFICATION if [[ -z "$1" || -z "$2" ]]; then exit 1 fi ## PARAMETERS DEVICE="$1" #device METRIC="$2" # измеряемая метрика STATURL="/proc/diskstats" # адрес apache статистики CACHETTL="10" # Время действия кеша в секундах (чуть меньше чем период опроса элементов) CACHE="/tmp/zabbix/iostat-`echo $STATURL | md5sum | cut -d" " -f1`.cache" ### RUN ## Проверка кеша: # время создание кеша (или 0 есть файл кеша отсутствует или имеет нулевой размер) if [ -s "$CACHE" ]; then TIMECACHE=`stat -c"%Z" "$CACHE"` else TIMECACHE=0 fi # текущее время TIMENOW=`date '+%s'` # Если кеш неактуален, то обновить его (выход при ошибке) if [ "$(($TIMENOW - $TIMECACHE))" -gt "$CACHETTL" ]; then cat "$STATURL"|grep d > $CACHE || exit 1 fi ## Извлечение метрики: DEVSTAT= set -a $(grep $DEVICE $CACHE) case $METRIC in "read.ops") data=$4;; # Reads completed "read.merged") data=$5 ;; # Reads merged "read.sectors") data=$6 ;; # 512 byte sectors read "read.ms") data=$7 ;; # milliseconds spent reading "write.ops") data=$8 ;; # Writes completed "write.merged") data=$9 ;; # Writes merged "write.sectors") data=${10} ;; # 512 byte sectors written "write.ms") data=${11} ;; # milliseconds spent writing "io.active") data=${12} ;; # I/Os currently in progress "io.ms") data=${13} ;; # milliseconds spent doing I/Os "io.weight") data=${14} ;; # weighted # of milliseconds spent doing I/O *) exit -1 ;; esac echo $data exit 0
io.ms, например?Comment
-
Чтобы не поднимать новую тему напишу тут
есть программный реид на линукс, хотелось бы мониторить с помощью zabbix
на данный момент использую стандартный шаблон для Linux
добавил строку в /etc/zabbix/zabbix_agentd.confuserparameter=softraid.status,egrep "\[.*_.*\]" /proc/mdstat|wc –l
Соответственно softraid.status, это количество raid массивов в degrade состоянии. 0 - все ok.
не могу сообразить что делать дальше?
как я понимаю нужно сделать элемент данных softraid.status, далее
триггер, указав в нем значение softraid.status полученное из элемента данных, или как? можно немного подробнее если не прав
заранее спасибоLast edited by lexey; 01-04-2014, 13:41.Comment
-
У меня такие триггеры
Состояние SoftWare RAID
SoftWare RAID status
{Template_HP_DL320G4:softraid.status.last(0)}>0
Триггер на проблемы с конфигурацией элемента данных
zabbix_agent configuration SoftWare RAID status
{Template_HP_DL320G4:softraid.status.nodata(14400) }>0Comment
-
Так понимаю, у вас используется встроенный hardware RAID. Если так, можно мониторить при помощи HP'шной утилиты:
Code:UserParameter=hp.battery,C:\PROGRA~2\Compaq\Hpacucli\Bin\hpacucli.exe ctrl all show status |find "Battery/Capacitor Status" UserParameter=hp.cache,C:\PROGRA~2\Compaq\Hpacucli\Bin\hpacucli.exe ctrl all show status |find "Cache Status" UserParameter=hp.controller,C:\PROGRA~2\Compaq\Hpacucli\Bin\hpacucli.exe ctrl all show status |find "Controller Status" UserParameter=hp.physdrive,C:\PROGRA~2\Compaq\Hpacucli\Bin\hpacucli.exe ctrl slot=0 pd all show |find " physicaldrive"
Comment
-
спасибо, из всего перечисленного с командной строки на сервере получился результат со статусом контроллера. Не совсем ясно какое значение принимает hp.controller, чтобы сделать итемс и триггер. Не могу сообразить как на zabbiх сервере в командной строке проверить значение hp.controller для данного сервера, подскажите пожалуйстаCode:C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.e xe" ctrl all show status |find "Controller Status" Controller Status: OK C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.e xe" hpacucli.exe ctrl slot=0 pd all show |find " physicaldrive" C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.e xe" hpacucli.exe ctrl all show status |find "Cache Status" C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.e xe" hpacucli.exe ctrl all show status |find "Battery/Capacitor Status"
Comment
-
Странно, должно все работатьспасибо, из всего перечисленного с командной строки на сервере получился результат со статусом контроллера. Не совсем ясно какое значение принимает hp.controller, чтобы сделать итемс и триггер. Не могу сообразить как на zabbiх сервере в командной строке проверить значение hp.controller для данного сервера, подскажите пожалуйста
Возможно в вашей версии утилиты hpacucli немного отличается синтаксис, если так, то поправить его не займет много времени.
Item принимает значение: Controller Status: OK (или Failed)
Trigger можно настроить так, для примера статус батарейки:
Code:{HOSTNAME:hp.battery.regexp(Failed)}=1Comment
-
добавил строку в zabbix_agentd.conf
пробовал так
#UserParameter=hp.controller,C:\PROGRA~2\Compaq\Hp acucli\Bin\hpacucli.exe ctrl all show status |find "Controller Status"
и так
UserParameter=hp.controller,C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe ctrl all show status |find "Controller Status"
создаю элемент
В последних событиях появляется значение hp.controller=0
но через 30сек(время обновления), элемент пишет что не поддерживается
в чем ошибка? правильно ли указан тип информации как "числовой"
в таком случае 0-это без ошибки а 1-будет с ошибкой?
хотя в командной строке в windows сервере выполняется:
C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe" ctrl all show status |find "Controller Status"
Controller Status: OKLast edited by lexey; 07-04-2014, 13:53.Comment
-
Попробуйте один раз выполнить утилиту без выделения специальных строк и проверить, как это выглядит в вашей версии.
А уже после этого корректируйте строку поиска для find
Code:C:\Documents and Settings\admin>"C:\Program Files\Compaq\Hpacucli\Bin\hpacucli.exe" ctrl all show status
Sincerely yours,
AlekseyComment
-
спасибо, с элементом данных получилось
вопрос о создании триггера, как правильно сделать?
не могу разобраться с текстовыми выражениями для триггера
на рисунке пытался добавить выражение, не могу понять где ошибкаLast edited by lexey; 09-04-2014, 11:55.Comment
Comment