вторник, июля 24, 2012

Установка zabbix agent на synology

Работу сетевого хранилища можно контролировать через SNMP протокол. Параметры, которые можно контролировать, великое множество. Но это проще сказать, чем сделать. Если учесть, что производители еще и сами добавляют свои MIB в устройства, то разобираться в выдаваемых параметрах можно очень долго.

Но славо богу есть системы мониторинга. Я пользуюсь 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 (дока)

Комментариев нет:

Отправить комментарий