thulium_drake.journald

Zentrale Protokollierung über Journald mit Ansible

Diese Rolle ermöglicht das Sammeln von Systemprotokollen auf einem zentralen System über systemd-journald.

Alle Protokolle werden auf dem System gespeichert, das in den Variablen als journald_server bezeichnet wird. Wenn die Rolle auf diesem Host ausgeführt wird, wird der Protokollsammler konfiguriert.

Benutzung

  • Installiere die Rolle (entweder aus Galaxy oder direkt von GitHub)
  • Kopiere die Standarddatei in dein Inventar (oder wo auch immer du sie speicherst) und fülle die fehlenden Informationen aus
  • Füge die Rolle zu deinem Master-Playbook hinzu
  • Führe Ansible aus
  • ???
  • Profit!

Protokolle analysieren

Das Suchen oder Lesen der gesammelten Protokolle kann mit dem gleichen journalctl-Tool erfolgen, das Sie zum Lesen lokaler Protokolle verwenden. Hier sind einige Beispiele:

  • Alle eingehenden Protokolle anzeigen
journalctl -f -D /log
  • Alle Protokolle von einer bestimmten Einheit (auf jedem Gerät)
journalctl -f -D /log -u my-thing.service

SSL

Wenn du diese Rolle mit aktiviertem SSL ausführst, stelle sicher, dass Folgendes bereitgestellt wird:

  • CA-Zertifikat (selbstsigniert oder anders) für den Benutzer systemd-journal-upload zugänglich
  • Serverzertifikat für das Loghost-System, das von dieser CA signiert ist, zugänglich für den Benutzer systemd-journal-remote

Ein selbstsigniertes 'Solo'-Zertifikat wird nicht funktionieren!

Beachte, dass, wenn du diese Rolle auf Systemen mit einer Systemd-Version höher als 234 ausführen möchtest, muss ein Client-Zertifikat bereitgestellt werden, damit sich die Clients beim journald-Server authentifizieren können. Dieses Zertifikat kann von allen Clients geteilt werden.

Ein Beispielskript für die Installation (stelle das Zertifikat selbst bereit) des Zertifikats:

- name: 'Sicherstellen, dass die Journald-Client-Zertifikatsgruppe vorhanden ist'
  group:
    name: 'journald-cert'
    system: true
    state: 'present'

- name: 'Sicherstellen, dass das Verzeichnis für das Journald-Client-Zertifikat vorhanden ist'
  file:
    path: '/etc/ssl/journald'
    state: 'directory'
    owner: 'root'
    group: 'journald-cert'
    mode: 0770

- name: 'Sicherstellen, dass die Zertifikatdateien vorhanden sind'
  copy:
    src: "{{ cert.src }}"
    dest: "{{ cert.dest }}"
    owner: 'root'
    group: 'journald-cert'
    mode: 0440
  loop:
    - src: "{{ journald_certificate_source }}"
      dest: '/etc/ssl/journald/client.crt'
    - src: "{{ journald_key_source }}"
      dest: '/etc/ssl/journald/client.key'
  loop_control:
    loop_var: 'cert'

Dieser Ansatz wurde auf CentOS7 und CentOS8 in derselben Umgebung getestet.

FEHLER: CentOS7 (oder anderen Systemen mit systemd 219)

Die Version von systemd-journal-remote in dieser Version von systemd enthält einen Fehler, bei dem Protokolle in einer Datei gespeichert werden, die nach dem empfangenden Ende der Transaktion benannt ist. Im Fall der passiven Quellen, die diese Rolle konfiguriert, bedeutet dies, dass alle Protokolle in einer einzigen Datei gesammelt werden.

Über das Projekt

Systemd Journald log forwarding & collection by Ansible

Installieren
ansible-galaxy install thulium_drake.journald
GitHub Repository
Lizenz
gpl-3.0
Downloads
226