14.4. Aplicación de una solución de registro remoto mediante el rol de sistema de registro
Siga estos pasos para preparar y aplicar un libro de jugadas de Red Hat Ansible Engine para configurar una solución de registro remoto. En este libro de jugadas, uno o más clientes toman los registros de systemd-journal
y los envían a un servidor remoto. El servidor recibe la entrada remota de remote_rsyslog
y remote_files
y envía los registros a archivos locales en directorios nombrados por nombres de hosts remotos.
Requisitos previos
Tiene instalado Red Hat Ansible Engine en el sistema desde el que desea ejecutar el libro de jugadas.
NotaNo es necesario que tenga instalado Red Hat Ansible Engine en los sistemas en los que desee implementar la solución de registro.
Tiene el paquete
rhel-system-roles
en el sistema desde el que quiere ejecutar el libro de jugadas.NotaNo es necesario tener instalado
rsyslog
, porque el rol de sistema instalarsyslog
cuando se despliega.Tienes al menos dos sistemas:
- Al menos uno será el servidor de registro.
- Al menos uno será el cliente de registro.
Procedimiento
Cree un libro de jugadas que defina el rol requerido:
Cree un nuevo archivo YAML y ábralo en un editor de texto, por ejemplo:
# vi logging-playbook.yml
Inserte el siguiente contenido en el archivo:
--- - name: Deploying remote input and remote_files output hosts: server roles: - linux-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: - linux-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]
Donde
host1.example.com
es el servidor de registro.NotaPuede modificar los parámetros del libro de jugadas para adaptarlos a sus necesidades.
AvisoLa solución de registro sólo funciona con los puertos definidos en la política SELinux del sistema servidor o cliente y abiertos en el cortafuegos. La política SELinux por defecto incluye los puertos 601, 514, 6514, 10514 y 20514. Para utilizar un puerto diferente, modifique la política SELinux en los sistemas cliente y servidor . La configuración del cortafuegos a través de los roles del sistema aún no está soportada.
Cree un archivo de inventario que enumere sus servidores y clientes:
Cree un nuevo archivo y ábralo en un editor de texto, por ejemplo:
# vi inventory.ini
Inserte el siguiente contenido en el archivo de inventario:
[servers] server ansible_host=host1.example.com [clients] client ansible_host=host2.example.com
Where: *
host1.example.com
is the logging server. *host2.example.com
is the logging client.
Ejecute el libro de jugadas en su inventario.
# ansible-playbook -i /path/to/file/inventory.ini /path/to/file/_logging-playbook.yml
Dónde:
-
inventory.ini
es el archivo de inventario. -
logging-playbook.yml
es el libro de jugadas que has creado.
-
Pasos de verificación
Tanto en el sistema cliente como en el servidor, compruebe la sintaxis del archivo
/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.
Compruebe que el sistema cliente envía mensajes al servidor:
En el sistema cliente, envíe un mensaje de prueba:
# logger test
En el sistema del servidor, vea el registro
/var/log/messages
, por ejemplo:# cat /var/log/messages Aug 5 13:48:31 host2.example.com root[6778]: test
Donde
host2.example.com
es el nombre del host del sistema cliente. Tenga en cuenta que el registro contiene el nombre del usuario que introdujo el comando del registrador, en este casoroot
.
Recursos adicionales
- Introducción a los roles de sistema de RHEL
-
Documentación instalada con el paquete
rhel-system-roles
en/usr/share/ansible/roles/rhel-system-roles.logging/README.html
- Artículo de la KB sobre losroles del sistema RHEL