7 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
Guillaume Emorine
a5261f4ca7 Raccourcissement du README. 2024-11-07 09:22:13 +01:00
8 changed files with 236 additions and 3 deletions

View File

@@ -1,8 +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 :
Tout d'abord, les deux serveurs **ap31-test** et **ap31-prod** ont étés créés à partir d'un clone d'une *template* Debian disponible sur pxlab1. Ces clones sont intégraux, et non pas liés. Une fois les clones terminés, il a fallu redimensionner les disques, étants trop petits initialement (2Go). Après avoir rajouté 8Go pour chacun des disques, il faut définir les IPs de chacune des machines. Après avoir lancé la commande `host ap31-nom de l'hôte`, on obtient l'enregistrement DNS qui contient l'IP a définir. Une fois cela fait, on peut ajouter sa clé publique SSH, et on a accès à la machine. * 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)
### Installation des paquets :
* 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