Aller au contenu principal

Journaux

Semaphore écrit les journaux du serveur sur stdout et stocke les journaux des tâches et de l'activité dans une base de données, ce qui centralise les informations de journalisation essentielles et évite d'avoir à sauvegarder séparément des fichiers journaux. Les seules données stockées sur le système de fichiers sont les données de cache.


Journal du serveur​

Semaphore n'écrit pas de journaux dans des fichiers. Tous les journaux de l'application sont écrits sur stdout.
Si Semaphore s'exécute en tant que service systemd, vous pouvez consulter les journaux avec la commande suivante :

journalctl -u semaphore.service -f

Si Semaphore s'exécute dans un conteneur Docker, vous pouvez consulter les journaux avec la commande suivante :

docker logs -f my-semaphore-container

Cela fournit une vue en direct (en flux continu) des journaux.


Journal d'activité​

Le journal d'activité enregistre les actions effectuées par les utilisateurs dans Semaphore, notamment :

  • L'ajout ou la suppression de ressources (par ex. modèles, inventaires, dépôts).
  • L'ajout ou la suppression de membres d'équipe.

Version Pro 2.10 et ultérieures Pro​

Semaphore Pro 2.10+ prend en charge l'écriture du journal d'activité et du journal des tâches dans un fichier. Pour l'activer, ajoutez la configuration suivante à votre config.json :

{
"log": {
"events": {
"enabled": true,
"logger": {
"filename": "./events.log"
// other logger options
}
},
"tasks": {
"enabled": true,
"logger": {
"filename": "./tasks.log"
// other logger options
},
"result_logger": {
"filename": "./task_results.log"
// other logger options
}
}
}
}

Ou vous pouvez le faire à l'aide des variables d'environnement suivantes :

export SEMAPHORE_EVENT_LOG_ENABLED=True
export SEMAPHORE_EVENT_LOGGER={"filename": "./events.log"}

export SEMAPHORE_TASK_LOG_ENABLED=True
export SEMAPHORE_TASK_LOGGER={"filename": "./tasks.log"}

Options de journalisation de l'activité (événements)​

Les options de journalisation de l'activité (événements) vous permettent de configurer la manière dont Semaphore enregistre les actions des utilisateurs et les événements système dans un fichier. Ces paramètres contrôlent le comportement de la journalisation des événements, notamment son activation, le format des entrées de journal et la configuration spécifique du logger. Une fois activée, les actions des utilisateurs comme la création de modèles ou la gestion des équipes seront écrites dans le fichier journal spécifié conformément à ces paramètres.

ParamètreVariables d'environnementDescription
enabledSEMAPHORE_EVENT_LOG_ENABLEDActive la journalisation des événements dans un fichier.
formatSEMAPHORE_EVENT_LOG_FORMATFormat des enregistrements du journal. Laissez vide pour le format raw ou définissez json.
loggerSEMAPHORE_EVENT_LOGGEROptions du logger.

Options de journalisation des tâches​

Les options de journalisation des tâches vous permettent de configurer la manière dont Semaphore enregistre les détails d'exécution des tâches dans un fichier. Ces paramètres contrôlent la journalisation des événements liés aux tâches, notamment leur démarrage, leur achèvement et leur statut d'exécution. Une fois activée, toutes les opérations sur les tâches et leurs résultats seront écrits dans le fichier journal spécifié conformément à ces paramètres, fournissant ainsi une piste d'audit détaillée de l'historique d'exécution des tâches.

ParamètreVariables d'environnementDescription
enabledSEMAPHORE_TASK_LOG_ENABLEDActive la journalisation des tâches dans un fichier.
formatSEMAPHORE_TASK_LOG_FORMATFormat des enregistrements du journal. Laissez vide pour le format raw ou définissez json.
loggerSEMAPHORE_TASK_LOGGEROptions du logger.
result_loggerSEMAPHORE_TASK_RESULT_LOGGEROptions du logger.

Options du logger​

ParamètreTypeDescription
filenameChaîneChemin et nom du fichier dans lequel écrire les journaux. Les fichiers journaux de sauvegarde sont conservés dans le même répertoire. Si vide, processname-lumberjack.log est utilisé dans le répertoire temporaire.
maxsizeEntierTaille maximale, en mégaoctets, du fichier journal avant sa rotation. La valeur par défaut est de 100 mégaoctets.
maxageEntierNombre maximal de jours pendant lesquels conserver les anciens fichiers journaux, d'après l'horodatage encodé dans leur nom de fichier. Notez qu'un jour est défini comme 24 heures et peut ne pas correspondre exactement aux jours calendaires en raison de l'heure d'été, des secondes intercalaires, etc. Par défaut, les anciens fichiers journaux ne sont pas supprimés en fonction de leur âge.
maxbackupsEntierNombre maximal d'anciens fichiers journaux à conserver. Par défaut, tous les anciens fichiers journaux sont conservés (bien que MaxAge puisse tout de même entraîner leur suppression).
localtimeBooléenDétermine si l'heure utilisée pour formater les horodatages des fichiers de sauvegarde est l'heure locale de l'ordinateur. Par défaut, l'heure UTC est utilisée.
compressBooléenDétermine si les fichiers journaux ayant subi une rotation doivent être compressés avec gzip. Par défaut, aucune compression n'est effectuée.

Chaque ligne du fichier suit ce format :

2024-01-03 12:00:34 user=234234 object=template action=delete

Historique des tâches​

Semaphore stocke les informations sur l'exécution des tâches dans la base de données. L'historique des tâches offre une vue détaillée de toutes les tâches exécutées, y compris leur statut et leurs journaux. Vous pouvez suivre les tâches en temps réel ou consulter les journaux historiques via l'interface web.

Configurer la rétention des tâches​

Par défaut, Semaphore stocke toutes les tâches dans la base de données. Si vous exécutez un grand nombre de tâches, elles peuvent occuper un espace disque important.

Vous pouvez configurer le nombre de tâches conservées par modèle en utilisant l'une des approches suivantes :

  1. Variable d'environnement
    SEMAPHORE_MAX_TASKS_PER_TEMPLATE=30
  2. Option de config.json
    {
    "max_tasks_per_template": 30
    }

Lorsque le nombre de tâches dépasse cette limite, les journaux de tâches les plus anciens sont automatiquement supprimés.


Prise en charge du protocole syslog Enterprise​

Semaphore peut transférer les entrées du journal d'activité et du journal des tâches vers un collecteur syslog externe pour un stockage à long terme ou une supervision centralisée. Le transfert syslog est désactivé par défaut.

Configurez la prise en charge de syslog dans config.json :

"syslog": {
"enabled": true,
"network": "udp",
"address": "logs.example.com:514",
"tag": "semaphore"
}

Les mêmes options sont disponibles via des variables d'environnement si vous préférez ne pas modifier le fichier JSON :

SEMAPHORE_SYSLOG_ENABLED=true
SEMAPHORE_SYSLOG_NETWORK=udp
SEMAPHORE_SYSLOG_ADDRESS=logs.example.com:514
SEMAPHORE_SYSLOG_TAG=semaphore

Options syslog​

ParamètreVariables d'environnementDescription
enabledSEMAPHORE_SYSLOG_ENABLEDActive ou désactive le transfert syslog.
networkSEMAPHORE_SYSLOG_NETWORKProtocole utilisé pour joindre le collecteur, par exemple udp ou tcp.
addressSEMAPHORE_SYSLOG_ADDRESSAdresse du collecteur au format host:port.
tagSEMAPHORE_SYSLOG_TAGIdentifiant facultatif ajouté en préfixe de chaque message.

Redémarrez le service Semaphore après avoir modifié ces valeurs afin que la nouvelle destination syslog soit appliquée.


Intégration SIEM​

Les connexions et les modifications de comptes, comme les nouveaux utilisateurs, rôles et jetons d'API, peuvent être enregistrées dans le journal d'audit. Semaphore Pro peut l'envoyer vers un SIEM.

Résumé​

  • Journal du serveur : écrit sur stdout ; consultable via journalctl en cas d'exécution sous systemd.
  • Journal d'activité et des tâches : suit toutes les actions des utilisateurs. En option, Pro 2.10+ peut les écrire dans un fichier.
  • Historique des tâches : stocke les journaux d'exécution des tâches en temps réel et historiques. La rétention est configurable par modèle.
  • Journal d'audit : enregistre les connexions et les modifications de comptes. Désactivé par défaut.

En suivant ces recommandations, vous disposez d'une visibilité adéquate sur le fonctionnement de Semaphore UI tout en maîtrisant l'utilisation du stockage et la rétention des journaux.