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

  • Tutorial
Не так давно 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. Вроде ничего не забыл
  • +11
  • 5,8k
  • 4
Поделиться публикацией

Похожие публикации

Комментарии 4
    +1
    Думаю, rpm'ку собрать было бы трувейнее (Photon OS Administration Guide)
      0
      Простите, а зачем это все?
      Ну, в смысле, состояние виртуальной среды можно через API мониторить — у заббикса как раз есть инструменты для этого. А vcenter, если с ним чего и случится — недолго и с нуля развернуть.
      Любопытно получить чуть больше информации о том, как такой мониторинг жизнь облегчает, вот. Какие проблемы он позволяет вовремя заметить, ну и т.п.
        0
        throttle, пример:
        Есть KB связанные с VCSA, которые упираются в то, что где-то кончилось место на диске, например касательно vPostgreSQL
        • Решение Vmware — пилить скрипты, с отправкой на Email нотификации о том, что место кончается.
        • Решение с помощью Zabbix, это мониторинг с внешней стороны, как для стандартной Linux машины.


        Ещё пример: как я уже описал в статье, например мониторинг состояния VMware сервисов, чтобы если они сломались, мы об этом знали, не имея доступ к vSphere.

        Ответить в совсем полном объёме на данный вопрос, в текущий момент, не могу, т.к. то что я описал выше это попытка предикта проблем, и вполне возможно что даже текущая реализация мониторинга может не закрыть все вопросы.

        А мониторинг заббикса через API сферы очень ограничен и никак не позволяет контролировать происходящее внутри VM, что возможно и хорошо, т.к. пилить подобное через API, создаст больше проблем, чем поможет с мониторингом.
        0
        ещё нужно
        1) не забыть в конфиге забикса разрешить запускаться от рута
        2) открыть порт 10050

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое