Как установить 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-зона облака.

Описание работы скрипта:

  1. Определяется, состоит ли доменное имя Zabbix-сервера в DNS-зоне облака.
  2. Если п.1 подтверждается, то проверяется, существует ли запись в DNS-зоне для Zabbix-сервера.
  3. Если п.2 не подтверждается, то производится внесение записи для Zabbix-сервера в DNS-зону облака.
  4. Устанавливается пакет Zabbix-agent.
  5. Производится изменение параметров Server и ServerActive.
  6. Перезапускается служба 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