Servidor de log para registros remoto do RouterOS/Mikrotik

Neste tutorial vamos ver como configurar um servidor de logs para coletar logs de roteadores Mikrotik/RouterOS, porém o mesmo pode ser usado para qualquer roteador/servidor.

Antes de mais nada vamos Rsyslog é o sistema de log padrão no Debian depois da versao 8 Lenny, substituto para o antigo syslog. Rsyslog conta com suporte para login em bancos de dados (MySQL e PostgreSQL). A configuração usa o dbconfig-common para facilitar a configuração via debconf.

Requisitos: Instalçao do Debian 9

Não precisa ser instalado nenhum pacote, apenas ter nosso Debian instalado. Vamos lá!

# vim /etc/rsyslog.conf

Neste arquivo descomente as linhas module(load=”imudp”) & input(type=”imudp” port=”514″). Se preferir você pode alterar a porta padrão 514, no exemplo vou alterar para 65014.

1
2
3
4
	# provides UDP syslog reception
	module(load="imudp")
	#input(type="imudp" port="514")
	input(type="imudp" port="65014")

Criamos o template que va ireceber os logs remoto e ignoramos os logs de localhost. Para que fique organizados vamos gerar um arquivo de log para cado Host/IP dentro do diretório /var/log/routerOS/

# vim /etc/rsyslog.d/routerOS.conf
1
2
	$template RemoteHost,"/var/log/routerOS/%HOSTNAME%.log
	:fromhost-ip, !isequal, "127.0.0.1"    ?RemoteHost

Reiniciamos o serviço

# /etc/init.d/rsyslog restart

Verifique se a porta esta aberta

# netstat -putan | grep 65014

Vamos configurar o logrotate para fazer a compressão a cada 7 dias. Você tabém não precisa instalar o pacote pois ele já padrão do sistema.
O logrotate é projetado para simplificar a administração de arquivos de log em um sistema que gera um monte de arquivos de log. O logrotate possibilita a compressão rotativa automática. O logrotate pode ser configurado para manipular um arquivo de log diariamente, semanalmente, mensalmente ou quando o arquivo de log atingir um certo tamanho.

Criaremos o arquivo /etc/logrotate.d/routerOS

# vim /etc/logrotate.d/routerOS
1
2
3
4
5
6
7
8
9
10
/var/log/routerOS/*.log {
    daily
    rotate 7
    missingok
    notifempty
    sharedscripts
    postrotate
    /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

Para testar execute o comando:

# logrotate /etc/logrotate.d/routerOS --debug

reading config file /etc/logrotate.d/routerOS
Reading state from file: /var/lib/logrotate/status
Allocating hash table for state file, size 64 entries

Handling 1 logs

rotating pattern: /var/log/routerOS/*.log after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/routerOS/r1.log
Creating new state
Now: 2018-09-06 14:49
Last rotated at 2018-09-06 14:00
log does not need rotating (log has been already rotated)
not running postrotate script, since no logs were rotated

Configurando o RouterOS/Mikoritk

Configure seu agora em seus roteadores

/system logging action
add name=RouterLog remote=250.250.250.2 remote-port=65014 target=remote
 
/system logging
add action=RouterLog topics=info
add action=RouterLog topics=warning
add action=RouterLog topics=critical
add action=RouterLog topics=error

Agora pode verificar no diretório os arquivos de logs estarão sendo criado.

# ls -lh /var/log/routerOS/

Ex para acompanhar o log em tempo real onde r1.log seria o nome do arquivo criado.

# tail -f /var/log/routerOS/r1.log

Recomendado ter um firewall nesta porta para deixar apenas IPs de seus roteadores ter acesso.
Neste link tenho um modelo simples e funcional de Firewall com iptables

Gostou? Deixe seu comentário ficarei feliz em saber que lhe ajudei, e se tiver qualquer pergunta deixe-a também, se preferir acesse o menu Consultoria lá você encontra meios de falar comigo!

Abraço!

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *