Установка Zabbix Agent на VCSA 6.5

в 9:33, , рубрики: linux, VCSA, VMware, zabbix

Не так давно VMware выпустила VCSA 6.5, которую рекомендовала к использованию, вместо традиционной инсталляции vCenter на платформу Windows. Соответственно у некоторых мог появиться вопрос, а как мониторить VCSA?

Инфа под катом: Как собрать и установить Zabbix Agent на VCSA + Немного информации об устройстве VCSA.

Лирика:

Кто уже разворачивал VCSA 6.5 и пытался смотреть что там под капотом, знает, что VMware теперь решила применять PhotonOS вместо своих «традиционных» сборок Suse.
Если почитать доки к PhotonOS, можно выяснить что их дистрибьютив RPM based, однако они используют свою реализацию пакетного менеджера tdnf.

Условия:

Никто не хочет мусорить на VCSA. VCSA не использует пакетный менеджер для контроля компонентов VCSA, при установке всех необходимых компонентов, для сборки zabbix agent есть вероятность сломать VCSA и резко увеличить уровень «энтропии» внутри. Поэтому его надо добыть в таком виде, чтобы он завёлся на PhotonOS.

Порядок действий:

1. Нужно установить PhotonOS-1.0 Full версию, чтобы там был предустановлен обвес для компиляции (gcc, make & etc). Чтобы получить ISO образ для инсталяции, отправляемся на: vmware.github.io/photon. Находим ссылку на скачивание: Photon OS, Version 1.0 — Full ISO ~ 2.4Gb. Скачиваем образ.

2. Создаём чистую VM под PhotonOS в любой удобной среде виртуализации. Важная деталь:

!!!root диск на который будет производится установка, должен определяться как sda!!!

Т.к. инсталлятор у PhotonOS ищет /dev/sda и если не находит, просто выпадает в консоль
Собственно производим стандартную установку (Пример: Офф доки)
Инсталятор спросит тип устанавливаемой системы выбираем просто «PhotonOS Full».

Ждём окончания установки и перезагружаем систему.

3. Компиляция Zabbix Agent.
Открываем консоль VM с PhotonOS и логинимся. По желанию включаем удалённый логин для root в /etc/ssh/sshd_config

Нужно скачать архив с исходниками Zabbix
Прямая ссылка на SourceForge

Т.к. в случае с VCSA удалённо закинуть данные по SSH не получится
(там свой shell, требующей отдельной команды, чтобы открыть обычный bash)
Вместо того, чтобы подключаться к VM, будем подключаться к самому себе.

Распаковываем архив:

tar -xvf zabbix-3.2.3.tar.gz /tmp/zabbix/

Забираем данные на VM (команды должны выполняться на PhotonOS машине):

scp -r your_user@your_machine:/tmp/zabbix/ /root/zabbix/

Забрав исходники, остаётся сделать:

# cd /root/zabbix/
# ./configure --enable-agent
# make

После завершения компиляции получится бинарник, который будет работать на VCSA:

./src/zabbix_agent/zabbix_agentd — сам бинарь
./conf/zabbix_agentd.conf — конфиг к бинарю, который обычно лежит в /etc/zabbix/zabbix_agentd.conf

VCSA использует systemd в качестве init, поэтом для работы Zabbix Agent нужен будет сервис, пример сервиса:

# /etc/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
Documentation=man:zabbix_agentd
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/zabbix_agentd -f -c /etc/zabbix/zabbix_agentd.conf
Restart=always
RestartSec=5s

[Install]
WantedBy=multi-user.target

Перемещаем необходимые из VM:

# scp ./src/zabbix_agent/zabbix_agentd your_user@your_machine:/tmp/zabbix_agentd
# scp ./conf/zabbix_agentd.conf your_user@your_machine:/tmp/zabbix_agentd.conf

4. Установка Zabbix Agent на VCSA. Подключаемся по ssh на VCSA, появится приглашение ввода, вводим shell, чтобы получить доступ к Linux консоли.

# scp your_user@your_machine:/tmp/zabbix_agentd /usr/sbin/zabbix_agentd
# mkdir -p /etc/zabbix
# scp your_user@your_machine:/tmp/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf
# tee /etc/systemd/system/zabbix-agent.service - вставляем содержимое systemd сервиса, и прерываем ввод Ctrl+C
# systemctl enable zabbix-agent
# vim /etc/zabbix/zabbix_agentd.conf - редактируем по необходимости
# systemctl restart zabbix-agent

P.S. Примерный список сервисов которые можно мониторить

vmware-vpxd
OS
vmware-vpostgres
vsphere-client
vsphere-ui
vmware-vpxd-svcs
vmware-sps
vmware-stsd
vmware-perfcharts
vmware-content-library
vmware-sts-idmd
vmware-updatemgr
vmware-psc-client
vmware-cm
vmware-vapi-endpoint
applmgmt
vmcad
vmware-eam
vmware-cis-license
vmware-vsm
vmware-mbcs
vmware-sca
vmware-vsan-health
vmware-rbd-watchdog
vmware-imagebuilder
vmware-rhttpproxy
vcha
vmafdd
vmdird
vmdnsd
vmware-netdumper
vmonapi
vmware-statsmonitor
vmware-vmon

Скрипт для мониторинга vmware сервисов

#!/bin/bash
# For VMware VCSA 6.5

export VMWARE_PYTHON_PATH=/usr/lib/vmware/site-packages
export VMWARE_LOG_DIR=/var/log
export VMWARE_DATA_DIR=/storage
export VMWARE_CFG_DIR=/etc/vmware

command -v service-control &> /dev/null || exit 1

case "$1" in
    discovery)
        {
            echo '{"data":['
            service-control --list-services | sed 's/ (/:(/g' | 
            while read -r string; do
                echo '{'
                echo '"{#SERVICE}":"'"$(echo $string | cut -d':' -f1)"'"',
                echo '"{#SERVICE_DESCR}":"'"$(echo $string | cut -d':' -f2 | tr -d ')(')"'"'
                echo -n '},'
            done
            echo ']}'
        } | sed 's},]}]g'
    ;;
    status) service-control "--$1" "$2" 2>&1 | grep -c Running ;;
esac

P.S.S. Вроде ничего не забыл

Автор: nefelim4ag

Источник

Поделиться

* - обязательные к заполнению поля