Passer au contenu

Installer l’agent

Trois étapes sous Linux, Windows, sur un Mac ou dans une grappe Kubernetes : obtenez un jeton dans Gryphon, installez l’agent et donnez-lui le jeton. Il se connecte lui-même à Gryphon : la machine n’a besoin d’aucun port ouvert ni d’aucun certificat.

Avant de commencer

L’agent se connecte à Gryphon, et non l’inverse. Il ouvre une connexion sortante vers Gryphon en HTTPS et la garde ouverte, et Gryphon lui envoie ses vérifications par cette connexion. La machine n’a besoin d’aucun port ouvert, d’aucune adresse à elle et d’aucun certificat : si elle peut joindre un site Web, elle peut joindre Gryphon. Elle prouve de quel hôte il s’agit avec un jeton que vous obtenez dans Gryphon.

Les vérifications de l’extérieur — sites Web, certificats, ping, ports, DNS et domaines — n’ont besoin d’aucun agent. Installez-le pour ce que seule la machine peut voir : disque, mémoire, CPU et charge, bases de données, Docker, scripts et fichiers, et les vérifications sur votre réseau privé.

Ce qu’il vous faut

Des droits d’administrateur sur la machine : sudo, ou « Exécuter en tant qu’administrateur » pour PowerShell. Et la machine doit pouvoir établir une connexion HTTPS sortante vers Gryphon, comme vers n’importe quel site Web ; plus de détails si un pare-feu ou un proxy est en travers du chemin.

Un agent par machine

Installez-le sur la machine que vous voulez surveiller, pas dans un conteneur sur celle-ci : ses mesures de disque, de mémoire et de CPU sont celles de la machine. Un agent couvre la machine, chacun de ses conteneurs et autant de vérifications qu’on lui en envoie. Chaque machine est un hôte distinct dans Gryphon, avec son propre jeton. Une grappe Kubernetes est l’exception : un seul agent, à l’intérieur, pour toute la grappe.

Code source ouvert

L’agent est à code source ouvert, sous licence MIT, et chaque téléchargement ci-dessous est compilé à partir de ce code. Lisez-le sur GitHub avant de l’installer.

Les trois étapes

  1. 1 Obtenez un jeton depuis la page de l’hôte dans Gryphon. Il n’est affiché qu’une fois.
  2. 2 Installez l’agent sous Linux, macOS, Windows ou dans une grappe Kubernetes. La section de votre système couvre les étapes 2 et 3.
  3. 3 Donnez-lui le jeton. Il vérifie le jeton auprès de Gryphon, démarre, et la page de l’hôte indique qu’il est connecté.

1 Obtenir un jeton dans Gryphon

  1. 1 Dans Gryphon, ouvrez « Hôtes » et choisissez la machine, ou « Ajouter un hôte » et enregistrez-le. Il faut être le propriétaire du compte, ou un membre à qui le propriétaire permet de gérer les hôtes.
  2. 2 Dans son onglet « Hôte », sous « Agent », choisissez « Connecter un agent ».
  3. 3 Copiez le jeton affiché. Il n’est affiché que cette fois-ci : Gryphon ne garde rien qu’il pourrait afficher de nouveau. Gardez la page ouverte jusqu’à la fin de l’étape 3.

Vous l’avez perdu ? Choisissez Remplacer le jeton sur la même page. L’ancien jeton cesse aussitôt de fonctionner, et l’agent qui l’utilise est déconnecté.

Linux

Un binaire statique pour amd64 et arm64, livré avec un service systemd renforcé. Les paquets et le script d’installation mettent en place le même programme, le même fichier de réglages et le même service, et le programme s’appelle gryphon-agent.

2 L’installer

Choisissez la méthode qui convient à la machine. Chacune télécharge les sommes de contrôle de la version et vérifie le téléchargement avant d’installer quoi que ce soit.

Debian et Ubuntu

VERSION=1.1.45
BASE=https://github.com/gocodedotca/gryphon-agent/releases/download/v$VERSION
ARCH=$(dpkg --print-architecture)
curl -fLO $BASE/gryphon-agent_${VERSION}_$ARCH.deb
curl -fLO $BASE/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
sudo apt install ./gryphon-agent_${VERSION}_$ARCH.deb

Fedora, RHEL, Rocky et Alma

VERSION=1.1.45
BASE=https://github.com/gocodedotca/gryphon-agent/releases/download/v$VERSION
ARCH=$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')
curl -fLO $BASE/gryphon-agent_${VERSION}_$ARCH.rpm
curl -fLO $BASE/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
sudo dnf install ./gryphon-agent_${VERSION}_$ARCH.rpm

Tout autre Linux avec systemd

Un script d’installation met en place le même programme, le même fichier de réglages et le même service à partir de l’archive ordinaire. Lisez-le avant de l’exécuter en tant que root.

curl -fsSLO https://raw.githubusercontent.com/gocodedotca/gryphon-agent/main/deploy/agent/install.sh
less install.sh
sudo sh install.sh

Il installe la dernière version, ou celle que vous indiquez (sudo sh install.sh v1.1.45). Exécutez-le de nouveau pour mettre à jour.

Sans systemd, ou à la main

L’archive contient le programme, et rien n’est à installer. Ces commandes demandent le jeton de l’étape 1, l’enregistrent à côté du programme, lisible par vous seul, et lancent l’agent au premier plan ; une fois que tout fonctionne, faites-le tourner sous le superviseur de vos services, quel qu’il soit.

VERSION=1.1.45
BASE=https://github.com/gocodedotca/gryphon-agent/releases/download/v$VERSION
ARCH=$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/')
curl -fLO $BASE/gryphon-agent_${VERSION}_linux_$ARCH.tar.gz
curl -fLO $BASE/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
tar -xzf gryphon-agent_${VERSION}_linux_$ARCH.tar.gz
read -rsp "Token: " TOKEN; echo
(umask 077; printf '%s\n' "$TOKEN" > agent_key); unset TOKEN
GWC_KEY_FILE=./agent_key ./gryphon-agent

Le jeton va dans un fichier ou dans l’environnement, jamais sur la ligne de commande, où chaque utilisateur de la machine pourrait le lire. ./gryphon-agent -help liste les autres réglages. Sautez l’étape 3 : l’agent se connecte déjà.

3 Lui donner le jeton

Une fois installé, il reste éteint tant qu’il n’a pas de jeton. Cette commande demande le jeton de l’étape 1 — collez-le ; il ne s’affiche pas pendant que vous le faites —, le vérifie auprès de Gryphon, l’enregistre là où seul root peut le lire, et démarre l’agent. Il démarre ensuite avec la machine.

sudo gryphon-agent enrol

En quelques secondes, la page de l’hôte dans Gryphon indique Connecté. Sinon, ces commandes indiquent si l’agent fonctionne, et pourquoi pas :

systemctl status gryphon-agent
sudo journalctl -u gryphon-agent -n 50

Dès que la page de l’hôte dans Gryphon indique Connecté, ajoutez les vérifications de l’agent sous Services : disque, mémoire, CPU et charge, bases de données, Docker, scripts, fichiers, et HTTP, ping et TCP depuis l’intérieur de votre réseau.

macOS

Gryphon Agent est le même agent, sous forme d’application de barre des menus : pas d’icône dans le Dock, pas de fenêtre, pas de terminal. macOS 12 ou plus récent, sur puce Apple ou Intel, signé avec notre Developer ID et notarié par Apple.

2 L’installer

Avec Homebrew

brew install --cask gocodedotca/gryphon/gryphon-agent

Ou téléchargez l’application

Ouvrez l’image disque et glissez Gryphon Agent dans Applications.

3 Lui donner le jeton

Ouvrez Gryphon Agent depuis Applications. Il apparaît dans la barre des menus en indiquant qu’il n’a pas encore de jeton. Choisissez Enter Token…, collez le jeton de l’étape 1 et choisissez Connect. La première ligne de son menu indique connected, et la page de l’hôte dans Gryphon aussi, en quelques secondes.

Choisissez Open at Login pour qu’il démarre avec le Mac. Un Mac n’est surveillé que lorsqu’il est éveillé. Le journal de l’agent est ~/Library/Logs/Gryphon Agent.log.

Dès que la page de l’hôte dans Gryphon indique Connecté, ajoutez les vérifications de l’agent sous Services : disque, mémoire, CPU et charge, bases de données, Docker, scripts, fichiers, et HTTP, ping et TCP depuis l’intérieur de votre réseau.

Windows

Le même agent sous forme de service Windows, pour Windows 10 et 11 et Windows Server 2016 ou plus récent, sur x64 ou Arm. Une commande met en place le service et un dossier de réglages que seuls les administrateurs peuvent modifier, et une autre lui donne son jeton.

Utilisez une seule fenêtre PowerShell pour les deux étapes, ouverte en tant qu’administrateur : Démarrer, tapez PowerShell, puis choisissez Exécuter en tant qu’administrateur.

2 L’installer

Le télécharger et le vérifier

Ces commandes travaillent dans un dossier temporaire, choisissent x64 ou Arm pour vous, et s’arrêtent si le téléchargement ne correspond pas aux sommes de contrôle de la version.

$ProgressPreference = "SilentlyContinue"
Set-Location $env:TEMP
$Version = "1.1.45"
$Arch = "amd64"
if ("$env:PROCESSOR_ARCHITECTURE $env:PROCESSOR_ARCHITEW6432" -match "ARM64") { $Arch = "arm64" }
$Base = "https://github.com/gocodedotca/gryphon-agent/releases/download/v$Version"
$Zip = "gryphon-agent_${Version}_windows_$Arch.zip"
Invoke-WebRequest "$Base/$Zip" -OutFile $Zip
Invoke-WebRequest "$Base/SHA256SUMS" -OutFile SHA256SUMS
$Want = (Select-String -Path SHA256SUMS -SimpleMatch $Zip).Line.Split(" ")[0]
if ((Get-FileHash $Zip).Hash -ne $Want) { throw "checksum mismatch" }
Expand-Archive $Zip -DestinationPath gryphon-agent -Force

Installer le service

Dans la même fenêtre. Elle copie le programme dans C:\Program Files\Gryphon Agent, crée C:\ProgramData\Gryphon pour son jeton et ses réglages, et inscrit le service GryphonAgent :

.\gryphon-agent\gryphon-agent.exe service install

3 Lui donner le jeton

Dans la même fenêtre. Cette commande demande le jeton de l’étape 1 — collez-le ; il ne s’affiche pas pendant que vous le faites —, le vérifie auprès de Gryphon, l’enregistre là où seuls les administrateurs et le service peuvent le lire, et démarre le service. Il démarre ensuite avec la machine.

& 'C:\Program Files\Gryphon Agent\gryphon-agent.exe' enrol

En quelques secondes, la page de l’hôte dans Gryphon indique Connecté. Sinon, ces commandes indiquent si le service fonctionne, et pourquoi pas :

Get-Service GryphonAgent
Get-WinEvent -FilterHashtable @{LogName="Application"; ProviderName="GryphonAgent"} -MaxEvents 20

Dès que la page de l’hôte dans Gryphon indique Connecté, ajoutez les vérifications de l’agent sous Services : disque, mémoire, CPU et charge, bases de données, Docker, scripts, fichiers, et HTTP, ping et TCP depuis l’intérieur de votre réseau.

Kubernetes

Un seul agent surveille toute la grappe : il s’exécute à l’intérieur sous forme de pod et lit l’API de la grappe elle-même — charges de travail, applications, nœuds, pods qui plantent en boucle et CronJobs. Dans Gryphon, la grappe est un hôte dont le type est Une grappe Kubernetes ; créez-le, puis prenez son jeton comme à l’étape 1. Les vérifications Kubernetes font partie des forfaits Pro et Teams.

2 L’installer, avec le jeton

Avec kubectl pointé vers la grappe, placez le jeton de l’étape 1 dans un Secret et appliquez le manifeste :

kubectl create namespace gryphon
kubectl -n gryphon create secret generic gryphon-agent-token --from-literal=token=<token>
kubectl apply -f https://github.com/gocodedotca/gryphon-agent/releases/download/v1.1.45/gryphon-agent.yaml

Quelques secondes après le démarrage du pod, la page de l’hôte dans Gryphon indique Connecté et nomme la version de la grappe. Sinon, ces commandes indiquent pourquoi :

kubectl -n gryphon get pods
kubectl -n gryphon logs deployment/gryphon-agent

Ce qu’il peut lire

Seulement ce qu’accorde son ClusterRole : obtenir et lister les nœuds, les espaces de noms, les pods, les Deployments, StatefulSets, DaemonSets, ReplicaSets, Jobs et CronJobs. Il ne peut pas lire les Secrets ni les ConfigMaps, ouvrir un shell dans un pod, lire les journaux, ni rien modifier. Le manifeste est court ; lisez-le avant de l’appliquer.

Un espace de noms à la fois

Si un accès à l’échelle de la grappe n’est pas envisageable, appliquez plutôt gryphon-agent-namespaced.yaml, puis gryphon-agent-role.yaml dans chaque espace de noms à surveiller, avec kubectl apply -n shop -f. La vérification des nœuds exige un accès à l’échelle de la grappe, et le signale.

À l’intérieur et à l’extérieur

Les vérifications HTTP, TCP et de bases de données de l’agent s’exécutent depuis son pod : elles peuvent donc nommer un Service par son nom dans la grappe, comme web.shop.svc.cluster.local. Donnez à l’hôte l’adresse publique devant la grappe, son Ingress ou son répartiteur de charge, et Gryphon la vérifie aussi de l’extérieur, certificat compris.

Sous quelle identité il s’exécute

Un seul pod, sous un utilisateur sans privilèges, sur un système de fichiers en lecture seule, avec toutes les capacités Linux retirées. L’image est ghcr.io/gocodedotca/gryphon-agent, pour amd64 et arm64, compilée à partir du même code source ouvert que tous les autres téléchargements. Elle n’ouvre aucun port et n’a besoin d’aucun Service ni Ingress.

Le réseau

L’agent établit une seule connexion, sortante, vers https://gryphon.gocode.ca sur le port 443 — en HTTPS, gardée ouverte comme WebSocket — et se reconnecte de lui-même si elle tombe. Rien ne se connecte à la machine : il n’y a donc aucun port à ouvrir, aucune adresse à publier, et rien à quoi un inconnu sur Internet pourrait frapper.

Dépannage

L’inscription affiche « Gryphon refused this token »
Le jeton a été copié incomplet, ou il a été remplacé depuis. Copiez-le de nouveau, en entier, depuis la boîte de dialogue de l’étape 1 ; si elle est fermée, choisissez Remplacer le jeton sur la page de l’hôte et inscrivez l’agent avec le nouveau.
L’inscription affiche « Cannot reach Gryphon »
La machine ne parvient pas à établir la connexion sortante. Vérifiez le réseau : un pare-feu sortant, un proxy qui exige HTTPS_PROXY, ou aucune route vers Internet.
La page de l’hôte indique « En attente de la connexion de l’agent »
Le jeton a été émis et aucun agent ne l’a encore utilisé : l’étape 3 n’a pas été faite, ou l’agent ne fonctionne pas. Les dernières commandes de l’étape 3 indiquent pourquoi.
La page de l’hôte indique « Non connecté », et les vérifications affichent « Agent: not connected »
L’agent était connecté et s’est arrêté : la machine est éteinte ou en veille, l’agent a été arrêté, ou sa connexion sortante est bloquée. Il se reconnecte de lui-même dès qu’il le peut. Un Mac n’est surveillé que lorsqu’il est éveillé et que son agent est actif.
Le menu du Mac affiche « the token was refused »
Son jeton a été remplacé, ou son hôte supprimé. Choisissez Enter Token… avec un nouveau jeton obtenu sur la page de l’hôte.
La page de l’hôte indique que le jeton est utilisé sur plus d’une machine
Deux machines ont reçu le même jeton, et elles se prennent sans cesse la connexion l’une à l’autre. Chaque machine a besoin de son propre hôte dans Gryphon. Remplacez le jeton, donnez le nouveau à cette machine seulement, et ajoutez un hôte pour l’autre.
Une vérification affiche « update the agent »
La vérification est plus récente que l’agent de cette machine. Mettez-le à jour ; le jeton et les réglages sont conservés.

Réglages facultatifs

Les scripts, les fichiers, Docker et le ping ICMP sont désactivés jusqu’à ce que vous les activiez, et un proxy Web se définit ici aussi (HTTPS_PROXY=http://proxy.example.com:3128). Redémarrez l’agent après tout changement.

  • Linux : les réglages vont dans /etc/gryphon/agent.env, que les mises à jour ne touchent pas. Les changements au service lui-même vont dans un fichier drop-in, créé avec sudo systemctl edit gryphon-agent, car les mises à jour remplacent le fichier d’unité. Ensuite, sudo systemctl restart gryphon-agent.
  • Windows : les mêmes réglages, dans C:\ProgramData\Gryphon\agent.env, que les mises à jour ne touchent pas. Ensuite, Restart-Service GryphonAgent.
  • Mac : Edit Settings… ouvre son fichier de réglages, où les scripts et les fichiers sont scripts_dir et watch_dirs. Ensuite, Turn Off puis Turn On.

Vérifications par script

Indiquez un dossier de programmes ; Gryphon ne peut exécuter que ce qui s’y trouve, par nom de fichier. Sous Linux, il doit appartenir à root et n’être modifiable par personne d’autre. Sous Windows, utilisez le dossier de scripts créé à l’installation, placez-y des fichiers .ps1, .bat, .cmd ou .exe, et nommez-les dans Gryphon avec leur extension. Créez-les sur place plutôt que de les y déplacer, pour qu’ils prennent ses permissions.

Linux, dans agent.env
GWC_SCRIPTS_DIR=/etc/gryphon/scripts
Windows, dans agent.env
GWC_SCRIPTS_DIR=C:\ProgramData\Gryphon\scripts

Vérifications de fichiers

Indiquez les dossiers où l’agent peut regarder : séparés par des deux-points sous Linux, par des points-virgules sous Windows. Le chemin d’une vérification de fraîcheur de fichier doit se trouver dans l’un d’eux. L’agent ne fait que les lister et n’ouvre jamais un fichier. Sous Linux, il s’exécute sous son propre utilisateur sans privilèges : les dossiers doivent donc pouvoir être listés par les autres, ou ajoutez leur groupe avec SupplementaryGroups= dans un fichier drop-in.

Linux, dans agent.env
GWC_WATCH_DIRS=/var/backups:/srv/exports
Windows, dans agent.env
GWC_WATCH_DIRS=D:\Backups;C:\ProgramData\MyApp\exports

Docker

Pour les vérifications de conteneurs et de Swarm. Sous Linux, lancez le proxy de socket en lecture seule que le paquet place dans /usr/share/doc/gryphon-agent/docker-socket-proxy.yml (aussi dans l’archive de la version, sous deploy/agent), puis pointez l’agent vers lui. Sous Windows, l’agent joint Docker Desktop par son canal nommé, que seuls les administrateurs et le groupe docker-users peuvent ouvrir : ajoutez donc le service à ce groupe.

Linux, dans agent.env
GWC_DOCKER_SOCKET=tcp://127.0.0.1:2375
Windows, dans PowerShell en tant qu’administrateur
net localgroup docker-users "NT SERVICE\GryphonAgent" /add

Ping par ICMP

Sans lui, la vérification ping sonde plutôt les ports TCP 443, 80 et 22. Sous Linux, autorisez-le dans le fichier drop-in. Windows ne laisse qu’un administrateur envoyer un ping : la vérification ping y sonde donc toujours les ports. Windows n’a pas non plus de charge moyenne : la charge y est une estimation tirée de la file d’attente du processeur, et le CPU est la meilleure vérification.

Linux, dans le fichier drop-in
[Service]
CapabilityBoundingSet=CAP_NET_RAW
AmbientCapabilities=CAP_NET_RAW

Mise à jour

Sous Linux, installez le paquet plus récent par-dessus l’ancien, ou exécutez de nouveau le script d’installation. Un agent en marche est redémarré sur la nouvelle version, avec son jeton et ses réglages. Sous Windows, refaites l’étape 1 avec la version plus récente, dans un PowerShell administrateur, ce qui fait la même chose. Sur un Mac, brew upgrade --cask gryphon-agent, ou téléchargez la nouvelle application par-dessus l’ancienne ; son menu affiche Update available quand il y en a une.

Désinstallation

sudo apt remove gryphon-agent ou sudo dnf remove gryphon-agent l’arrête et le supprime. Le jeton reste dans /etc/gryphon, si bien qu’une réinstallation se connecte toujours comme le même hôte ; supprimez le répertoire pour l’oublier. apt y laisse aussi agent.env, et dnf ne le garde que si vous l’avez modifié, sous le nom agent.env.rpmsave. Après le script d’installation, sudo systemctl disable --now gryphon-agent, puis supprimez /usr/bin/gryphon-agent et /etc/systemd/system/gryphon-agent.service. Sous Windows, service uninstall avec le programme installé retire le service ; supprimez C:\ProgramData\Gryphon et C:\Program Files\Gryphon Agent pour oublier le reste. Sur un Mac, désactivez Open at Login, quittez l’application et placez-la dans la corbeille, ou brew uninstall --cask --zap gryphon-agent. Supprimer l’hôte dans Gryphon déconnecte son agent et refuse son jeton dès lors.

Quatorze jours gratuits. Puis à partir de $4.99 par mois.

L’agent, le tableau de bord, les applications et toutes les vérifications sauf les cinq pour Kubernetes font partie de chaque forfait. Les forfaits diffèrent par la quantité que vous surveillez, la fréquence, la provenance des vérifications, et le nombre de personnes et de pages d’état qu’ils comprennent. Comparer les forfaits. Annulez quand vous voulez.