Compare commits

...

18 Commits

Author SHA1 Message Date
4d5c46b1fe Actualiser README.md
Corrections et apports sur la documentation après suggestions du professeur.
2024-11-22 09:11:41 +01:00
a70ca1eb09 Actualiser README.md 2024-11-22 08:54:56 +01:00
Guillaume Emorine
2d660628cc Modifications apportées au README/documentation. 2024-11-15 09:52:15 +01:00
0a11176b26 Actualiser README.md 2024-11-15 09:14:15 +01:00
Guillaume Emorine
6c487604d1 Modifications apportées aux fichiers goss.yaml concernant l'agent Zabbix, et ajout de preuves au README. 2024-11-15 09:10:51 +01:00
Guillaume Emorine
0f39e57f84 Ajouts apportés à la documentation. 2024-11-15 08:40:59 +01:00
Guillaume Emorine
8d36c6ce87 Réorganisation du dépôt. 2024-11-14 16:48:20 +01:00
Guillaume Emorine
761184054f Ajout du playbook Ansible pour Wireguard, du script bash, et des
fichiers de configuration.
2024-11-14 15:01:59 +01:00
Guillaume Emorine
5a11bfbd7d Très léger ajustement sur la documentation. 2024-11-14 09:21:16 +01:00
Guillaume Emorine
17133b5ba9 Ajout des playbooks Ansible et ajout d'un README qui explique le rôle de chaque playbook dans le répertoire 'ansible'. 2024-11-14 09:19:00 +01:00
Guillaume Emorine
951ac2f4d7 Modification de la documentation sur les playbooks ansible fonctionnels. 2024-11-14 09:08:14 +01:00
Guillaume Emorine
605f581cfc Légère modification à la documentation. 2024-11-08 09:09:28 +01:00
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
20 changed files with 674 additions and 5 deletions

141
README.md
View File

@ -1,11 +1,142 @@
# sdis29-1
## Dépôt Git des programmes sources - SDIS 29.
Dépôt Git des programmes sources - SDIS 29.
Version: v.0.0.2e-ge
## Création initiale des serveurs
Plage d'adresses: 172.16.0.100/24-172.16.0.105/24
- Création des serveurs **ap31-prod** et **ap31-test** via un clone intégral d'une template sur pxlab1.
### Création initiale des serveurs :
- Disques redimensionnés de 2Go a 10Go.
* 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)
* Serveurs **ap31-ans** et **ap31-pt** créés pour les *playbooks* Ansible.
- Définition des IPs et ajout des clé SSH dans les machines.
### 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, git
* **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.
### Résultats des tests Goss :
````
debian@ap31-test:~$ goss v
.....................................
Total Duration: 0.115s
Count: 37, Failed: 0, Skipped: 0
````
````
debian@ap31-prod:~$ goss v
......................................
Total Duration: 0.244s
Count: 38, Failed: 0, Skipped: 0
````
### 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.
### Preuve de la présence de la base de données :
* Sur **ap31-test** :
````
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| sdis29 |
+--------------------+
````
### Création de playbooks Ansible pour **ap31-prod** et **ap31-test** :
* Création du *playbook* `apbase.yml` qui prépare les machines **ap31-prod** et **ap31-test** en installant les paquets nécessaires, en configurant le proxy pour *APT*, et en définissant la *timezone*.
* Création du *playbook* `apdb.yml` qui installe les dépendances utilisées dans le *playbook*, puis se charge de créer et d'importer la BDD, crééant un utilisateur, et qui peut être exécuté plusieurs fois sans soucis.
* Exécution des deux *playbooks* et résultats corrects, sans erreurs. Les *playbooks* `apbase.yml` et `apdb.yml` sont terminés.
* Création du *playbook* `apdbdump.yml` qui récupère le dump de la BDD une fois celui-ci créé.
* Exécution du *playbook* et résultats corrects, sans erreurs. Le *playbook* est terminé.
* **NOTE**: Ces playbooks ont étés testés sur la machine **ap31-pt** auparavant, et la machine **ap31-ans** était le controlleur Ansible.
### Établissement d'un tunnel VPN entre les machines **ap31-mon**, **ap31-prod** et **ap31-test** :
* Création d'un *playbook* `wg.yml` qui se charge d'installer Wireguard et ses outils sur les trois machines, puis qui exécute un script modifié pour générer les clés et les fichiers de configuration, avant de les mettre au bon endroit.
* Une fois cela fait, et le tunnel fonctionnel, la centralisation des logs peut se faire via le tunnel Wireguard en modifiant le fichier de configuration dans `/etc/systemd/journal-upload.conf`. Les IPs des fichiers de configuration sont donc modifiées pour fonctionner.
* Fichier de configuration finalisé:
````
[Upload]
URL=http://10.0.0.1:19532
````
* Pour plus de détails, se rendre dans le dossier `ansible`, puis le répertoire `wireguard`.
### Preuve de fonctionnement du VPN :
* **ap31-mon** :
````
debian@ap31-mon:~$ sudo wg
interface: wg0
public key: LEkM9UVt21zq7PS8sX+SBihuXr5k9bjAbwSN0dChmAk=
private key: (hidden)
listening port: 51820
peer: mnWYL52q8bzvvary6s81ROHV1hohu3nlQN0YQkTZTzg=
endpoint: 172.16.0.100:51820
allowed ips: 10.0.0.2/32
latest handshake: 1 minute, 22 seconds ago
transfer: 1.14 MiB received, 83.45 KiB sent
peer: Amfx3tgY9WyjhVH8gQJWZpbQVNYwpIt3OFZokMqq43M=
endpoint: 172.16.0.101:51820
allowed ips: 10.0.0.3/32
latest handshake: 12 minutes, 33 seconds ago
transfer: 1003.38 KiB received, 92.08 KiB sent
````
* **ap31-prod** :
````
debian@ap31-prod:~$ sudo wg
interface: wg0
public key: mnWYL52q8bzvvary6s81ROHV1hohu3nlQN0YQkTZTzg=
private key: (hidden)
listening port: 51820
peer: LEkM9UVt21zq7PS8sX+SBihuXr5k9bjAbwSN0dChmAk=
endpoint: 172.16.0.102:51820
allowed ips: 10.0.0.1/32
latest handshake: 1 minute, 8 seconds ago
transfer: 39.30 KiB received, 250.64 KiB sent
````
### Preuve de fonctionnement du VPN pour les logs :
* Si on lance une commande `logger` avec un message lorsque le service Wireguard est fonctionnel, celui-ci apparaît sur **ap31-mon** : `Nov 15 08:20:06 ap31-prod debian[597]: test vpn`
* Cependant, lorsqu'on coupe le service sur **ap31-prod** et qu'on essaie de réutiliser `logger`, rien n'arrive sur **ap31-mon**. Plus rien n'apparaît.
* Une fois que le service Wireguard est relancé sur **ap31-prod**, les messages précédents qui n'étaient pas apparus reviennent tous d'un coup. Les logs passent donc bien par le tunnel VPN.

16
ansible/README.md Normal file
View File

@ -0,0 +1,16 @@
# Ansible
Dans ce répertoire se situent les *playbooks* Ansible.
## Dossier Wireguard :
Dans le dossier se trouvent le *playbook* ainsi que les fichiers de configuration.
## Playbook de déploiement des **ap31-prod** et **ap31-test** :
### apbase.yml :
Ce *playbook* se charge de mettre à jour les paquets, configurer APT pour passer par le proxy, définit une *timezone* correcte, et se charge d'installer les paquets sur les deux machines.
### apdb.yml :
Ce *playbook* se charge d'installer un module crucial sur la machine **ap31-test**, puis créé une base de données vide, un utilisateur avec l'accès total sur la BDD, puis importe le fichier .sql de base pour rendre la BDD utilisable.
### apdbdump.yml :
Ce *playbook* se charge de créer un dump de la BDD avant de l'envoyer sur la machine qui exécute le *playbook* Ansible.

34
ansible/apbase.yml Normal file
View File

@ -0,0 +1,34 @@
---
#- name: Install prod/test
- hosts: all
become: true
tasks:
- name: Parametrage Timezone Europe/Paris
community.general.timezone:
name: Europe/Paris
- name: Copie apt.conf
copy:
content: |
Acquire::http::Proxy "http://10.121.38.1:8080/";
Acquire::https::Proxy "http://10.121.38.1:8080/";
dest: /etc/apt/apt.conf
- name: Update and upgrade apt packages
apt:
upgrade: yes
update_cache: yes
cache_valid_time: 86400 #One day
- name: Installation paquets
apt:
name: "{{ item }}"
state: present
with_items:
- tomcat10
- mariadb-server
- ant
- qemu-guest-agent

47
ansible/apdb.yml Normal file
View File

@ -0,0 +1,47 @@
# apdb.yml
---
- hosts: all
become: true
tasks:
- name: 1. Installe une des dépendances d'une extension Ansible.
apt:
name: python3-pymysql
state: present
- name: 2. Créé la base de données vide.
community.mysql.mysql_db:
check_implicit_admin: true
name: sdis29
state: present
login_unix_socket: /run/mysqld/mysqld.sock
- name: 3. Créé l'utilisateur pour la BDD.
community.mysql.mysql_user:
name: reseau
password: Ilona21?
priv: 'sdis29.*:ALL,GRANT'
state: present
login_unix_socket: /run/mysqld/mysqld.sock
- name: 4. Vérifie si un répertoire db existe.
stat:
path: /home/debian/db
register: rept_stat
- name: 5. Créé le répertoire db pour le fichier sql.
command: mkdir /home/debian/db
when: rept_stat.stat.exists == false
- name: 6. Copie le fichier d'import de la base de données
template:
src: db/sdis29.sql
dest: /home/debian/db/sdis29.sql
- name: 7. Import de la base de données.
run_once: true
community.mysql.mysql_db:
state: import
name: all
encoding: utf8
target: db/sdis29.sql
login_unix_socket: /run/mysqld/mysqld.sock

17
ansible/apdbdump.yml Normal file
View File

@ -0,0 +1,17 @@
# apbddump.yml
---
- hosts: all
become: true
tasks:
- name: 1. Exécute le dump de la BDD.
community.mysql.mysql_db:
check_implicit_admin: true
state: dump
name: sdis29
target: /home/debian/db/sdis29-backup.sql.gz
login_unix_socket: /run/mysqld/mysqld.sock
- name: 2. Envoie le dump sur la machine Ansible.
ansible.builtin.fetch:
src: /home/debian/db/sdis29-backup.sql.gz
dest: /home/debian/

2
ansible/hosts Normal file
View File

@ -0,0 +1,2 @@
[pt]
ap31-pt

View File

@ -0,0 +1,7 @@
# Ansible pour Wireguard
## Description du playbook :
Ce *playbook* se charge d'installer les outils Wireguard et le paquet Wireguard sur chacune des machines, avant de copier le script pour générer les fichiers de configuration sur la machine **ap31-mon**, puis exécute le script, avant de récupérer chacun des trois fichiers de configuration pour les copier sur **ap31-ans**.
Ensuite, le *playbook* se charge de copier les fichiers de configuration à chaque machine de manière individuelle sans possibilité d'erreur, avant d'activer le service Wireguard au démarrage, et de le relancer.

6
ansible/wireguard/hosts Normal file
View File

@ -0,0 +1,6 @@
[wg]
ap31-prod
ap31-test
ap31-mon
[wg_srv]
ap31-mon

View File

@ -0,0 +1,80 @@
#!/bin/bash
set -u
set -e
AddressAwg=10.0.0.1/32 # Adresse VPN Wireguard MON
EndpointA=172.16.0.102 # Adresse extremite MON
PortA=51820 # Port ecoute extremite MON
AddressBwg=10.0.0.2/32 # Adresse VPN Wireguard PROD
EndpointB=172.16.0.100 # Adresse extremite PROD
PortB=51820 # Port ecoute extremite PROD
AddressCwg=10.0.0.3/32 # Adresse VPN Wireguard TEST
EndpointC=172.16.0.101 # Adresse extremite TEST
PortC=51820 # Port ecoute extremite TEST
umask 077 ;
wg genkey > endpoint-a.key
wg pubkey < endpoint-a.key > endpoint-a.pub
wg genkey > endpoint-b.key
wg pubkey < endpoint-b.key > endpoint-b.pub
wg genkey > endpoint-c.key
wg pubkey < endpoint-c.key > endpoint-c.pub
PKA=$(cat endpoint-a.key)
pKA=$(cat endpoint-a.pub)
PKB=$(cat endpoint-b.key)
pKB=$(cat endpoint-b.pub)
PKC=$(cat endpoint-c.key)
pKC=$(cat endpoint-c.pub)
cat <<FINI > wg0-mon.conf
# local settings for ap31-mon
[Interface]
PrivateKey = $PKA
Address = $AddressAwg
ListenPort = $PortA
# remote settings for ap31-prod
[Peer]
PublicKey = $pKB
Endpoint = ${EndpointB}:$PortB
AllowedIPs = $AddressBwg
# remote settings for ap31-test
[Peer]
PublicKey= $pKC
Endpoint = ${EndpointC}:$PortC
AllowedIPs = $AddressCwg
FINI
cat <<FINI > wg0-prod.conf
# local settings for ap31-prod
[Interface]
PrivateKey = $PKB
Address = $AddressBwg
ListenPort = $PortB
# remote settings for ap31-mon
[Peer]
PublicKey = $pKA
Endpoint = ${EndpointA}:$PortA
AllowedIPs = $AddressAwg
FINI
cat <<FINI > wg0-test.conf
# local settings for ap31-test
[Interface]
PrivateKey = $PKC
Address = $AddressCwg
ListenPort = $PortC
# remote settings for ap31-mon
[Peer]
PublicKey = $pKA
Endpoint = ${EndpointA}:$PortA
AllowedIPs = $AddressAwg
FINI

74
ansible/wireguard/wg.yml Normal file
View File

@ -0,0 +1,74 @@
# wg.yml
---
- hosts: wg
become: true
tasks:
- name: 1. Installe le paquet Wireguard.
apt:
name: wireguard
state: present
- name: 2. Installe les outils Wireguard.
apt:
name: wireguard-tools
state: present
- hosts: wg_srv
become: true
tasks:
- name: 3. Envoie le script Wireguard.
copy:
src: mkwgconf-p2p.sh
dest: mkwgconf-p2p.sh
- name: 4. Exécute le script Wireguard.
command: bash mkwgconf-p2p.sh
- name: 5. Copie le fichier de configuration Wireguard C sur cette machine.
ansible.builtin.fetch:
src: wg0-mon.conf
dest: wg0-mon.conf
flat: yes
- name: 6. Récupère le fichier de conf A.
ansible.builtin.fetch:
src: wg0-prod.conf
dest: wg0-prod.conf
flat: yes
- name: 7. Récupère le fichier de conf B.
ansible.builtin.fetch:
src: wg0-test.conf
dest: wg0-test.conf
flat: yes
- hosts: wg
become: true
tasks:
- name: 8. Envoie le fichier de conf A vers la machine prod.
copy:
src: wg0-prod.conf
dest: /etc/wireguard/wg0.conf
when: ansible_hostname == "ap31-prod"
- name: 9. Envoie le fichier de conf B vers la machine test.
copy:
src: wg0-test.conf
dest: /etc/wireguard/wg0.conf
when: ansible_hostname == "ap31-test"
- name: 10. Envoie le fichier de conf C vers la machine mon.
copy:
src: wg0-mon.conf
dest: /etc/wireguard/wg0.conf
when: ansible_hostname == "ap31-mon"
- name: 11. Active le service Wireguard.
ansible.builtin.service:
service: wg-quick@wg0.service
enabled: true
- name: 12. Lance le service Wireguard.
ansible.builtin.service:
service: wg-quick@wg0.service
state: restarted

View File

@ -0,0 +1,17 @@
# local settings for ap31-mon
[Interface]
PrivateKey = qNrA3qizZyJ7iPfXQepwA6/g5kkabijifGUW61OO4G4=
Address = 10.0.0.1/32
ListenPort = 51820
# remote settings for ap31-prod
[Peer]
PublicKey = mnWYL52q8bzvvary6s81ROHV1hohu3nlQN0YQkTZTzg=
Endpoint = 172.16.0.100:51820
AllowedIPs = 10.0.0.2/32
# remote settings for ap31-test
[Peer]
PublicKey= Amfx3tgY9WyjhVH8gQJWZpbQVNYwpIt3OFZokMqq43M=
Endpoint = 172.16.0.101:51820
AllowedIPs = 10.0.0.3/32

View File

@ -0,0 +1,11 @@
# local settings for ap31-prod
[Interface]
PrivateKey = ENtiBbOg56P0DQJhoYe61mNLF06Vtv601rbAAvyKz2M=
Address = 10.0.0.2/32
ListenPort = 51820
# remote settings for ap31-mon
[Peer]
PublicKey = LEkM9UVt21zq7PS8sX+SBihuXr5k9bjAbwSN0dChmAk=
Endpoint = 172.16.0.102:51820
AllowedIPs = 10.0.0.1/32

View File

@ -0,0 +1,11 @@
# local settings for ap31-test
[Interface]
PrivateKey = 6Hq3I9MdSB/O8xiXxf1ekysWR2GQgYBss9VNDngbZE4=
Address = 10.0.0.3/32
ListenPort = 51820
# remote settings for ap31-mon
[Peer]
PublicKey = LEkM9UVt21zq7PS8sX+SBihuXr5k9bjAbwSN0dChmAk=
Endpoint = 172.16.0.102:51820
AllowedIPs = 10.0.0.1/32

69
goss/goss_ap31-prod.yaml Normal 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-agent2:
installed: true
versions:
- 1:7.0.5-1+debian12
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-agent2:
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

95
goss/goss_ap31-test.yaml Executable file
View File

@ -0,0 +1,95 @@
# 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-agent2:
installed: true
versions:
- 1:7.0.5-1+debian12
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-agent2:
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
- 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/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/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

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