thulium_drake.journald

Journalisation centralisée via Journald avec Ansible

Ce rôle permet de collecter les journaux système sur un système central via systemd-journald.

Tous les journaux sont sauvegardés sur le système désigné comme journald_server dans les variables. Lorsque le rôle est exécuté sur cet hôte, il configure le collecteur de journaux.

Utilisation

  • Installez le rôle (soit depuis Galaxy, soit directement depuis GitHub)
  • Copiez le fichier de paramètres par défaut dans votre inventaire (ou où que vous les stockiez) et remplissez les informations manquantes
  • Ajoutez le rôle à votre playbook principal
  • Exécutez Ansible
  • ???
  • Bénéficiez-en !

Analyse des journaux

La recherche ou la lecture des journaux collectés peut être effectuée à l'aide de l'outil journalctl que vous utilisez pour lire les journaux locaux. Voici quelques exemples :

  • Suivre tous les journaux entrants
journalctl -f -D /log
  • Suivre tous les journaux d'un fichier d'unité spécifique (sur n'importe quelle machine)
journalctl -f -D /log -u my-thing.service

SSL

Lors de l'exécution de ce rôle avec SSL activé, assurez-vous d'avoir fourni les éléments suivants :

  • Certificat CA (autosigné ou autre) accessible à l'utilisateur systemd-journal-upload
  • Certificat serveur pour le système loghost, signé par cette CA, accessible à l'utilisateur systemd-journal-remote

Un certificat 'solo' autosigné ne fonctionnera pas !

Notez que si vous souhaitez exécuter ce rôle sur des systèmes avec une version de Systemd supérieure à 234, vous devez organiser un certificat client pour que les clients s'authentifient auprès du serveur journald. Ce certificat peut être partagé entre tous les clients.

Un exemple de script pour installer (fournir le certificat vous-même) le certificat :

- name: 'Assurer le groupe de certificats clients journald'
  group:
    name: 'journald-cert'
    system: true
    state: 'present'

- name: 'Assurer le répertoire des certificats clients journald'
  file:
    path: '/etc/ssl/journald'
    state: 'directory'
    owner: 'root'
    group: 'journald-cert'
    mode: 0770

- name: 'Assurer les fichiers de certificats'
  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'

Cette approche a été testée sur CentOS7 et CentOS8 dans le même environnement.

BUG : CentOS7 (ou d'autres systèmes avec systemd 219)

La version de systemd-journal-remote dans cette version de systemd contient un bug où les journaux sont sauvegardés dans un fichier nommé d'après l'extrémité réceptrice de la transaction. Dans le cas des sources passives que ce rôle configure, cela signifie que tous les journaux sont collectés dans un seul fichier.

À propos du projet

Systemd Journald log forwarding & collection by Ansible

Installer
ansible-galaxy install thulium_drake.journald
Licence
gpl-3.0
Téléchargements
226
Propriétaire