Мониторинг XenServer 7.0 и статуса массива Smart Array с помощью Zabbix.

Имеем 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:


<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
    <version>2.0</version>
    <date>2015-10-02T07:40:04Z</date>
    <groups>
        <group>
            <name>Templates_Custom</name>
        </group>
    </groups>
    <templates>
        <template>
            <template>mod_Smart_Array_RAID_Volume_0_status</template>
            <name>mod_Smart_Array_RAID_Volume_0_status</name>
            <description/>
            <groups>
                <group>
                    <name>Templates_Custom</name>
                </group>
            </groups>
            <applications>
                <application>
                    <name>HP_Smart_Array</name>
                </application>
            </applications>
            <items>
                <item>
                    <name>Smart Array RAID Volume 0 status</name>
                    <type>0</type>
                    <snmp_community/>
                    <multiplier>0</multiplier>
                    <snmp_oid/>
                    <key>cciss_vol_status</key>
                    <delay>300</delay>
                    <history>365</history>
                    <trends>365</trends>
                    <status>0</status>
                    <value_type>4</value_type>
                    <allowed_hosts/>
                    <units/>
                    <delta>0</delta>
                    <snmpv3_contextname/>
                    <snmpv3_securityname/>
                    <snmpv3_securitylevel>0</snmpv3_securitylevel>
                    <snmpv3_authprotocol>0</snmpv3_authprotocol>
                    <snmpv3_authpassphrase/>
                    <snmpv3_privprotocol>0</snmpv3_privprotocol>
                    <snmpv3_privpassphrase/>
                    <formula>1</formula>
                    <delay_flex/>
                    <params/>
                    <ipmi_sensor/>
                    <data_type>0</data_type>
                    <authtype>0</authtype>
                    <username/>
                    <password/>
                    <publickey/>
                    <privatekey/>
                    <port/>
                    <description/>
                    <inventory_link>0</inventory_link>
                    <applications>
                        <application>
                            <name>HP_Smart_Array</name>
                        </application>
                    </applications>
                    <valuemap/>
                    <logtimefmt/>
                </item>
            </items>
            <discovery_rules/>
            <macros/>
            <templates/>
            <screens/>
        </template>
    </templates>
    <triggers>
        <trigger>
            <expression>{mod_Smart_Array_RAID_Volume_0_status:cciss_vol_status.str(OK)}<>1</expression>
            <name>Smart_Array_RAID_Volume_0_status</name>
            <url/>
            <status>0</status>
            <priority>4</priority>
            <description/>
            <type>0</type>
            <dependencies/>
        </trigger>
    </triggers>
</zabbix_export>


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *