La solution MITM est articulée autour du serveur SaaS qui remplit les fonctions suivantes :
L’hébergement de l’interface d’administration EnergyOS
Le stockage et l’aggrégation des données
Le calcul des différentes métriques
Les postes de travail gérés sont équipés d’un agent, qui se connecte au serveur via un gestionnaire d’agent. Plusieurs gestionnaires d’agents peuvent se connecter au même serveur.
Un agent est installé sur tous les postes de travail gérés. Ses fonctions sont :
mesurer et envoyer les données de consommation et d’utilisation du poste
piloter la gestion de l’alimentation selon la politique téléchargée
mettre à disposition un widget qui affiche les économies générées et un message défini dans la politique
Voir aussi : https://helpdesk.avob.com/portal/fr/kb/articles/pr%C3%A9requis
L’agent est livré sous la forme d’un paquet MSI pré-configuré nommé EnergySaver-Agent-<version>-Setup-<instance>.msi
et d’une taille d’environ 8MB. Il peut être lancé directement pour une installation interactive, ou déployé à l’aide d’un outil de déploiement tel que Landesk, SCCM, ou par GPO ou script.
L’installation nécessite un accès administrateur.
Le paquet peut être personnalisé davantage à l’aide d’un outil tel qu’Orca ou InstedIt.
L’agent est installé par défaut dans le répertoire C:\Program Files (x86)\AVOB\Energy Saver Agent
(ou C:\Program Files\AVOB\Energy Saver Agent
sur un système 32 bits). Ses logs sont dans le sous-répertoire log
et font l’objet d’une rotation où seuls les 7 derniers fichiers sont conservés, et la taille maximale d’un fichier est 3 MB.
L’agent stocke sa configuration dans la clé de registre > HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\AVOB\EnergySaver\Agent
(ou HKEY_LOCAL_MACHINE\SOFTWARE\AVOB\EnergySaver\Agent
sur un système 32 bits)
L’agent garde en cache les données à envoyer au gestionnaire d’agent, ainsi que sa politique énergétique et les données à afficher dans le widget. Dans les versions antérieures à 6.5, ce cache est dans la sous-clé Files
de la clé de registre de l’agent. Depuis la version 6.5, le cache est dans une base de données SQLite, qui correspond au fichier AgentDB.db
dans le répertoire d’installation.
L’agent crée le service suivant :
Nom : energyagent6
Nom d’affichage : Energy Saver 6 Agent
Processus : EnergyAgentAgentService.exe
Il est configuré en démarrage automatique.
Un deuxième service est également créé afin de faciliter les mise à jours du service :
Nom : energyagentupdater6
Nom d’affichage : Energy Saver Agent Updater
Processus : n/a
Il n’a pas de processus associé sauf pendant le processus de mise à jour. Il est lancé manuellement uniquement.
Un processus est lancé dans la session de l’utilisateur, permettant de détecter la présence d’activité utilisateur, et d’afficher le widget.
EnergyAgentAgentWidget.exe
Par défaut, l’agent écoute sur le port TCP 5001, et établit des connexions sortantes vers le port 6000 (gestionnaire sur site) ou 443 (gestionnaire mutualisé).
La connexion sortante peut passer par un proxy, tant que le proxy est sans authentification.
Lors de cette connexion sortante, l’agent se connecte au gestionnaire d’agent en TCP/HTTPS à l’aide d’une URL de la forme https://<gestionnaire>:6000/<requete>
dans le cas d’un gestionnaire sur site, ou https://<gestionnaire>.avob.com/<instance>/<requete>
dans le cas d’un gestionnaire mutualisé. Cette connexion a lieu toutes les 60 à 720 minutes, selon la valeur configurée dans la politique.
L’agent envoie ses données, vérifie son état de licence, et télécharge si besoin sa nouvelle politique ou mise à jour.
Ce cas nécessite un gestionnaire d’agent sur site.
L’agent attend la connexion du gestionnaire, par défaut, sur le port TCP 5000. La réception d’un PUSH déclenche une connexion forcée.
Ce cas nécessite un gestionnaire d’agent sur site.
Lors de cette connexion sortante, l’agent se connecte au gestionnaire d’agent comme lors d’une connexion périodique. Cependant, il n’envoie pas de données lors d’une connexion forcée. L’agent ne récupère que les éléments qui ont déclenché la connexion forcée. Cet élément peut être :
une nouvelle politique
une tâche instantanée
une mise à jour
son état de licence
une liste de postes à réveiller par Wake-on-Lan
Un gestionnaire d’agent permet de faire le lien entre les agents et le serveur. Plusieurs gestionnaires peuvent être déployés, par exemple un par site, mais agents peuvent aussi se connecter à un seul gestionnaire d’agent mutualisé. Dans ce cas, les fonctionnalités basées sur le PUSH de l’agent ne sont pas disponibles.
Voir : https://helpdesk.avob.com/portal/fr/kb/articles/pr%C3%A9requis
Le gestionnaire d’agent est installé par défaut dans le répertoire C:\Program Files\AVOB\Energy Saver 6 Agent Handler
. Ses logs sont dans le sous-répertoire log
et font l’objet d’une rotation où seuls les 15 derniers fichiers sont conservés, et la taille maximale d’un fichier est 5 MB.
Une base de données embarquée SQLite est stockée dans le fichier HandlerDB.db
. Elle contient le cache des données des agents à envoyer au serveur, ainsi que les données à envoyer aux agents telles que leurs politiques et les paquets de mises à jour.
Le gestionnaire d’agent stocke sa configuration dans la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\AVOB\EnergySaver\AgentHandler[_<Instance>]
où <Instance>
est le nom de l’instance renseigné à l’installation, à partir de la version 6.5.
Le gestionnaire d’agent crée le service suivant :
Nom : energyhandler6
Nom d’affichage : Energy Saver 6 Agent Handler [<Instance>]
Processus : EnergyAgentHandlerService.exe
Il est configuré en démarrage automatique.
Un deuxième service est également créé afin de faciliter les mise à jours du service, mais il n’est pas utilisé dans les versions existantes.
Nom : energyhandlerupdater6
Nom d’affichage : Energy Saver Agent Handler Updater
Processus : n/a
Il n’a pas de processus associé sauf pendant le processus de mise à jour. Il est lancé manuellement uniquement.
Par défaut, le gestionnaire d’agent écoute sur le port TCP 6000 (gestionnaire sur site), et établit des connexions sortantes vers le port 443.
La connexion sortante peut passer par un proxy avec authentification.
Lors de cette connexion sortante, le gestionnaire d’agent se connecte au serveur en TCP/HTTPS à l’aide d’une URL de la forme https://<serveur>/avobitespc/<requete>
. Cette connexion a lieu toutes les 10 à 60 minutes.
Le gestionnaire d’agent envoie les données des agents, et télécharge si besoin les nouvelles politiques, mise à jours et sa configuration.
Lors de cette connexion sortante, le gestionnaire d’agent se connecte au serveur en TCP/HTTPS à l’aide d’une URL de la forme https://<serveur>/avobitespc/<requete>
. Cette connexion est déclenchée par la connexion d’un agent inconnu du gestionnaire d’agent.
Le gestionnaire d’agent envoie les données du ou des nouveaux agents.
Lors de cette connexion sortante, le gestionnaire d’agent se connecte au serveur en TCP/HTTPS à l’aide d’une URL de la forme https://<serveur>/avobitespc/<requete>
. Cette connexion est déclenchée par la présence de certains événements générés par l’agent ou le gestionnaire d’agent.
Le gestionnaire d’agent envoie les événéments.
Le gestionnaire attend la connexion des agents, par défaut, sur le port TCP 6000.
Ce cas nécessite un gestionnaire d’agent sur site.
Lors de cette connexion sortante, le gestionnaire d’agent se connecte au serveur en TCP/HTTPS à l’aide d’une URL de la forme https://<serveur>/avobitespc/PULL
. En tant normal, le serveur garde la connexion ouverte et ne répond pas, sauf si le signal PUSH doit être envoyé.
Cette connexion permet d’envoyer un signal intantanément à la suite d’une action dans la console d’administration telle qu’une synchronisation de politique ou un tâche instantanée.
Ce cas nécessite un gestionnaire d’agent sur site.
Lors de cette connexion sortante, le gestionnaire d’agent se connecte à un agent en TCP/HTTP à l’aide d’une URL de la forme http://<IP>:5000/PUSH
. Cette connexion est déclenchée par une action dans la console d’administration telle qu’une synchronisation de politique ou un tâche instantanée.
Ce cas nécessite un gestionnaire d’agent sur site.
Lors de cette connexion sortante, le gestionnaire d’agent se connecte à un agent en TCP/HTTP à l’aide d’une URL de la forme http://<IP>:5000/WOL
. Cette connexion est déclenchée par le système de Wake-on-Lan en relai.
Lorsque le gestionnaire d’agent reçoit une liste de postes à réveiller, cette connexion est utilisée pour déterminer les postes qui sont hors-ligne, et pour trouver des agents dans le même sous-réseau que les cibles qui peuvent servir de relai. Si aucun relai n’est trouvé, le gestionnaire d’agent tente d’envoyer le paquet WoL lui-même (port 9 UDP).