[ English | 日本語 | Deutsch | Indonesia ]

rsyslog

Eine Reihe von Betriebssystemen verwenden rsyslog als Standard-Protokollierungsdienst. Da es nativ in der Lage ist, Protokolle an einen entfernten Ort zu senden, müssen Sie nichts extra installieren, um diese Funktion zu aktivieren, ändern Sie einfach die Konfigurationsdatei. Erwägen Sie dabei, Ihre Protokollierung über ein Managementnetzwerk oder über ein verschlüsseltes VPN durchzuführen, um ein Abfangen zu vermeiden.

rsyslog Client-Konfiguration

Konfigurieren Sie zunächst alle OpenStack-Komponenten so, dass sie sich zusätzlich zu ihrem Standard-Logfile-Speicherort in der syslog-Logdatei anmelden. Konfigurieren Sie auch jede Komponente so, dass sie sich bei einer anderen Syslog-Funktion anmeldet. Dies erleichtert die Aufteilung der Protokolle in einzelne Komponenten auf dem zentralen Server:

nova.conf:

use_syslog=True
syslog_log_facility=LOG_LOCAL0

glance-api.conf und glance-registry.conf:

use_syslog=True
syslog_log_facility=LOG_LOCAL1

cinder.conf:

use_syslog=True
syslog_log_facility=LOG_LOCAL2

keystone.conf:

use_syslog=True
syslog_log_facility=LOG_LOCAL3

Standardmäßig protokolliert die Objektspeicherung in syslog.

Als nächstes erstellen Sie /etc/rsyslog.d/client.conf mit der folgenden Zeile:

*.* @192.168.1.10

Dies weist rsyslog an, alle Protokolle an die aufgelistete IP zu senden. In diesem Beispiel zeigt die IP auf den Cloud-Controller.

rsyslog server konfiguration

Geben Sie einen Server als zentralen Protokollierungsserver an. Die beste Vorgehensweise ist die Wahl eines Servers, der ausschließlich für diesen Zweck bestimmt ist. Erstellen Sie eine Datei namens /etc/rsyslog.d/server.conf mit folgendem Inhalt:

# Enable UDP
$ModLoad imudp
# Listen on 192.168.1.10 only
$UDPServerAddress 192.168.1.10
# Port 514
$UDPServerRun 514

# Create logging templates for nova
$template NovaFile,"/var/log/rsyslog/%HOSTNAME%/nova.log"
$template NovaAll,"/var/log/rsyslog/nova.log"

# Log everything else to syslog.log
$template DynFile,"/var/log/rsyslog/%HOSTNAME%/syslog.log"
*.* ?DynFile

# Log various openstack components to their own individual file
local0.* ?NovaFile
local0.* ?NovaAll
& ~

Diese Beispielkonfiguration behandelt nur den nova-Dienst. Zuerst wird rsyslog konfiguriert, um als Server zu fungieren, der auf Port 514 läuft. Als nächstes erstellt es eine Reihe von Protokollvorlagen. Protokollvorlagen steuern, wo empfangene Protokolle gespeichert werden. Anhand des letzten Beispiels geht ein nova-Protokoll von c01.example.com an die folgenden Stellen:

  • /var/log/rsyslog/c01.example.com/nova.log

  • /var/log/rsyslog/nova.log

Dies ist nützlich, da Protokolle von c02.example.com aufgerufen werden:

  • /var/log/rsyslog/c02.example.com/nova.log

  • /var/log/rsyslog/nova.log

Diese Konfiguration führt zu einer separaten Protokolldatei für jeden Compute-Knoten sowie zu einer aggregierten Protokolldatei, die nova-Protokolle von allen Knoten enthält.