Red Hat Training

A Red Hat training course is available for RHEL 8

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.

    Nota

    No 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.

    Nota

    No es necesario tener instalado rsyslog, porque el rol de sistema instala rsyslog 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

  1. Cree un libro de jugadas que defina el rol requerido:

    1. Cree un nuevo archivo YAML y ábralo en un editor de texto, por ejemplo:

      # vi logging-playbook.yml
    2. 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.

      Nota

      Puede modificar los parámetros del libro de jugadas para adaptarlos a sus necesidades.

      Aviso

      La 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.

  2. Cree un archivo de inventario que enumere sus servidores y clientes:

    1. Cree un nuevo archivo y ábralo en un editor de texto, por ejemplo:

      # vi inventory.ini
    2. 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.

  3. 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

  1. 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.
  2. Compruebe que el sistema cliente envía mensajes al servidor:

    1. En el sistema cliente, envíe un mensaje de prueba:

      # logger test
    2. 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 caso root.

Recursos adicionales