Как установить Zabbix-agent на серверы управления и вычислительные ноды через параметр для Firstboot?¶
В данной документации описана работа со скриптом инициации агентов Zabbix на физических и виртуальных серверах.
Примечание
На момент установки Zabbix-сервер может быть не установлен, но перед установкой облака должно быть запланировано имя и IP-адрес Zabbix-сервера!
Скрипт install_zabbix-agent
:
#!/bin/bash
#проверяем, входит ли имя сервера в наш внутренний домен облака
if [[ $ZABBIX_HOSTNAME == *"$CLOUD_ZONE" ]]; then
#проверяем доступность DNS-сервера облака
host $CLOUD_ZONE
while [ $? -gt "0" ]; do sleep 10; host $CLOUD_ZONE; done
#проверяем внесено ли имя сервера zabbix
host $ZABBIX_HOSTNAME
if [ $? -gt "0" ]; then
#имя сервера zabbix в домене не найдено, вносим
echo "server $CLOUD_DNS1
update delete $ZABBIX_HOSTNAME
update add $ZABBIX_HOSTNAME 86400 a $ZABBIX_IP
send
" > /etc/bind/zabbix.update.txt
nsupdate -k /etc/bind/Kupdate_zone.+163+04854.private -v /etc/bind/zabbix.update.txt
#цикл внесения имени в DNS
#host $ZABBIX_HOSTNAME
#while [ $? -gt "0" ]; do sleep 10; nsupdate -k /etc/bind/Kupdate_zone.+163+04854.key -v /etc/bind/zabbix.update.txt; host $ZABBIX_HOSTNAME; done
fi
fi
#устанавливаем агента и настраиваем его
apt-get install -y zabbix-agent
sed -i "s/^Server=.*/Server=$ZABBIX_HOSTNAME/" /etc/zabbix/zabbix_agentd.conf
sed -i "s/^ServerActive=.*/ServerActive=$ZABBIX_HOSTNAME/" /etc/zabbix/zabbix_agentd.conf
systemctl restart zabbix-agent
Используемые переменные, инициируемые перед развертыванием облака:
ZABBIX_HOSTNAME
,ZABBIX_IP
- имя и IP-адрес сервера Zabbix;CLOUD_DNS1
- IP-адрес DNS сервера для внесения записи в DNS-зону облака;CLOUD_ZONE
- DNS-зона облака.
Описание работы скрипта:
- Определяется, состоит ли доменное имя Zabbix-сервера в DNS-зоне облака.
- Если п.1 подтверждается, то проверяется, существует ли запись в DNS-зоне для Zabbix-сервера.
- Если п.2 не подтверждается, то производится внесение записи для Zabbix-сервера в DNS-зону облака.
- Устанавливается пакет Zabbix-agent.
- Производится изменение параметров Server и ServerActive.
- Перезапускается служба Zabbix-agent с измененными параметрами.
Интеграция скрипта в AccentOS Firstboot:
http_server=cobbler.test.loc
release=stable
export ID=$(chroot /target /usr/bin/awk -F= '$1=="ID" { print $2 ;}' /etc/os-release)
linux_distro=$ID
export VERSION_ID=$(chroot /target /usr/bin/awk -F= '$1=="VERSION_ID" { print $2 ;}' /etc/os-release)
linux_version=$VERSION_ID
…
wget -O /target/var/lib/firstboot/scripts/99-install_zabbix-agent.sh http://$http_server/$release/$linux_distro/$linux_version/install_zabbix-agent