#!/bin/bash

# Переменная с IP-адресом сервера Zabbix #
ZABBIX_SERVER="192.168.1.100"

# Имя текущего хоста
HOSTNAME=$(hostname)

# Порт Zabbix-Agent
PORT="10050"

# Файл конфигурации Zabbix-Agent
CONFIG_FILE="/etc/zabbix/zabbix_agentd.conf"

# Функция установки Zabbix-Agent, если он не установлен #
install_zabbix_agent() {
    echo "Установка Zabbix Agent..."
    dnf install -y zabbix-agent
}

# Проверяем установлен ли Zabbix-Agent #
if ! rpm -q zabbix-agent &>/dev/null; then
    install_zabbix_agent
    echo "Zabbix Agent установлен."
fi

# Остановка Zabbix-Agent, если он работает #
if systemctl is-active --quiet zabbix-agent; then
    echo "Остановка Zabbix Agent..."
    systemctl stop zabbix-agent
fi

# Конфигурирование Zabbix-Agent #
echo "Конфигурирование Zabbix Agent..."
sed -i "s/^Server=127.0.0.1/Server=$ZABBIX_SERVER/" $CONFIG_FILE
sed -i "s/^ServerActive=.*/ServerActive=$ZABBIX_SERVER/" $CONFIG_FILE
sed -i "s/^Hostname=.*/Hostname=$HOSTNAME/" $CONFIG_FILE

# Включение Zabbix-Agent #
echo "Включение Zabbix Agent..."
systemctl enable zabbix-agent

# Добавление исключения в UFW #
if ! command -v ufw &> /dev/null; then
    echo "UFW не установлен. Пожалуйста, установите UFW."
else
	ufw allow $PORT
fi

# Запуск Zabbix-Agent #
echo "Запуск Zabbix Agent..."
systemctl start zabbix-agent

# Вывод состояния Zabbix-Agent #
if systemctl is-active --quiet zabbix-agent; then
    echo "Zabbix Agent успешно запущен."
else
    echo "Ошибка: Zabbix Agent не запущен."
fi