Имеем XenServer 7.0. Необходимо установить на него zabbix агент. Также хотелось бы видеть состояние RAID массива Smart Array. Ставим Zabbix агента.
adduser zabbix rpm --import http://repo.zabbix.com/RPM-GPG-KEY-ZABBIX rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.1-1.el7.x86_64.rpm
Автоматический запуск агента при старте гипервизора.
chkconfig zabbix-agent on
Не забываем про фаерволл.
iptables -I INPUT -p tcp -m conntrack --ctstate NEW,RELATED,ESTABLISHED -m tcp --dport 10050 -j ACCEPT iptables -I OUTPUT -p tcp --sport 10050 -m conntrack --ctstate ESTABLISHED -j ACCEPT service iptables save
Для сборки утилиты показывающей состояние RAID контроллера HP необходимы дополнительные компоненты.
Подключаем репозитории.
sed -i "s/\$releasever/7\.2\.1511/g" /etc/yum.repos.d/CentOS-Base.repo sed -i "s/\#baseurl/baseurl/g" /etc/yum.repos.d/CentOS-Base.repo sed -i "s/enabled\=0/enabled\=1/g" /etc/yum.repos.d/CentOS-Base.repo
В конечном итоге файл /etc/yum.repos.d/CentOS-Base.rep должен выглядеть так:
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=os&infra=$infra baseurl=http://mirror.centos.org/centos/7.2.1511/os/$basearch/ enabled=1 exclude=kernel kernel-abi-whitelists kernel-debug kernel-debug-devel kernel-devel kernel-doc kernel-tools kernel-tools-libs kernel-tools-libs-devel linux-firmware biosdevname centos-release systemd* stunnel kexec-tools ocaml* gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=updates&infra=$infra baseurl=http://mirror.centos.org/centos/7.2.1511/updates/$basearch/ enabled=1 exclude=kernel kernel-abi-whitelists kernel-debug kernel-debug-devel kernel-devel kernel-doc kernel-tools kernel-tools-libs kernel-tools-libs-devel linux-firmware biosdevname centos-release systemd* stunnel kexec-tools ocaml* gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=extras&infra=$infra baseurl=http://mirror.centos.org/centos/7.2.1511/extras/$basearch/ enabled=1 exclude=ocaml* gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=7.2.1511&arch=$basearch&repo=centosplus&infra=$infra baseurl=http://mirror.centos.org/centos/7.2.1511/centosplus/$basearch/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Решение подсмотрено здесь.
Устанавливаем ПО.
yum install openssl-devel gcc make
Скачиваем саму утилиту и собираем ее. Список поддерживаемого оборудования и сайт проекта здесь.
wget http://heanet.dl.sourceforge.net/project/cciss/cciss_vol_status/cciss_vol_status-1.11.tar.gz tar xvf cciss_vol_status-1.11.tar.gz cd cciss_vol_status-1.11/ ./configure make make install cd .. rm -Rf cciss_vol_status-1.11*
Смотрим что с нашим массивом. В зависимости от модели контроллера/сервера/ОС параметр /dev/* может быть иным.
/usr/local/bin/cciss_vol_status /dev/cciss/c0d0
Правим: vi /etc/zabbix/zabbix_agentd.conf и добавляем.
# Smart Array RAID Volume 0 status UserParameter=cciss_vol_status,/usr/local/bin/cciss_vol_status /dev/cciss/c0d0 | awk 'NR==1 {print $10}' | tr -d '\.'
На всякий случай.
chmod +s /usr/local/bin/cciss_vol_status
Добавляем — visudo.
zabbix ALL = NOPASSWD:/opt/xensource/bin/xe zabbix ALL = NOPASSWD:/usr/local/bin/cciss_vol_status
Запускаем агент.
service zabbix-agent start
Пример шаблона для zabbix:
2.0 2015-10-02T07:40:04Z Templates_Custom mod_Smart_Array_RAID_Volume_0_status mod_Smart_Array_RAID_Volume_0_status Templates_Custom HP_Smart_Array Smart Array RAID Volume 0 status 0 0 cciss_vol_status 300 365 365 0 4 0 0 0 0 1 0 0 0 HP_Smart_Array {mod_Smart_Array_RAID_Volume_0_status:cciss_vol_status.str(OK)}<>1 Smart_Array_RAID_Volume_0_status 0 4 0