Не так давно 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
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