Centraliser la surveillance des ports ouverts, que ce soit de vos containers Docker et/ou du système, de manière esthétique et facilement, c'est possible !
Aujourd'hui nous allons parler de portracker ! Vous pourrez, en temps réel, avoir un œil sur les ports ouverts et le service s'y rapportant. Déployez portracker sur l'ensemble de vos serveurs et centralisez-les sur une seule instance.
Notez qu'il y a deux méthodes pour installer portracker, une où il y a un accès direct au socket de Docker et une, par un proxy :
Pour renforcer la sécurité, vous pouvez exécuter Portracker sans accès direct au socket Docker en utilisant un proxy. Cela limite les autorisations de l'API Docker aux opérations en lecture seule.
C'est cette méthode que nous allons choisir.
⚡ Caractéristiques
- Détection automatique des ports : analyse le système hôte pour trouver et afficher automatiquement les services en cours d'exécution et leurs ports. Aucune saisie manuelle de données n'est nécessaire.
- Collecteurs spécifiques à la plateforme : comprend des collecteurs spécialisés pour Docker et TrueNAS afin de recueillir des informations contextuelles riches à partir de l'hôte.
- Détection des ports internes : distingue les ports internes des conteneurs et les ports hôtes publiés, offrant une visibilité complète sur les services conteneurisés.
- Léger et autonome : s'exécute comme un processus unique avec une base de données SQLite intégrée. Aucune dépendance à une base de données externe telle que PostgreSQL ou Redis n'est requise.
- Surveillance peer-to-peer : ajoutez d'autres instances de portracker en tant que pairs pour afficher tous vos serveurs, conteneurs et machines virtuelles à partir d'un seul tableau de bord.
- Regroupement hiérarchique : organisez les serveurs dans une structure parent-enfant, parfaite pour imbriquer les serveurs, par exemple l'instance portracker d'une machine virtuelle sous son hôte physique.
- Découverte TrueNAS améliorée : une clé API TrueNAS optionnelle permet à portracker de découvrir les machines virtuelles en cours d'exécution* et de recueillir des informations système améliorées telles que la version du système d'exploitation et le temps de fonctionnement.
* Remarque : les machines virtuelles détectées sur TrueNAS avec la clé API facultative sont affichées en mode lecture seule. Pour activer la surveillance complète, déployez une instance Portracker sur chaque machine virtuelle et ajoutez-la en tant que serveur distinct. - Interface utilisateur moderne et réactive : tableau de bord épuré avec modes clair/foncé, filtrage en direct et plusieurs affichages des données (liste, grille, tableau).

💾 Installation
Prérequis
Avant de commencer, assurez-vous d’avoir :
Étapes d'installation
- Créez votre compose.yml dans le dossier ou vous comptez installer portracker :
nano compose.yml
- Et collez ça dedans :
services:
docker-proxy:
image: tecnativa/docker-socket-proxy:latest
container_name: portracker-docker-proxy
restart: unless-stopped
environment:
- CONTAINERS=1
- IMAGES=1
- INFO=1
- NETWORKS=1
- POST=0
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "2375:2375"
portracker:
image: mostafawahied/portracker:latest
container_name: portracker
restart: unless-stopped
pid: "host"
cap_add:
- SYS_PTRACE
- SYS_ADMIN
security_opt:
- apparmor:unconfined
volumes:
- ./portracker-data:/data
ports:
- "4999:4999"
environment:
- DOCKER_HOST=tcp://docker-proxy:2375
depends_on:
- docker-proxy
Si vous avez un message de ce type :

Changez :
- - "2375:2375" => Remplacez le port 2375, à gauche des :, par un autre.
- On va déployer l'application :
docker compose up -d
- Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 4999 par défaut :
http://ip:4999/
ou votre domaine :
https://portracker.mondomaine.com
🏁 Premier lancement
Rien de particulier à faire, cliquez sur Don't show again :

Vous voilà sur votre tableau de bord :

🖍️ Renommer un serveur
Oh, étape combien importante, mais quand même.
Cliquez sur le crayon sur le serveur concerné :

Complétez ceci :

- 1 => Nommez votre serveur.
- 2 => Ajoutez l'URL exacte de votre instance.
- 3 => Cliquez sur Save Changes pour terminer.
Il faut parfois relancer le container portracker pour que ce soit pris en compte :
docker restart portracker
C'est bel et bien pris en compte et renommé :

🛥️ Ports
Vous avez deux types de ports affichés :

- Ceux de Docker.
- Ceux de votre système.
Cliquez sur l'un ou l'autre pour activer ou désactiver l'affichage.
En passant votre souris dans la zone d'un port, vous avez plusieurs options :

- 1 => Copier le port.
- 2 => Ajouter une note.
- 3 => Cacher le port dans l'interface.
🖥 Centraliser les instances
Partons du principe que l'instance que je viens de déployer soit celle de référence pour ajouter et centraliser les autres instances portracker.
Je veux ajouter un autre serveur qui l'IP 192.168.1.176.
Cliquez sur + Add Server :

Complétez les champs suivants, même principe que quand vous avez renommé votre serveur plus haut :

- 1 => Nommez le serveur.
- 2 => Ajoutez l'ip:port de votre instance portracker.
- 3 => Cliquez sur Add Serveur pour terminer.
Le serveur est bien ajouté :
