#!/bin/bash

# Mettre le système à jour
apt update

# Installer le dépot de Zabbix 7.2
wget https://repo.zabbix.com/zabbix/7.2/release/debian/pool/main/z/zabbix-release/zabbix-release_latest_7.2+debian12_all.deb
dpkg -i zabbix-release_latest_7.2+debian12_all.deb
apt update

# Installer le serveur, l'interface et l'agent
apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent -y

# Créer la base SQL
apt install mariadb-server -y
clear
echo "|----------------------------------------------------------------"
echo "| Exécution du script mysql_secure_installation, tout par défaut, changez bien le mot de passe root"
echo
mysql_secure_installation
echo
mysql -uroot -e"create database zabbix character set utf8mb4 collate utf8mb4_bin"
mysql -uroot -e"create user zabbix@localhost identified by 'SuperPassword'"
mysql -uroot -e"grant all privileges on zabbix.* to zabbix@localhost"
mysql -uroot -e"set global log_bin_trust_function_creators = 1"

# Entrer le mot de passe SuperPassword
clear
echo "|----------------------------------------------------------------"
echo "| Veuillez entrer le mot de passe 'SuperPassword' lorsque demandé :"
zcat /usr/share/zabbix/sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix

# Désactiver l'option après import de la base
mysql -uroot -e"set global log_bin_trust_function_creators = 0"

# Indiquer le mot de passe de la base SQL à Zabbix :
sed -i 's/# DBPassword=/DBPassword=SuperPassword/' /etc/zabbix/zabbix_server.conf

# Activer le vhost sur le port 8080
sed -i 's/#        listen/       listen/' /etc/zabbix/nginx.conf

# Démarrer et activer les services
systemctl restart zabbix-server zabbix-agent nginx php8.2-fpm
systemctl enable zabbix-server zabbix-agent nginx php8.2-fpm

clear
echo "----------------------------------------------------------------"
echo "| Zabbix est installé et accessible depuis un navigateur web :"
echo
echo "| http://IP-SERVEUR:8080"
echo
