Technologieaustausch

[Linux-Sicherheitsbetrieb und -wartung] rsyslog

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

rsyslog

1. Was ist rsyslog?

rsyslog ist ein leistungsstarkesProtokollhandler , in der Lage, Protokollnachrichten zu empfangen, zu verarbeiten und weiterzuleiten. Es wird häufig in UNIX- und Linux-Systemen zur Systemprotokollierung und -verwaltung verwendet.

2. Hauptfunktionen von rsyslog

  1. Hochleistung: Kann eine große Anzahl von Protokollnachrichten verarbeiten und eignet sich für umfangreiche Protokollverwaltungsanforderungen.
  2. Modulare Architektur: Unterstützt eine Vielzahl von Ein- und Ausgabemodulen und kann Funktionen flexibel erweitern.
  3. Protokollfilterung und Umschreiben: Unterstützt komplexe Regeln zum Filtern und Umschreiben von Protokollen, um eine präzise Steuerung des Protokollflusses zu ermöglichen.
  4. Unterstützt mehrere Protokolle: Kann mehrere Protokollübertragungsprotokolle wie TCP, UDP, TLS usw. verarbeiten.
  5. Sicherheit: Unterstützt verschlüsselte Übertragung und Authentifizierung, um die Sicherheit von Protokollnachrichten zu gewährleisten.

3. Grundkonfiguration von rsyslog

Die Konfigurationsdatei für rsyslog befindet sich normalerweise in /etc/rsyslog.conf oder/etc/rsyslog.d/ Unter Inhalt. Seine Konfigurationsdatei übernimmt eine Regel-Aktions-Struktur.

Befehl:

systemctl status rsyslog.service

Konfigurationsbeispiel

# 基本格式
# :规则:动作

# 接收本地日志并写入文件
*.* /var/log/all.log

# 接收远程日志(UDP)并写入文件
$ModLoad imudp
$UDPServerRun 514
*.* /var/log/remote.log

# 接收远程日志(TCP)并写入文件
$ModLoad imtcp
$InputTCPServerRun 514
*.* /var/log/remote_tcp.log

# 基于消息优先级的日志过滤
authpriv.* /var/log/secure.log

# 基于消息内容的日志过滤
:msg, contains, "error" /var/log/error.log

4. Protokollpriorität und -einrichtungen

rsyslog verwendet Funktionen und Prioritäten, um Protokollnachrichten zu klassifizieren und zu verarbeiten.

Einrichtung

Zu den allgemeinen Einrichtungen gehören:

  • auth, authpriv: Authentifizierungs- und sicherheitsbezogene Nachrichten
  • cron: Nachrichten im Zusammenhang mit geplanten Aufgaben
  • Daemon: Systemhintergrundprozessbezogene Meldungen
  • kern: Kernelbezogene Nachrichten
  • Mail: Mailsystem-bezogene Nachrichten
  • syslog: Meldungen zur internen Protokollverarbeitung

Priorität

Die Priorität von hoch nach niedrig umfasst:

  • Notfall: Notfallsituation, die eine sofortige Benachrichtigung aller Benutzer erfordert
  • Alarm: ein Problem, das sofort behoben werden muss
  • Kritik: ernste Situation
  • Fehler: Fehler
  • Warnung: Warnung
  • Hinweis: gewöhnliche, aber wichtige Neuigkeiten
  • info: Informationsnachricht
  • debug: Debug-Nachricht

5. Allgemeine Befehle

  • Starten Sie rsyslogsudo systemctl start rsyslog
  • Stoppen Sie rsyslogsudo systemctl stop rsyslog
  • Starten Sie rsyslog neusudo systemctl restart rsyslog
  • Überprüfen Sie den Rsyslog-Statussudo systemctl status rsyslog
  • Konfiguration neu ladensudo systemctl reload rsyslog

6. Erweiterte Funktionen

  • Protokollweiterleitung: Protokollnachrichten an den Remote-Server weiterleiten
  • Umschreiben des Protokolls: Protokollnachrichteninhalt gemäß den Regeln ändern
  • Protokollarchiv: Protokollnachrichten archivieren, um Speicherplatz zu sparen
  • Protokollanalyse: Integrieren Sie Tools von Drittanbietern für die Protokollanalyse und -visualisierung

Konfigurationsbeispiel

  1. Client-Konfiguration
    Konfigurieren Sie rsyslog auf dem Clientserver so, dass Protokollmeldungen an den zentralen Protokollserver weitergeleitet werden:

    # 配置远程日志传输(UDP)
    *.* @logs.example.com:514
    
    # 配置远程日志传输(TCP)
    *.* @@logs.example.com:514
    
  2. Serverkonfiguration
    Konfigurieren Sie auf dem zentralen Protokollserver rsyslog für den Empfang von Protokollnachrichten von Clients:

    # 加载输入模块
    $ModLoad imudp
    $UDPServerRun 514
    
    $ModLoad imtcp
    $InputTCPServerRun 514
    
    # 将接收到的日志写入文件
    *.* /var/log/centralized.log