Protokolle
Semaphore schreibt Serverprotokolle nach stdout und speichert Task- und Aktivitäts-Protokolle in einer Datenbank. Dadurch werden die wichtigsten Protokollinformationen zentralisiert, und Protokolldateien müssen nicht mehr separat gesichert werden. Die einzigen Daten, die im Dateisystem abgelegt werden, sind Cache-Daten.
Serverprotokoll
Semaphore schreibt keine Protokolldateien. Stattdessen werden alle Anwendungsprotokolle nach stdout geschrieben.
Wenn Semaphore als systemd-Dienst läuft, können Sie die Protokolle mit folgendem Befehl anzeigen:
journalctl -u semaphore.service -f
Wenn Semaphore in einem Docker-Container läuft, können Sie die Protokolle mit folgendem Befehl anzeigen:
docker logs -f my-semaphore-container
Dies liefert eine Live-Ansicht (Streaming) der Protokolle.
Aktivitätsprotokoll
Das Aktivitätsprotokoll erfasst Benutzeraktionen in Semaphore, darunter:
- Hinzufügen oder Entfernen von Ressourcen (z. B. Vorlagen, Inventories, Repositories).
- Hinzufügen oder Entfernen von Teammitgliedern.
Pro-Version 2.10 und neuer Pro
Semaphore Pro 2.10+ unterstützt das Schreiben des Aktivitätsprotokolls und des Task-Protokolls in eine Datei. Um dies zu aktivieren, fügen Sie folgende Konfiguration zu Ihrer config.json hinzu:
{
"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
}
}
}
}
Alternativ können Sie dies über die folgenden Umgebungsvariablen erreichen:
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"}
Optionen für die Aktivitäts-(Ereignis-)Protokollierung
Mit den Optionen für die Aktivitäts-(Ereignis-)Protokollierung legen Sie fest, wie Semaphore Benutzeraktionen und Systemereignisse in eine Datei schreibt. Diese Einstellungen steuern das Verhalten der Ereignisprotokollierung, einschließlich der Frage, ob sie aktiviert ist, des Formats der Protokolleinträge und der spezifischen Logger-Konfiguration. Wenn sie aktiviert ist, werden Benutzeraktionen wie das Erstellen von Vorlagen oder das Verwalten von Teams gemäß diesen Einstellungen in die angegebene Protokolldatei geschrieben.
| Parameter | Umgebungsvariablen | Beschreibung |
|---|---|---|
enabled | SEMAPHORE_EVENT_LOG_ENABLED | Aktiviert die Ereignisprotokollierung in eine Datei. |
format | SEMAPHORE_EVENT_LOG_FORMAT | Format der Protokolleinträge. Für das Raw-Format leer lassen oder json festlegen. |
logger | SEMAPHORE_EVENT_LOGGER | Logger-Optionen. |
Optionen für die Task-Protokollierung
Mit den Optionen für die Task-Protokollierung legen Sie fest, wie Semaphore Details zur Task-Ausführung in eine Datei schreibt. Diese Einstellungen steuern die Protokollierung task-bezogener Ereignisse, einschließlich Task-Start, Task-Abschluss und Ausführungsstatus. Wenn sie aktiviert ist, werden alle Task-Vorgänge und ihre Ergebnisse gemäß diesen Einstellungen in die angegebene Protokolldatei geschrieben, was einen detaillierten Audit-Trail der Task-Ausführungshistorie liefert.
| Parameter | Umgebungsvariablen | Beschreibung |
|---|---|---|
enabled | SEMAPHORE_TASK_LOG_ENABLED | Aktiviert die Task-Protokollierung in eine Datei. |
format | SEMAPHORE_TASK_LOG_FORMAT | Format der Protokolleinträge. Für das Raw-Format leer lassen oder json festlegen. |
logger | SEMAPHORE_TASK_LOGGER | Logger-Optionen. |
result_logger | SEMAPHORE_TASK_RESULT_LOGGER | Logger-Optionen. |
Logger-Optionen
| Parameter | Typ | Beschreibung |
|---|---|---|
filename | String | Pfad und Name der Datei, in die Protokolle geschrieben werden. Backup-Protokolldateien werden im selben Verzeichnis aufbewahrt. Wenn leer, wird processname-lumberjack.log im temporären Verzeichnis verwendet. |
maxsize | Integer | Maximale Größe der Protokolldatei in Megabyte, bevor sie rotiert wird. Standard sind 100 Megabyte. |
maxage | Integer | Maximale Anzahl von Tagen, die alte Protokolldateien anhand des in ihrem Dateinamen kodierten Zeitstempels aufbewahrt werden. Beachten Sie, dass ein Tag als 24 Stunden definiert ist und wegen Sommerzeit, Schaltsekunden usw. nicht exakt Kalendertagen entsprechen muss. Standardmäßig werden alte Protokolldateien nicht anhand des Alters entfernt. |
maxbackups | Integer | Maximale Anzahl alter Protokolldateien, die aufbewahrt werden. Standardmäßig werden alle alten Protokolldateien aufbewahrt (MaxAge kann jedoch weiterhin dazu führen, dass sie gelöscht werden). |
localtime | Boolean | Legt fest, ob für die Formatierung der Zeitstempel in Backup-Dateien die lokale Zeit des Rechners verwendet wird. Standardmäßig wird UTC verwendet. |
compress | Boolean | Legt fest, ob rotierte Protokolldateien mit gzip komprimiert werden sollen. Standardmäßig wird keine Komprimierung durchgeführt. |
Jede Zeile in der Datei folgt diesem Format:
2024-01-03 12:00:34 user=234234 object=template action=delete
Task-Verlauf
Semaphore speichert Informationen zur Task-Ausführung in der Datenbank. Der Task-Verlauf bietet eine detaillierte Übersicht über alle ausgeführten Tasks, einschließlich ihres Status und ihrer Protokolle. Sie können Tasks in Echtzeit überwachen oder historische Protokolle über die Weboberfläche einsehen.
Task-Aufbewahrung konfigurieren
Standardmäßig speichert Semaphore alle Tasks in der Datenbank. Wenn Sie eine große Anzahl von Tasks ausführen, können diese erheblichen Speicherplatz belegen.
Sie können mit einem der folgenden Ansätze konfigurieren, wie viele Tasks pro Vorlage aufbewahrt werden:
- Umgebungsvariable
SEMAPHORE_MAX_TASKS_PER_TEMPLATE=30 - Option in
config.json{
"max_tasks_per_template": 30
}
Wenn die Anzahl der Tasks diesen Grenzwert überschreitet, werden die ältesten Task-Protokolle automatisch gelöscht.
Unterstützung des Syslog-Protokolls Enterprise
Semaphore kann Aktivitäts- und Task-Protokolleinträge zur Langzeitspeicherung oder zentralen Überwachung an einen externen Syslog-Collector weiterleiten. Die Syslog-Weiterleitung ist standardmäßig deaktiviert.
Konfigurieren Sie die Syslog-Unterstützung in config.json:
"syslog": {
"enabled": true,
"network": "udp",
"address": "logs.example.com:514",
"tag": "semaphore"
}
Dieselben Optionen stehen über Umgebungsvariablen zur Verfügung, wenn Sie die JSON-Datei nicht bearbeiten möchten:
SEMAPHORE_SYSLOG_ENABLED=true
SEMAPHORE_SYSLOG_NETWORK=udp
SEMAPHORE_SYSLOG_ADDRESS=logs.example.com:514
SEMAPHORE_SYSLOG_TAG=semaphore
Syslog-Optionen
| Parameter | Umgebungsvariablen | Beschreibung |
|---|---|---|
enabled | SEMAPHORE_SYSLOG_ENABLED | Schaltet die Syslog-Weiterleitung ein oder aus. |
network | SEMAPHORE_SYSLOG_NETWORK | Protokoll für die Verbindung zum Collector, z. B. udp oder tcp. |
address | SEMAPHORE_SYSLOG_ADDRESS | Adresse des Collectors im Format host:port. |
tag | SEMAPHORE_SYSLOG_TAG | Optionale Kennung, die jeder Nachricht vorangestellt wird. |
Starten Sie den Semaphore-Dienst nach dem Ändern dieser Werte neu, damit das neue Syslog-Ziel übernommen wird.
SIEM-Integration
An- und Abmeldungen sowie Kontoänderungen, etwa neue Benutzer, Rollen und API-Tokens, können im Audit-Protokoll aufgezeichnet werden. Semaphore Pro kann es an ein SIEM senden.
Zusammenfassung
- Serverprotokoll: Wird nach stdout geschrieben; unter systemd über
journalctleinsehbar. - Aktivitäts- und Task-Protokoll: Erfasst alle Benutzeraktionen. Optional kann Pro 2.10+ diese in eine Datei schreiben.
- Task-Verlauf: Speichert Echtzeit- und historische Task-Ausführungsprotokolle. Die Aufbewahrung ist pro Vorlage konfigurierbar.
- Audit-Protokoll: Zeichnet Anmeldungen und Kontoänderungen auf. Standardmäßig aus.
Wenn Sie diese Richtlinien befolgen, haben Sie angemessene Einsicht in den Betrieb von Semaphore UI und behalten zugleich Speicherverbrauch und Protokollaufbewahrung unter Kontrolle.