178 lines
4.8 KiB
Markdown
178 lines
4.8 KiB
Markdown
Zabbix
|
|
=========
|
|
|
|
Deploiement d'une infrascutrure ZAbbix complete
|
|
Deux serveur zabbix
|
|
- HA
|
|
- Keealived pour nginx
|
|
- Certiticats TLS
|
|
|
|
Distribution prise en charges:
|
|
- Debian13
|
|
- Almalinux
|
|
|
|
Pour Ajouter une distribution RHEL like
|
|
Ajouter un block dans tasks/main.yml
|
|
|
|
Similaire à ceci ( voir https://www.zabbix.com/download pour le path associé a votre distribution):
|
|
```
|
|
- name: Prepare <Votre distribution>
|
|
when: ansible_distribution == "AlmaLinux" <= Nom de votre distriution
|
|
block:
|
|
- name: add gpg
|
|
ansible.builtin.dnf:
|
|
name: gnupg2
|
|
state: present
|
|
- name: Copie GPG key
|
|
ansible.builtin.copy:
|
|
src: RPM-GPG-KEY-ZABBIX-B5333005
|
|
dest: /tmp/RPM-GPG-KEY-ZABBIX-B5333005
|
|
- name: Import a key
|
|
ansible.builtin.rpm_key:
|
|
state: present
|
|
key: /tmp/RPM-GPG-KEY-ZABBIX-B5333005
|
|
- name: Add Package
|
|
ansible.builtin.dnf:
|
|
name: "https://repo.zabbix.com/zabbix/{{ zabbix_version }}/release/<Votre distribution>/{{ ansible_distribution_major_version }}/noarch/zabbix-release-latest-{{ zabbix_version }}.el{{ ansible_distribution_major_version }}.noarch.rpm"
|
|
state: present
|
|
```
|
|
|
|
Requirements
|
|
------------
|
|
|
|
Nécéssite les fichiers de certificats suivants:
|
|
|
|
- zabbix_ca.cert
|
|
- zabbix_server.cert
|
|
- zabbix_server.key
|
|
- zabbix_agent.cert
|
|
- zabbix_agent.key
|
|
- zabbix_proxy.cert
|
|
- zabbix_proxy.key
|
|
|
|
Ces fichiers sont a déposer dans /files
|
|
|
|
Note: vous pouvez changer le nom des fichiers en ce cas modifier les variables suivante dans default/main.yml
|
|
```
|
|
zabbix_ca: zabbix_ca
|
|
zabbix_server: zabbix_server
|
|
zabbix_proxy: zabbix_proxy
|
|
zabbix_agent: zabbix_agent
|
|
```
|
|
|
|
# Variables
|
|
--------------
|
|
## Role Variables
|
|
|
|
Variable definies dans default/main.yml
|
|
|
|
# defaults file for zabbix
|
|
|
|
|
|
| Variable | Role | Remarques|
|
|
|----------|------|----------|
|
|
|zabbix_version|Version de zabbix|Ne fonctionnent actuellement pour les Debian|
|
|
|roles_cibles| utlisés pour générer les Variable Server et ActiveServer | Exemple:['srv', 'proxy']|
|
|
|db_name|Nom de la base de postgres des serveurs||
|
|
|db_user|Nom de l'utilisateur de la base postgres serveurs||
|
|
|db_passwd|Mot de passe l'utilisateur de la base postgres serveurs||
|
|
|proxy_db_name|Nom de la base des proxys||
|
|
|proxy_db_user|Nom de l'utilisateur de la base des proxys||
|
|
|proxy_db_passwd|Mot de passe de l'utilisateur de la base des proxys||
|
|
|zabbix_ca|Nom du fichier de CA||
|
|
|zabbix_server|Nom du fichier de certificat utilisés par les serveurs||
|
|
|zabbix_proxy|Nom du fichier de certificat utilisés par les proxy||
|
|
|zabbix_agent|Nom du fichier de certificat utilisés par les agents||
|
|
|
|
|
|
## Group Variables
|
|
|
|
| Variable | Role | Remarques|
|
|
|----------|------|----------|
|
|
|db_host| adatabase.bv.stef.lan|
|
|
|db_port| 5432|Non utilisé pour le moment|
|
|
|postgresql_version|| Exemple 17, uniquement implementé dans débian|
|
|
|zabbix_crypt| Type de chiffrement utilisé| tls ou psk pour le moment seul tls est totalement implementé|
|
|
|zabbix_cert_ca_name| zabbix_ca||
|
|
|zabbix_cert_server_name| zabbix_server||
|
|
|zabbix_cert_agent_name| zabbix_agent||
|
|
|TLSServerCertSubject| DN des serveurs zabbix| exemple: "CN=zabbix_server,C=FR"|
|
|
|TLSServerCertIssuer| DN du CA zabbix| exemple: "CN=zabbix_ca,C=FR"|
|
|
|ZabbixHA| Activation du HA ou non | true ou false|
|
|
|vip_address| Vip keealived des nginx| exemple 192.168.200.75|
|
|
|vip_fqdn| FQDN de la Vip keealived des nginx|exemple: zabbix.mondomain.com|
|
|
|ActiveVault| Active ou non le vault| true ou false|
|
|
|Vault| Modele du vault| HashiCorp actuellement uniquement implémenté|
|
|
|VaultToken|Token d'acces au vault||
|
|
|VaultURL| Url du vault | exemple: https://vault.mondomain.com|
|
|
|VaultPrefix| Path des secret zabbix| exemple: /v1/secret/data/zabbix/|
|
|
|VaultDBPath| nom du secret des credential d'acces DB| exemple: /database|
|
|
|
|
## Hosts Variables
|
|
L'host master keepalived doit contenir:
|
|
```
|
|
keepalived:
|
|
state: MASTER
|
|
priority: 244
|
|
```
|
|
|
|
L'host backup keepalived doit contenir:
|
|
```
|
|
keepalived:
|
|
state: BACKUP
|
|
priority: 243
|
|
```
|
|
|
|
Dependencies
|
|
------------
|
|
|
|
None
|
|
|
|
Exemple Inventory
|
|
|
|
zabbix_instance01:
|
|
hosts:
|
|
server01.mondomain.com:
|
|
role: srv
|
|
server02.mondomain.com:
|
|
role: srv
|
|
database.mondomain.com:
|
|
role: db
|
|
front.mondomain.com:
|
|
role: front
|
|
proxy01.mondomain.com:
|
|
role: proxy
|
|
proxy02.mondomain.com:
|
|
role: proxy
|
|
|
|
Example Playbook
|
|
-------------------
|
|
Fichier playbooks/zabbix.yml:
|
|
|
|
```
|
|
- name: Install zabbix on hosts
|
|
hosts:
|
|
- zabbix_instance01
|
|
- zabbix_instance02
|
|
become: true
|
|
roles:
|
|
- zabbix
|
|
```
|
|
|
|
Exemple de déploiement
|
|
```
|
|
ansible-playbook playbooks/zabbix.yml --limit zabbix_instance01
|
|
```
|
|
|
|
|
|
|
|
License
|
|
-------
|
|
|
|
BSD
|
|
|
|
Author Information
|
|
------------------
|
|
|
|
An optional section for the role authors to include contact information, or a website (HTML is not allowed).
|