Nous allons voir deux méthodes pour l’installation de Zabbix : la première, plus classique, directement sur Debian 11 et la seconde que je vous conseil avec Docker. La suite des outils lié avec Zabbix se reposera sur l’installation avec la seconde option.
L’installation se fera sur une machine Debian 11 avec une base de données MySQL et Apache.
sudo apt update && sudo apt upgrade
wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1+debian11_all.deb
sudo dpkg -i zabbix-release_5.4-1+debian11_all.deb
sudo apt update
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-sql-scripts zabbix-agent2 mariadb-server
sudo mysql -u root -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
Pensez à changer le mot de passe
password
!
Vous serez invité à entrer votre mot de passe nouvellement créé.
sudo zcat /usr/share/doc/zabbix-sql-scripts/mysql/create.sql.gz | mysql -uzabbix -p zabbix
Modifier le fichier /etc/zabbix/zabbix_server.conf
:
DBPassword=password
Pensez à changer le mot de passe
password
!
Démarrez les processus du serveur et de l’agent Zabbix et faites-les démarrer au démarrage du système.
sudo systemctl restart zabbix-server zabbix-agent2 apache2
sudo systemctl enable zabbix-server zabbix-agent2 apache2
Vorte serveur Zabbix est installé ! Il est accessible depuis :
http://ip_or_name/zabbix
Admin
et le mot de passe zabbix
Pensez à changer le mot de passe du compte Admin !
Toutes mes félicitations, vous pouvez maintenant superviser votre premier serveur !
Vous pouvez déployer rapidement et simplement un serveur Zabbix et sa base de données avec ce docker-compose :
version: '2'
services:
postgres-server: # The Postgres Database Service
image: postgres:12.2
restart: always
container_name: zabbix-db
environment: # Username, password and database name variables
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: $DB_PASSWORD
POSTGRES_DB: zabbix
PG_DATA: /var/lib/postgresql/data/pgdata #data storage
volumes:
- /apps/zabbix/db:/var/lib/postgresql/data
# Facultatif
networks:
- proxy
logging:
driver: loki
options:
loki-url: "$URL_LOKI"
loki-external-labels: service={{.Name}}
zabbix-server: # The main Zabbix Server Software Service
image: zabbix/zabbix-server-pgsql:ubuntu-5.4-latest
restart: always
container_name: zabbix
environment: # The Postgres database value variable
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: $DB_PASSWORD
POSTGRES_DB: zabbix
ZBX_HISTORYSTORAGETYPES: log,text #Zabbix configuration variables
ZBX_DEBUGLEVEL: 1
ZBX_HOUSEKEEPINGFREQUENCY: 1
ZBX_MAXHOUSEKEEPERDELETE: 5000
ZBX_STARTVMWARECOLLECTORS: 10
ZBX_VMWAREFREQUENCY: 30
ZBX_VMWAREPERFFREQUENCY: 30
ZBX_VMWARECACHESIZE: 16M
ZBX_VMWARETIMEOUT: 10
depends_on:
- postgres-server
ports:
- 10051:10051
volumes: # Volumes for scripts and related files you can add
- /apps/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
# Facultatif
networks:
- proxy
logging:
driver: loki
options:
loki-url: "$URL_LOKI"
loki-external-labels: service={{.Name}}
zabbix-web: # The main Zabbix web UI or interface
image: zabbix/zabbix-web-nginx-pgsql:ubuntu-5.2-latest
restart: always
container_name: zabbix-web
environment: # Postgre database variables
POSTGRES_USER: zabbix
POSTGRES_PASSWORD: $DB_PASSWORD
POSTGRES_DB: zabbix
ZBX_SERVER_HOST: zabbix-server # Zabbix related and Php variables
ZBX_POSTMAXSIZE: 64M
PHP_TZ: "Europe/Paris"
ZBX_MAXEXECUTIONTIME: 500
depends_on:
- postgres-server
- zabbix-server
# ports: # Port where Zabbix UI is available
# - 8090:8080
# Facultatif
networks:
- proxy
logging:
driver: loki
options:
loki-url: "$URL_LOKIh"
loki-external-labels: service={{.Name}}
labels:
- "traefik.enable=true"
- "traefik.http.routers.zabbix.entrypoints=http"
- "traefik.http.routers.zabbix.rule=Host(`$URL`)"
- "traefik.http.middlewares.zabbix-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.zabbix.middlewares=zabbix-https-redirect"
- "traefik.http.routers.zabbix-secure.entrypoints=https"
- "traefik.http.routers.zabbix-secure.rule=Host(`$URL`)"
- "traefik.http.routers.zabbix-secure.tls=true"
- "traefik.http.routers.zabbix-secure.tls.certresolver=http"
- "traefik.http.services.zabbix-secure.loadbalancer.server.port=8080"
- "traefik.docker.network=proxy"
networks:
proxy:
external:
name: proxy
Pensez à changer dans le docker-compose ou à définir les variables suivantes : DB_PASSWORD, URL_LOKI et URL en fonction de votre installation.
Votre serveur Zabbix est accessible via l’URL que vous avez configuré dans le docker-compose !
L’identifiant par défaut est
Admin
et le mot de passe estzabbix
.