13.3. Configuração de registro remoto sobre TCP

A aplicação Rsyslog permite que você execute um servidor de registro e configure sistemas individuais para enviar seus arquivos de registro para o servidor de registro. Para usar o registro remoto através de TCP, configure tanto o servidor quanto o cliente. O servidor coleta e analisa os logs enviados por um ou mais sistemas clientes.

Com o aplicativo Rsyslog, você pode manter um sistema de registro centralizado onde as mensagens de registro são encaminhadas para um servidor através da rede. Para evitar a perda de mensagens quando o servidor não está disponível, você pode configurar uma fila de ação para a ação de encaminhamento. Desta forma, as mensagens que não puderam ser enviadas são armazenadas localmente até que o servidor esteja novamente disponível. Note que tais filas não podem ser configuradas para conexões usando o protocolo UDP.

O plug-in omfwd permite o encaminhamento sobre UDP ou TCP. O protocolo padrão é o UDP. Como o plug-in está embutido, não precisa ser carregado.

13.3.1. Configuração de um servidor para o logon remoto sobre TCP

Siga este procedimento para configurar um servidor para coleta e análise dos logs enviados por um ou mais sistemas clientes.

Por padrão, rsyslog usa TCP na porta 514.

Pré-requisitos

  • rsyslog está instalado no sistema do servidor
  • Você está logado como root no servidor

Procedimento

  1. Opcional: Para utilizar uma porta diferente para o tráfego rsyslog, adicione o tipo syslogd_port_t SELinux à porta. Por exemplo, habilite a porta 30514:

    # semanage port -a -t syslogd_port_t -p tcp 30514
  2. Opcional: Para utilizar uma porta diferente para o tráfego rsyslog, configure firewalld para permitir o tráfego de entrada rsyslog nessa porta. Por exemplo, permitir o tráfego TCP na porta 30514 na zona zone:

    # firewall-cmd --zone=zone --permanent --add-port=30514/tcp
    success
  3. Criar um novo arquivo no diretório /etc/rsyslog.d/ chamado, por exemplo, remotelog.conf, e inserir o seguinte conteúdo:

    # Define templates before the rules that use them
    ### Per-Host Templates for Remote Systems ###
    template(name="TmplAuthpriv" type="list") {
        constant(value="/var/log/remote/auth/")
        property(name="hostname")
        constant(value="/")
        property(name="programname" SecurePath="replace")
        constant(value=".log")
        }
    
    template(name="TmplMsg" type="list") {
        constant(value="/var/log/remote/msg/")
        property(name="hostname")
        constant(value="/")
        property(name="programname" SecurePath="replace")
        constant(value=".log")
        }
    
    # Provides TCP syslog reception
    module(load="imtcp")
    # Adding this ruleset to process remote messages
    ruleset(name="remote1"){
         authpriv.*   action(type="omfile" DynaFile="TmplAuthpriv")
          *.info;mail.none;authpriv.none;cron.none
    action(type="omfile" DynaFile="TmplMsg")
    }
    
    input(type="imtcp" port="30514" ruleset="remote1")
  4. Salvar as mudanças no arquivo /etc/rsyslog.d/remotelog.conf.
  5. Certifique-se de que o serviço rsyslog esteja rodando e ativado no servidor de registro:

    # systemctl status rsyslog
  6. Reinicie o serviço rsyslog.

    # systemctl restart rsyslog
  7. Opcional: Se rsyslog não estiver habilitado, certifique-se de que o serviço rsyslog seja iniciado automaticamente após a reinicialização:

    # systemctl enable rsyslog

Seu servidor de log está agora configurado para receber e armazenar arquivos de log de outros sistemas em seu ambiente.

Verificação

  • Teste a sintaxe do arquivo /etc/rsyslog.conf:

    # rsyslogd -N 1
    rsyslogd: version 8.1911.0-2.el8, config validation run (level 1), master config /etc/rsyslog.conf
    rsyslogd: End of config validation run. Bye.

Recursos adicionais