Observação.: Toda a instalação e configuração foi efetuada com o usuário root.
1. Instale o pacote do rsyslog:
# yum install rsyslog
Obs.: você pode usar o parâmetro "-y" para forçar a instalação sem perguntar novamente:
# yum install -y rsyslog
2. Vamos editar o arquivo do rsyslog que encontra-se em:
/etc/rsyslog.conf
Abra o arquivo com seu editor de texto favorito. Eu irei usar o editor vim (caso queira usar o vim e não tem o pacote instalado, insira o comando:
# yum install -y vim
Edite o arquivo:
# vim /etc/rsyslog.conf +15
Dica para o editor vim: o sinal de "+15" após o comando é para ir até a linha 15 do arquivo, linha que vamos descomentar.
3. Descomente as linhas 15 e 16 do arquivo, habilitando o servidor syslog a escutar na porta 514.
Exemplo:
Arquivo original:
# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514
# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514
Arquivo editado:
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
4. Reinicie o serviço do rsyslog:
# systemctl restart rsyslog.service
5. Verifique se o servidor syslog está escutando na porta 514 conforme configuramos:
# netstat -nltp | grep 514
tcp 0 0 0.0.0.0:514 0.0.0.0:* OUÇA 616/rsyslogd
tcp6 0 0 :::514 :::* OUÇA 616/rsyslogd
OK! Seu servidor syslog já está configurado. Vamos configurar o cliente para envio de logs.
1. Conecte no servidor cliente e instale o pacote do
syslog novamente, após, edite o arquivo do rsyslog que encontra-se em
/etc/rsyslog.conf:
# yum install -y rsyslog
Edite o arquivo:
# vim /etc/rsyslog.conf
2. No final do arquivo adicione as facility e level que você deseja enviar para o servidor syslog em seguida adicione o @ipadress ou @hostname do servidor de logs.
Dica para o editor VIM: Pressione a tecla Shift + G para ir até o final do arquivo.
Exemplo:
*.info;mail.none;authpriv.none;cron.none @192.168.0.100
Na linha acima estou adicionado todas as facilities da distribuição com o level info (*.info), ou seja, ele vai capturar o nível de informação e o que estiver acima de informação (info, notice,warning, error, critical,alert, emerfency), conforme a tabela abaixo.
Observação: Se eu escrevesse *=info significaria que seria todas as facilities somente do level de INFORMAÇÃO.
O ";" no exemplo acima está somente separando as exceções que eu criei.
mail.nome - Nesse caso, estou dizendo que a facility mail não monitora nenhum level, ou seja, não envie nenhum log dessa facility.
Lista dos níveis/gravidades:
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
7 Debug: debug-level messages
Observação: Adicione as facilities e level conforme a sua necessidade.
3. Salve e feche o arquivo.
Dica do editor VIM: para salvar e sair do arquivo, aperte a tecla ESC digite
:wq!
4. Reinice o serviço do rsyslog:
# systemctl restart rsyslog.service
Obs.: em ambientes de produção são habilitados firewall de hardware, para impedir de abrir o TCP e UDP 514.
Se você tiver o
iptables habilitado, execute o seguinte comando no servidor, a fim de aceitar tráfego de entrada na porta UDP / TCP 514.
# firewall-cmd --permanent --zone=public --add-port=514/tcp
# firewall-cmd --permanent --zone=public --add-port=514/udp
# firewall-cmd --reload
5. Para checar se a porta foi aberta, utilize o telnet:
# telnet 192.168.0.100 514
(IP do seu servidor syslog + a porta do rsyslog)
Resultado:
Trying 192.168.0.100...
Connected to 192.168.0.100.
Escape character is '^]'.
Conecte no seu servidor syslog e verifique se o mesmo já está capturando os LOGS desse cliente adicionado.
# tail -f /var/log/messages
Jul 10 18:01:01 servidor-abobora systemd: Started Session 34414 of user root.
Jul 10 18:01: servidor-abobora CROND[15612]: (root) CMD (run-parts /etc/cron.hourly)
Jul 10 18:01:01 servidor-abobora run-parts(/etc/cron.hourly)[1561 starting 0anacron
Jul 10 18:01:01 servidor-abobora run-parts(/etc/cron.hourly)[1562 finished 0anacron
Jul 10 18:01:01 servidor-abobora run-parts(/etc/cron.hourly)[1561 starting 0yum-hourly.cron
Jul 10 18:01:01 servidor-abobora run-parts(/etc/cron.hourly)[1562 finished 0yum-hourly.cron
Jul 10 18:01:02 prod1-sgi sudo: zabbix : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/opt/jboss/bin/jboss-cli.sh -c /core-service=platform-mbean/type=memory:read-attribute(name=heap-memory-usage)
Comentários