Skip to main content

Mettre en place un serveur Zabbix avec EasyPanel

Ce guide décrit les étapes pour déployer un serveur Zabbix complet à l'aide de Docker Compose et EasyPanel et utiliser swarm.

1.Prérequis

  1. Avant de commencer, vous devez récupérer le numéro GID (Group ID) du groupe docker sur votre serveur hôte Linux.
  2. Nom du projet : Ce guide utilisera le nom de projet prdzabbix.
  3. Trouver le GID : Exécutez la commande suivante sur votre serveur Linux pour trouver le GID :
grep docker /etc/group 

Notez le numéro GID (par exemple, 988). Vous devrez le saisir dans le fichier docker-compose.yml plus tard.

2. Installation sur EasyPanel

  1. Créez votre projet dans EasyPanel (par exemple, prdzabbix).

  2. À l'intérieur de votre projet, créez un nouveau service.
  3. Dans les options de service, choisissez Compose.
  4. Collez le contenu du fichier docker-compose.yml (fourni à la section 3) dans l'éditeur de source.

3. Contenu du docker-compose.yml

services:
  postgres:
    image: postgres:16
    volumes:
      # Volume nommé
      - vol-db:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: zabbix
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: Y4pR9nTz2wVxF7sQmK8j
    healthcheck:
      test: [ "CMD", "pg_isready", "-q", "-d", "zabbix", "-U", "zabbix" ]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 60s
    restart: unless-stopped
    deploy:
      replicas: 1

  zabbix-server:
    image: zabbix/zabbix-server-pgsql:latest
    environment:
      DB_SERVER_HOST: postgres
      DB_SERVER_PORT: 5432
      POSTGRES_DB: zabbix
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: Y4pR9nTz2wVxF7sQmK8j
      ZBX_NODEADDRESS: zabbix-server
      ZBX_NODEADDRESSPORT: 10051
    volumes:
      # Volume nommé
      - vol-server-data:/var/lib/zabbix
    healthcheck:
      test: grep -qr "zabbix_server" /proc/*/status || exit 1
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 90s
    restart: unless-stopped
    stop_grace_period: 30s
    depends_on:
      - postgres

  dashboard:
    image: zabbix/zabbix-web-nginx-pgsql
    volumes:
      # Volume nommé
      - vol-web-data:/etc/zabbix/web
    environment:
      DB_SERVER_HOST: postgres
      DB_SERVER_PORT: 5432
      POSTGRES_DB: zabbix
      POSTGRES_USER: zabbix
      POSTGRES_PASSWORD: Y4pR9nTz2wVxF7sQmK8j
      ZBX_SERVER_HOST: zabbix-server
      ZBX_NODEADDRESS: zabbix-server
      ZBX_NODEADDRESSPORT: 10051
      PHP_TZ: "America/Montreal"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 90s
    restart: unless-stopped
    depends_on:
      - postgres
      - zabbix-server

  agent:
    image: zabbix/zabbix-agent2:alpine-6.4-latest
    privileged: true
    cap_add:
      - ALL
    group_add:
      - "988"  # <--- METTEZ VOTRE NUMÉRO GID TROUVÉ À L'ÉTAPE 1
    environment:
      ZBX_HOSTNAME: GST-CAM-NOD-01
      ZBX_SERVER_HOST: zabbix-server
      ZBX_NODEADDRESS: zabbix-server
      ZBX_NODEADDRESSPORT: 10051
      ZBX_ENABLEMODULES: docker
      ZBX_PLUGIN_DOCKER_SOCKET: /var/run/docker.sock
    restart: unless-stopped
    deploy:
      mode: global
    volumes:
      # Volume nommé
      - vol-agent-data:/var/lib/zabbix/agent
      # volume
      - /:/rootfs:ro
      - /var/run:/var/run
    depends_on:
      - postgres
      - zabbix-server

# Force tous les services à utiliser le réseau du projet
networks:
  default:
    name: easypanel-prdzabbix  # <--- mettre le nom de votre projet easypanel-monprojet
    external: true

# Déclare les volumes nommés. Docker s'occupe de les créer.
volumes:
  vol-db:
  vol-server-data:
  vol-web-data:
  vol-agent-data:

4. Déploiement et correction

  1. Après avoir collé le code YAML, cliquez sur Sauvegarder puis sur Déployer.

  2. Une erreur va se produire lors du premier déploiement. C'est normal.
  3. Vous devez créer les 4 dossiers qui correspondent aux 4 services.  Connectez-vous à votre serveur et exécutez les commandes suivantes (en ajustant le chemin si votre nom de projet est différent) :
cd /etc/easypanel/projects/prdzabbix
mkdir web server agent db

Retournez dans EasyPanel et refaites un déploiement. Les erreurs devraient maintenant avoir disparu.

5. Configuration du domaine

La dernière étape consiste à configurer le domaine pour qu'il pointe vers le tableau de bord Zabbix.

  1. Dans votre projet EasyPanel, allez à la section Domaines.
  2. Cliquez sur le domaine que vous souhaitez configurer (par exemple, prdzabbix...easypanel...).
  3. Modifiez les informations de destination :
  • Port : 8080
  • Compose Service : dashboard
    Enregistrez les modifications.


    Votre serveur Zabbix est maintenant déployé et accessible.

Laissez vos commentaires.
Leave your comments.