Работу сетевого хранилища можно контролировать через SNMP протокол. Параметры, которые можно контролировать, великое множество. Но это проще сказать, чем сделать. Если учесть, что производители еще и сами добавляют свои MIB в устройства, то разобираться в выдаваемых параметрах можно очень долго.
Но славо богу есть системы мониторинга. Я пользуюсь Zabbix. В нутри сетевых хранилищ Synology установлен linux. В систему можно установить менеджер пакетов - ipkg. С помощью этого менеджера можно установить различные пакеты. Zabbix среди пакетов нет. Потому будем устанавливать из исходников.
Скорее всего выскочит ошибка:
Делаем так:
Можете еще убедится что файл iconv.h находится именно в /opt/include/:
Собираем и устанавливаем:
Сразу создадим группу и пользователя для работы сервиса:
И создадим каталог для логов:
Редактируем конфиг /usr/local/etc/zabbix_agentd.conf:
(Некоторые параметры не обязательны.)
Пришлось написать init скрипт. Создать файл /usr/local/etc/rc.d/zabbix_agentd.sh со след. содержимым:
(версия поновее)
На сервере мониторинга:
P.S.
Скрипт не доделан. Есть желание сделать перезапуск сервиса и дотестировать до конца. Пока проблем не замечено. У вас есть право использовать такие прифексы при компиляции как --prefix, --sysconfdir (дока)
Но славо богу есть системы мониторинга. Я пользуюсь Zabbix. В нутри сетевых хранилищ Synology установлен linux. В систему можно установить менеджер пакетов - ipkg. С помощью этого менеджера можно установить различные пакеты. Zabbix среди пакетов нет. Потому будем устанавливать из исходников.
# ipkg install gcc make bison flex gconv-modules adduser (...) # cd # mkdir soft # cd soft/ # wget http://citylan.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.0.1/zabbix-2.0.1.tar.gz # tar zxf zabbix-2.0.1.tar.gz # cd zabbix-2.0.1 # ./configure --enable-agent
Скорее всего выскочит ошибка:
checking for ICONV support... no configure: error: Unable to find iconv.h "no"
Делаем так:
# ln -s /opt/include/ /usr/include
Можете еще убедится что файл iconv.h находится именно в /opt/include/:
# find / -name iconv.h
Собираем и устанавливаем:
# make # make install
Сразу создадим группу и пользователя для работы сервиса:
# addgroup zabbix # adduser -G zabbix zabbix
И создадим каталог для логов:
# mkdir /var/log/zabbix/ # msk-soft-srv> chown zabbix:zabbix /var/log/zabbix/
Редактируем конфиг /usr/local/etc/zabbix_agentd.conf:
PidFile=/tmp/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log Server=192.168.42.4 ListenIP=192.168.41.32 ListenPort=10050 SourceIP=192.168.41.32
(Некоторые параметры не обязательны.)
Пришлось написать init скрипт. Создать файл /usr/local/etc/rc.d/zabbix_agentd.sh со след. содержимым:
#!/bin/sh # author: Konstantin Kruglov # email: kruglovk@gmail.com # www: k0st1an.blogspot.com # description: init script for use on synology devices # version: 0.1, 07/24/2012 # usage: # cp zabbix_agend.sh /usr/local/etc/rc.d/ # chmod +x /usr/local/etc/rc.d/zabbix_agend.sh ######################################################## ConfFile="/usr/local/etc/zabbix_agentd.conf" if [ -e ${ConfFile} ]; then if [ -r ${ConfFile} ]; then source ${ConfFile} else echo "Config file (${ConfFile}: problem read)" exit 1 fi else echo "Config file (${ConfFile} not found)" exit 1 fi Status=`pidof zabbix_agentd > /dev/null && echo $?` case "$1" in start) echo -n "Start zabbix_agentd..." if [ -z "${Status}" ]; then /usr/local/sbin/zabbix_agentd -c ${ConfFile} if [ "${?}" = "0" ]; then sleep 1 echo " ok" exit 0 else sleep 1 echo " false" exit 1 fi else echo "Zabbix already run" exit 1; fi ;; stop) echo -n "Stop zabbix_agentd..." if [ -z ${Status} ]; then echo " not runing" exit 1 fi if [ -e "${PidFile}" ]; then kill `cat ${PidFile}` if [ "${?}" = "0" ]; then sleep 1 echo " ok" exit 0 else sleep 1 echo " false" exit 1 fi fi ;; status) echo -n "Status zabbix_agentd..." if [ -z ${Status} ]; then echo " not runing" else echo " runing" fi exit 0 ;; *) echo "Usage: ${0} {start|stop|status}" exit 1 ;; esac
(версия поновее)
На сервере мониторинга:
# zabbix_get -s 192.168.41.32 -k system.cpu.util[,system,] 0.938541
P.S.
Скрипт не доделан. Есть желание сделать перезапуск сервиса и дотестировать до конца. Пока проблем не замечено. У вас есть право использовать такие прифексы при компиляции как --prefix, --sysconfdir (дока)