16.5. Application d'une solution de journalisation à distance à l'aide du rôle de système logging
Suivez ces étapes pour préparer et appliquer un playbook Red Hat Ansible Core afin de configurer une solution de journalisation à distance. Dans ce livre de jeu, un ou plusieurs clients récupèrent les journaux de systemd-journal
et les transmettent à un serveur distant. Le serveur reçoit des entrées distantes de remote_rsyslog
et remote_files
et émet les journaux vers des fichiers locaux dans des répertoires nommés par des noms d'hôtes distants.
Conditions préalables
-
Accès et autorisations à un ou plusieurs managed nodes, qui sont des systèmes que vous souhaitez configurer avec le rôle de système
logging
. Accès et permissions à un control node, qui est un système à partir duquel Red Hat Ansible Core configure d'autres systèmes.
Sur le nœud de contrôle :
-
Les paquets
ansible-core
etrhel-system-roles
sont installés. - Un fichier d'inventaire qui répertorie les nœuds gérés.
-
Les paquets
Il n'est pas nécessaire que le paquet rsyslog
soit installé, car le rôle de système installe rsyslog
lorsqu'il est déployé.
Procédure
Créez un cahier de jeu qui définit le rôle requis :
Créez un nouveau fichier YAML et ouvrez-le dans un éditeur de texte, par exemple :
# vi logging-playbook.yml
Insérez le contenu suivant dans le fichier :
--- - name: Deploying remote input and remote_files output hosts: server roles: - rhel-system-roles.logging vars: logging_inputs: - name: remote_udp_input type: remote udp_ports: [ 601 ] - name: remote_tcp_input type: remote tcp_ports: [ 601 ] logging_outputs: - name: remote_files_output type: remote_files logging_flows: - name: flow_0 inputs: [remote_udp_input, remote_tcp_input] outputs: [remote_files_output] - name: Deploying basics input and forwards output hosts: clients roles: - rhel-system-roles.logging vars: logging_inputs: - name: basic_input type: basics logging_outputs: - name: forward_output0 type: forwards severity: info target: _host1.example.com_ udp_port: 601 - name: forward_output1 type: forwards facility: mail target: _host1.example.com_ tcp_port: 601 logging_flows: - name: flows0 inputs: [basic_input] outputs: [forward_output0, forward_output1] [basic_input] [forward_output0, forward_output1]
Où
host1.example.com
est le serveur de journalisation.NoteVous pouvez modifier les paramètres du cahier de jeu en fonction de vos besoins.
AvertissementLa solution de journalisation ne fonctionne qu'avec les ports définis dans la politique SELinux du serveur ou du système client et ouverts dans le pare-feu. La stratégie SELinux par défaut inclut les ports 601, 514, 6514, 10514 et 20514. Pour utiliser un autre port, modifiez la stratégie SELinux sur les systèmes client et serveur.
Créez un fichier d'inventaire qui répertorie vos serveurs et vos clients :
Créez un nouveau fichier et ouvrez-le dans un éditeur de texte, par exemple :
# vi inventory.ini
Insérez le contenu suivant dans le fichier d'inventaire :
[servers] server ansible_host=host1.example.com [clients] client ansible_host=host2.example.com
Où ?
-
host1.example.com
est le serveur de journalisation. -
host2.example.com
est le client de journalisation.
-
Exécutez le manuel de jeu sur votre inventaire.
# ansible-playbook -i /path/to/file/inventory.ini /path/to/file/_logging-playbook.yml
Où ?
-
inventory.ini
est le fichier d'inventaire. -
logging-playbook.yml
est le cahier de jeu que vous avez créé.
-
Vérification
Sur le système client et le système serveur, testez la syntaxe du fichier
/etc/rsyslog.conf
:# rsyslogd -N 1 rsyslogd: version 8.1911.0-6.el8, config validation run (level 1), master config /etc/rsyslog.conf rsyslogd: End of config validation run. Bye.
Vérifiez que le système client envoie des messages au serveur :
Sur le système client, envoyez un message de test :
# logger test
Sur le système serveur, affichez le journal
/var/log/messages
, par exemple :# cat /var/log/messages Aug 5 13:48:31 host2.example.com root[6778]: test
Où
host2.example.com
est le nom d'hôte du système client. Notez que le journal contient le nom de l'utilisateur qui a entré la commande logger, dans ce casroot
.
Ressources supplémentaires
- Préparation d'un nœud de contrôle et de nœuds gérés à l'utilisation des rôles système RHEL
-
Documentation installée avec le paquetage
rhel-system-roles
dans/usr/share/ansible/roles/rhel-system-roles.logging/README.html
- Article de la base de données RHEL System Roles