Mikrotik - Syslog remoto

Tagged:  •    •    •    •    •  

Um recurso interessante no Mikrotik é a possibilidade de centralizarmos os logs em um local apenas, ou seja, logs remotos (de todos os AP's e roteadores) em um servidor qualquer. Para tanto basta habilitar o syslog remoto no ROS (Mikrotik) e configurar uma máquina com Linux (ou BSD like) para aceitar logs remotos com o syslog local do servidor central, ou seja, onde queremos centralizar os logs dos equipamentos da rede.

O primeiro passo é configurar o AP ou roteador para enviar logs para um syslog remoto:

/system logging action set remote remote=192.0.2.1:514

192.0.2.1 é o IP do servidor onde centralizaremos os logs. 514 é a porta UDP onde o syslog aceitará conexões remotas.

Em seguida configuramos os tipos de logs que enviaremos ao servidor:

/system logging
add action=remote topics=info
add action=remote topics=error
add action=remote topics=warning
add action=remote topics=critical

No caso acima, todo log gerado localmente (pela configuração default) enviará um cópia ao syslog remoto.

Um exemplo dos log centralizados:

Feb  9 12:29:46 192.0.2.4 system,info,account user admin \
logged in from 192.0.2.1 via ssh
Feb  9 12:36:47 192.0.2.4 system,info,account user admin \
logged out from 192.0.2.1 via ssh
Feb  9 13:01:41 192.0.2.4 wireless,info 00:12:0E:1X:2Y:3Z@wlan1: connected
Feb  9 13:02:04 192.0.2.4 wireless,info 00:02:72:1X:2Y:3Z@wlan2: connected
Feb  9 13:02:05 192.0.2.2 wireless,info 00:12:0E:1X:2Y:3Z@wlan4: connected

No caso do Slackware (e provavelmente outras distribuições) estas entradas serão inclusas ao arquivo /var/log/messages.

Em seguida configuramos o servidor para aceitar conexões remotas ao syslog local (no caso do Slackware basta executar o seguinte comando):

# sed -ri 's/(syslogd)$/\1 -r/g' /etc/rc.d/rc.syslog

O segredo é passar o parâmetro "-r" ao syslog, em distribuições redhat-like não deve ser muito diferente disto.

Em seguida é só reiniciar o syslog. Ou seja,

# /etc/rc.d/rc.syslog restart
Starting sysklogd daemons:  /usr/sbin/syslogd /usr/sbin/klogd -c 3 -x

Para verificar se tudo foi configurado corretamente:

# netstat -nlp | grep 514
udp        0      0 0.0.0.0:514             0.0.0.0:*            8224/syslogd

Um detalhe importante ainda é necessário, ou seja, configure o firewall onde é executado o syslog central para aceitar conexões UDP na porta 514 provenientes dos AP's e roteadores, um exemplo genérico seria o seguinte:

# iptables -A INPUT -p udp --dport 514 -j ACCEPT

Ou seja, (após todas as configurações descritas acima) temos um servidor centralizando todos os logs da rede ROS (e qualquer outro equipamento que suporte syslog remoto), facilitando através do recurso descrito o monitoramento e depuração de eventuais problemas na rede.