
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
Adminet le mot de passe estzabbix.