6 Commits

Author SHA1 Message Date
Guillaume Emorine
c9a8886390 Ajout des scripts d'installation de Zabbix, et rajout d'informations dans la documentation. 2024-11-08 08:51:57 +01:00
Jibril Bouhbas
df0710ed22 modifié : README.md 2024-11-08 08:12:52 +01:00
Jibril Bouhbas
c8e1b99de1 modifié : README.md 2024-11-07 17:16:25 +01:00
Guillaume Emorine
20d84138d2 Modification et étoffement de la documentation sur le README. 2024-11-07 15:54:17 +01:00
Guillaume Emorine
f411491675 Ajout des fichiers de vérification Goss et complémentation de la documentation. 2024-11-07 11:09:45 +01:00
Jibril Bouhbas
cbb8537b40 modifié : README.md 2024-11-07 11:03:25 +01:00
8 changed files with 235 additions and 5 deletions

View File

@@ -1,11 +1,44 @@
# sdis29-1 # sdis29-1
## Dépôt Git des programmes sources - SDIS 29.
Dépôt Git des programmes sources - SDIS 29. Version: v.0.0.1h-ge
## Création initiale des serveurs ### Création initiale des serveurs :
- Création des serveurs **ap31-prod** et **ap31-test** via un clone intégral d'une template sur pxlab1. * Création des serveurs **ap31-prod** et **ap31-test** via un clone intégral d'une template sur pxlab1.
* Disques redimensionnés de 2Go a 10Go.
* Définition des IPs et ajout des clés SSH dans les machines.
* Création du serveur **ap31-mon** via un clone intégral d'une template.
* Définition de l'IP et ajout des clés SSH.
* Disque redimensionné de 2G à 10Go.
* Doublement de la RAM sur **ap31-mon**. (1024Mo --> 2048Mo)
* Machines définies sur la *timezone* Europe/Paris (UTC +1)
- Disques redimensionnés de 2Go a 10Go. ### Installation des paquets :
- Définition des IPs et ajout des clé SSH dans les machines. * Ajout du fichier `/etc/apt/apt.conf` récupéré depuis depl, pour pouvoir passer à travers le proxy.
* Commande `apt update` effectuée sur chaque machine.
* **ap31-prod** : mariadb-server, tomcat10, zabbix-agent2, qemu-guest-agent, wget, goss
* **ap31-test** : mariadb-server, tomcat10, phpmyadmin, zabbix-agent2, qemu-guest-agent, wget, goss
* **ap31-mon** : apache2, mariadb-server, zabbix-server-mysql, zabbix-frontend-php, zabbix-apache-conf, zabbix-sql-scripts, zabbix-agent, journald-remote
* Ajout de goss sur **ap31-test** et **ap31-prod**, et création de fichiers de test fonctionnels pour les deux machines.
### Configuration de Zabbix :
* Pour **ap31-mon**, installation de Zabbix avec un script, et configuration initiale de Zabbix via l'interface web.
* Pour **ap31-prod** et **ap31-test**, modification des fichiers `/etc/zabbix/zabbix_agent2.conf` pour ajouter l'IP du serveur Zabbix et le *hostname* avec un script.
* Une fois fait, ajout de **ap31-prod** et **ap31-test** dans Zabbix sur le *template* `Linux by Zabbix agent`.
* Une fois les serveurs ajoutés avec une interface de détection de type `agent` sur l'IP de la machine correspondante, détection sur Zabbix et la supervision est complétée.
* Ajout de la passerelle **gwsio3** avec une *template* `ICMP Ping` sur une interface SNMP avec l'IP de la passerelle, et supervision des temps de réponse et du status possible.
### Centralisation de la gestion des logs :
* Installation du paquet `systemd-journal-remote` sur chaque serveur.
* **ap31-mon** : utilisation d'un script journald-rcv.sh configuré du côté récepteur.
* **ap31-test, ap31-prod** : utilisation d'un script `journald-snd.sh` configuré du côté émetteur.
### Importation de la base de données :
* Création d'un utilisateur `reseau` pour modifier la BDD sans utiliser le compte root si nécessaire.
* Import du fichier `sdis29.sql` sur MariaDB sur la machine **ap31-test**.
* Une fois fait, base de données disponible sur la machine et visible sur phpmyadmin une fois les privilèges requis donnés au compte.

69
goss_ap31-prod.yaml Executable file
View File

@@ -0,0 +1,69 @@
# goss.yaml, ap31-prod
package:
mariadb-server:
installed: true
versions:
- 1:10.11.6-0+deb12u1
qemu-guest-agent:
installed: true
versions:
- 1:7.2+dfsg-7+deb12u7
tomcat10:
installed: true
versions:
- 10.1.6-1+deb12u2
zabbix-agent:
installed: true
versions:
- 1:6.0.14+dfsg-1+b1
service:
mariadb:
enabled: true
running: true
mysql:
enabled: true
running: true
qemu-guest-agent:
enabled: true
running: true
ssh:
enabled: true
running: true
tomcat10:
enabled: true
running: true
zabbix-agent:
enabled: true
running: true
user:
mysql:
exists: true
uid: 104
gid: 109
groups:
- mysql
home: /nonexistent
shell: /bin/false
zabbix:
exists: true
uid: 105
gid: 110
groups:
- zabbix
home: /nonexistent
shell: /usr/sbin/nologin
group:
mysql:
exists: true
gid: 109
zabbix:
exists: true
gid: 110
http:
http://172.16.0.100:8080:
status: 200
allow-insecure: false
no-follow-redirects: false
timeout: 5000
body:
- Apache Tomcat # Le motif que Goss cherche

76
goss_ap31-test.yaml Executable file
View File

@@ -0,0 +1,76 @@
# goss.yaml, ap31-test
package:
mariadb-server:
installed: true
versions:
- 1:10.11.6-0+deb12u1
phpmyadmin:
installed: true
versions:
- 4:5.2.1+dfsg-1
qemu-guest-agent:
installed: true
versions:
- 1:7.2+dfsg-7+deb12u7
tomcat10:
installed: true
versions:
- 10.1.6-1+deb12u2
zabbix-agent:
installed: true
versions:
- 1:6.0.14+dfsg-1+b1
service:
mariadb:
enabled: true
running: true
mysql:
enabled: true
running: true
qemu-guest-agent:
enabled: true
running: true
ssh:
enabled: true
running: true
tomcat10:
enabled: true
running: true
zabbix-agent:
enabled: true
running: true
user:
zabbix:
exists: true
uid: 105
gid: 111
groups:
- zabbix
home: /nonexistent
shell: /usr/sbin/nologin
group:
zabbix:
exists: true
gid: 111
dns:
A:ns.sio.lan:
resolvable: true
addrs:
- 10.121.38.7
timeout: 500
server: 10.121.38.8
interface:
eth0:
exists: true
addrs:
- 172.16.0.101/24
- fe80::be24:11ff:fe8d:7f30/64
mtu: 1500
http:
http://172.16.0.101:8080:
status: 200
allow-insecure: false
no-follow-redirects: false
timeout: 5000
body:
- Apache Tomcat # Le motif que Goss recherche.

11
journald-rcv.sh Normal file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
sudo timedatectl set-timezone Europe/Paris
sudo apt-get update
sudo apt-get install -y systemd-journal-remote
sudo systemctl enable --now systemd-journal-remote.socket
sudo cp /lib/systemd/system/systemd-journal-remote.service /etc/systemd/system
sudo sed -i 's/--listen-https=-3/--listen-http=-3/' /etc/systemd/system/systemd-journal-remote.service
[[ -d /var/log/journal/remote ]] || sudo mkdir /var/log/journal/remote
sudo chown systemd-journal-remote /var/log/journal/remote
sudo systemctl daemon-reload
sudo systemctl restart systemd-journal-remote

8
journald-snd.sh Normal file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
sudo timedatectl set-timezone Europe/Paris
sudo apt-get update
sudo apt-get install -y systemd-journal-remote
rpl="s/^# URL=/URL=http:\/\/ap31-mon:19532/"
sudo sed -i "$rpl" /etc/systemd/journal-upload.conf
sudo systemctl enable --now systemd-journal-upload.service
sudo systemctl restart systemd-journal-upload.service

View File

@@ -0,0 +1,8 @@
apt install -y wget curl
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-2+debian12_all.deb
dpkg -i zabbix-release_7.0-2+debian12_all.deb
apt install -y zabbix-agent2
echo "Server=172.16.0.102" >> /etc/zabbix/zabbix_agent2.conf
echo "ServerActive=172.16.0.102" >> /etc/zabbix/zabbix_agent2.conf
echo "Hostname=ap31-prod" >> /etc/zabbix/zabbix_agent2.conf
systemctl restart zabbix-agent2

View File

@@ -0,0 +1,8 @@
apt install -y wget curl
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-2+debian12_all.deb
dpkg -i zabbix-release_7.0-2+debian12_all.deb
apt install -y zabbix-agent2
echo "Server=172.16.0.102" >> /etc/zabbix/zabbix_agent2.conf
echo "ServerActive=172.16.0.102" >> /etc/zabbix/zabbix_agent2.conf
echo "Hostname=ap31-test" >> /etc/zabbix/zabbix_agent2.conf
systemctl restart zabbix-agent2

17
zabbix-install-server.sh Normal file
View File

@@ -0,0 +1,17 @@
export http_proxy="http://10.121.38.1:8080/"
export https_proxy="http://10.121.38.1:8080/"
wget https://repo.zabbix.com/zabbix/7.0/debian/pool/main/z/zabbix-release/zabbix-release_7.0-2+debian12_all.deb
dpkg -i zabbix-release_7.0-2+debian12_all.deb
apt-get install -y apache2 mariadb-server
apt-get install -y zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent
echo 'create database zabbix character set utf8mb4 collate utf8mb4_bin;' | mysql -u root
echo "create user zabbix@localhost identified by 'password';" | mysql -u root
echo 'grant all privileges on zabbix.* to zabbix@localhost;' | mysql -u root
echo 'set global log_bin_trust_function_creators = 1;' | mysql -u root
zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -u zabbix -ppassword zabbix
echo 'set global log_bin_trust_function_creators = 0;' | mysql -u root
sed -i 's/# DBPassword=/DBPassword=password/' /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-server zabbix-agent apache2
systemctl enable zabbix-server zabbix-agent apache2
localectl set-locale LANG=en_US.UTF-8
systemctl restart zabbix-server zabbix-agent apache2