Compare commits
8 Commits
v.0.0.1a-g
...
v.0.0.1h-g
Author | SHA1 | Date | |
---|---|---|---|
|
c9a8886390 | ||
|
df0710ed22 | ||
|
c8e1b99de1 | ||
|
20d84138d2 | ||
|
f411491675 | ||
|
cbb8537b40 | ||
|
a5261f4ca7 | ||
|
241093ffff |
42
README.md
42
README.md
@@ -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
69
goss_ap31-prod.yaml
Executable 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
76
goss_ap31-test.yaml
Executable 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
11
journald-rcv.sh
Normal 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
8
journald-snd.sh
Normal 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
|
8
zabbix-install-client-prod.sh
Normal file
8
zabbix-install-client-prod.sh
Normal 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
|
8
zabbix-install-client-test.sh
Normal file
8
zabbix-install-client-test.sh
Normal 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
17
zabbix-install-server.sh
Normal 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
|
Reference in New Issue
Block a user