Der Ops-Agent schreibt in eine Logdatei namens logging-module.log
. Wenn der Agent über längere Zeit unbeaufsichtigt ausgeführt wird oder wenn ein Problem auftritt, kann die „Self-Log“-Datei den gesamten verfügbaren Speicherplatz belegen. In diesem Dokument wird beschrieben, wie Sie dieses Problem mit der Logrotation verhindern können.
Mit der Ops-Agent-Version 2.31.0 wird eine konfigurierbare Funktion für die Logrotation eingeführt, die in den Agent integriert ist. Wenn Sie die Ops-Agent-Version 2.31.0 oder höher ausführen, können Sie die integrierte Funktion zur Logrotation verwenden. Siehe Logrotation im Ops-Agent konfigurieren.
Sie können die Logrotation auch manuell verwalten. Möglicherweise benötigen Sie einen manuellen Prozess, wenn Sie eine Version des Ops-Agents ohne integrierte Logrotation verwenden oder Ihre Logs manuell rotieren möchten. Eine mögliche Methode finden Sie unter Rotation von Logdateien für Linux-VMs einrichten.
Logrotation im Ops-Agent konfigurieren
In diesem Abschnitt wird beschrieben, wie Sie die Standardkonfiguration der Logrotation ändern, die vom Ops-Agent verwendet wird, um seine Logs automatisch zu rotieren. Für diese Funktion ist Ops-Agent Version 2.31.0 oder höher erforderlich.
Standardkonfiguration
Der Ops-Agent verwendet den Eintrag default_self_log_file_rotation
zur Konfiguration der Logrotation. Dieser Konfigurationseintrag erfordert drei Optionen. Das folgende Snippet zeigt die Optionen und ihre Standardwerte:
default_self_log_file_rotation: enabled: true max_file_size_megabytes: 400 backup_count: 1
Die default_self_log_file_rotation
-Konfiguration hat drei Optionen:
enabled
: Gibt an, ob die Logrotation aktiviert ist. Standardwert isttrue
.max_file_size_megabytes
: Die maximale Größe der Logdatei, bevor sie durch die Logrotation gesichert wird. (gemessen in Megabyte (1.0242 Byte). Der Standardwert ist 400, der gültige Mindestwert ist 1.backup_count
: Die Anzahl der alten Logdateien, die aufbewahrt werden sollen. Der Standardwert ist 1, der gültige Mindestwert ist 1.
Nutzerkonfiguration der Logrotation
Wenn Sie die Standardkonfiguration der Logrotation ändern möchten, überschreiben Sie diese Konfiguration, indem Sie die Konfiguration in der Nutzerkonfigurationsdatei des Ops-Agents neu definieren:
- Auf Linux:
/etc/google-cloud-ops-agent/config.yaml
- Auf Windows:
C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml
Zur Konfiguration der Logrotation im Ops-Agent fügen Sie der Nutzerkonfigurationsdatei den Abschnitt global
hinzu und fügen das Konfigurationselement default_self_log_file_rotation
im Abschnitt global
hinzu. Möglicherweise haben Sie bereits Logging- oder Messwertpipelines in dieser Konfigurationsdatei und fügen den Abschnitt global
nach Ihren Pipelines hinzu. Das Ergebnis, wobei alle Optionen und Standardwerte angegeben werden, sieht so aus:
logging: ... metrics: ... global: default_self_log_file_rotation: enabled: true max_file_size_megabytes: 400 backup_count: 1
Beispielkonfigurationen
Geben Sie die Option enabled
mit dem Wert false
an, um die Logrotation durch den Ops-Agent zu deaktivieren:
logging: ... metrics: ... global: default_self_log_file_rotation: enabled: false
So rotieren Sie das Log, wenn die Logdatei 20 MB erreicht und 5 Sicherungen speichert (insgesamt 6 Dateien):
logging: ... metrics: ... global: default_self_log_file_rotation: max_file_size_megabytes: 20 backup_count: 5
So rotieren Sie das Log,wenn die Logdatei 2.000 MB (2 GB) erreicht und 1 Sicherung aufbewahrt wird (insgesamt 2 Dateien):
logging: ... metrics: ... global: default_self_log_file_rotation: max_file_size_megabytes: 2000
So rotieren Sie das Log, wenn die Logdatei 400 MB erreicht und zwei Sicherungen aufbewahrt (insgesamt drei Dateien):
logging: ... metrics: ... global: default_self_log_file_rotation: backup_count: 2
Wenn Sie häufig Änderungen vornehmen, während Sie Ihre Logrotation-Konfiguration optimieren, denken Sie daran, den Agent neu zu starten, um Ihre Änderungen zu übernehmen.
Rotation von Self-Logdateien auf Linux-VMs einrichten
Installieren und konfigurieren Sie das Dienstprogramm logrotate
, um die Größe des Logging-Sub-Agent-Logs unter /var/log/google-cloud-ops-agent/subagents/logging-module.log
zu begrenzen.
Installieren Sie das Dienstprogramm
logrotate
mit dem folgenden Befehl:Debian und Ubuntu
sudo apt install logrotate
Unter CentOS, RHEL und Fedora
sudo yum install logrotate
Erstellen Sie unter
/etc/logrotate.d/google-cloud-ops-agent.conf
einelogrotate
-Konfigurationsdatei.sudo tee /etc/logrotate.d/google-cloud-ops-agent.conf > /dev/null << EOF # logrotate config to rotate Google Cloud Ops Agent self log file. # See https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html for # the full options. /var/log/google-cloud-ops-agent/subagents/logging-module.log { # Log files are rotated every day. daily # Log files are rotated this many times before being removed. This # effectively limits the disk space used by the Ops Agent self log files. rotate 30 # Log files are rotated when they grow bigger than maxsize even before the # additionally specified time interval maxsize 256M # Skip rotation if the log file is missing. missingok # Do not rotate the log if it is empty. notifempty # Old versions of log files are compressed with gzip by default. compress # Postpone compression of the previous log file to the next rotation # cycle. delaycompress } EOF
Richten Sie
crontab
odersystemd timer
ein, um das Dienstprogrammlogrotate
regelmäßig auszulösen.
Nachdem die Logrotation wirksam wurde, werden im Verzeichnis /var/log/google-cloud-ops-agent/subagents/
rotierte Dateien angezeigt. Die Ergebnisse sehen in etwa so aus:
/var/log/google-cloud-ops-agent/subagents$ ls -lh
total 24K
-rw-r--r-- 1 root root 717 Sep 3 19:54 logging-module.log
-rw-r--r-- 1 root root 6.8K Sep 3 19:51 logging-module.log.1
-rw-r--r-- 1 root root 874 Sep 3 19:50 logging-module.log.2.gz
-rw-r--r-- 1 root root 873 Sep 3 19:50 logging-module.log.3.gz
-rw-r--r-- 1 root root 3.2K Sep 3 19:34 logging-module.log.4.gz
So testen Sie die Logrotation:
Verringern Sie vorübergehend die Dateigröße, bei der die Rotation ausgelöst wird. Setzen Sie dazu den Wert
maxsize
in der Datei/etc/logrotate.d/google-cloud-ops-agent.conf
auf1k
.Lösen Sie die Selbstlogdatei des Agents auf einen Wert größer als 1 KB aus, indem Sie den Agent mehrmals neu starten:
sudo service google-cloud-ops-agent restart
Warten Sie, bis
crontab
odersystemd timer
wirksam wurde, um das Dienstprogrammlogrotate
auszulösen, oder lösen Sie das Dienstprogrammlogrotate
manuell aus. Führen Sie dazu diesen Befehl aus:sudo logrotate /etc/logrotate.d/google-cloud-ops-agent.conf
Prüfen Sie, ob im Verzeichnis
/var/log/google-cloud-ops-agent/subagents/
rotierte Logdateien angezeigt werden.Setzen Sie die Logrotation-Konfiguration zurück, indem Sie den ursprünglichen
maxsize
-Wert wiederherstellen.