Red Hat Training

A Red Hat training course is available for RHEL 8

14.4. Aplicação de uma solução de registro remoto utilizando o papel do sistema de registro

Siga estes passos para preparar e aplicar um livro de exercícios do Red Hat Ansible Engine para configurar uma solução de registro remoto. Neste playbook, um ou mais clientes pegam logs de systemd-journal e os encaminham para um servidor remoto. O servidor recebe entradas remotas de remote_rsyslog e remote_files e envia os logs para arquivos locais em diretórios nomeados por nomes de hosts remotos.

Pré-requisitos

  • Você tem o Red Hat Ansible Engine instalado no sistema a partir do qual você deseja executar o playbook.

    Nota

    Você não precisa ter o Red Hat Ansible Engine instalado nos sistemas nos quais você deseja implantar a solução de registro.

  • Você tem o pacote rhel-system-roles sobre o sistema a partir do qual você deseja executar o playbook.

    Nota

    Você não precisa ter rsyslog instalado, porque a função do sistema instala rsyslog quando implantado.

  • Você tem pelo menos dois sistemas:

    • Pelo menos um será o servidor de registro.
    • Pelo menos um será o cliente madeireiro.

Procedimento

  1. Criar um playbook que defina o papel exigido:

    1. Criar um novo arquivo YAML e abri-lo em um editor de texto, por exemplo:

      # vi logging-playbook.yml
    2. Insira o seguinte conteúdo no arquivo:

      ---
      - 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]

      Onde host1.example.com é o servidor de registro.

      Nota

      Você pode modificar os parâmetros no livro de jogo para atender às suas necessidades.

      Atenção

      A solução de registro funciona somente com as portas definidas na política SELinux do sistema servidor ou cliente e abertas no firewall. A política padrão do SELinux inclui as portas 601, 514, 6514, 10514, e 20514. Para utilizar uma porta diferente, modifique a política SELinux no sistema cliente e no sistema servidor. A configuração do firewall através das funções do sistema ainda não é suportada.

  2. Crie um arquivo de inventário que lista seus servidores e clientes:

    1. Criar um novo arquivo e abri-lo em um editor de texto, por exemplo:

      # vi inventory.ini
    2. Insira o seguinte conteúdo no arquivo do inventário:

      [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. Execute o playbook em seu inventário.

    # ansible-playbook -i /path/to/file/inventory.ini /path/to/file/_logging-playbook.yml

    Onde:

    • inventory.ini é o arquivo do inventário.
    • logging-playbook.yml é o livro de jogo que você criou.

Etapas de verificação

  1. Tanto no sistema cliente quanto no servidor, teste a sintaxe do arquivo /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. Verificar se o sistema cliente envia mensagens para o servidor:

    1. No sistema do cliente, envie uma mensagem de teste:

      # logger test
    2. No sistema do servidor, veja o log /var/log/messages, por exemplo:

      # cat /var/log/messages
      Aug  5 13:48:31 host2.example.com root[6778]: test

      Onde host2.example.com é o nome do host do sistema cliente. Note que o log contém o nome do usuário que digitou o comando logger, neste caso root.

Recursos adicionais