Servidor de log para registros remoto do RouterOS/Mikrotik Huawei entre outros fabricantes
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.
Distribuição testadas:
Debian 11
Debian 10
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.
# 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/minharede/
# vim /etc/rsyslog.d/minharede.conf
$template RemoteHost,"/var/log/minharede/%HOSTNAME%.log :fromhost-ip, !isequal, "127.0.0.1" ?RemoteHost
Reiniciamos o serviço
# systemctl restart rsyslog
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/minharede
# vim /etc/logrotate.d/minharede
/var/log/minharede/*.log {
monthly
rotate 12
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/minharede --debug
reading config file /etc/logrotate.d/minharede
Reading state from file: /var/lib/logrotate/status
Allocating hash table for state file, size 64 entries
Handling 1 logs
rotating pattern: /var/log/minharede/*.log after 1 days (7 rotations)
empty log files are not rotated, old logs are removed
considering log /var/log/minharede/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 syslog no 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
Configurando syslog no Huawei
info-center channel 6 name logserver info-center source default channel 6 log level informational info-center loghost source LoopBack0 info-center loghost 250.250.250.2 channel 6 facility local2 port 65014
Agora pode verificar no diretório os arquivos de logs estarão sendo criado.
# ls -lh /var/log/minharede/
Ex para acompanhar o log em tempo real onde r1.log seria o nome do arquivo criado.
# tail -f /var/log/minharede/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!
Algum app que eu consiga fazer a leitura dos logs via web?
estalei o debian 9 11 mais da o mesmo erro vim /etc/rsyslog.conf nao encontra?
Boa tarde, estou tentando fazer os procedimentos acima, mas nao consigo fazer funcionar, sei que o tópico ja tem um tempo, mas peço por gentileza para verificarem os comandos e os funcionamentos dos mesmos, pra ver se algo possa nao mais estar funcionando.
OBS: sou iniciante no linux
Desculpe, o problema foi meu mikrotik, testei em outro e deu certo.
Boa tarde amigo
O meu esta dando um erro, será que pode me ajudar?
Quando executo logrotate /etc/logrotate.d/routerOS –debug
Aparece o seguinte erro.
not running postrotate script, since no logs were rotated
Boa tarde, estou com dificuldade nessa parte, ls: não foi possivel acessar arquivo ou diretorio enexistente
lh: não foi possivel acessar arquivo ou diretorio enexistente. Onde posso estar errando?
Se eu precisar de Logs de Cgnat eu consigo com esse esquema ai?
obrigado
Senhores,
Pra retornar o nome “Identity” do Router ao invés da resolução do IP, tem como?
IP reverso no em seu DNS
pode marcar o bsd no mikkrotik e seleciona user… o log é criado no rsyslog com o identity da rb
isso em action remote
Boa tarde, implantei o RSYSLOG através deste tutorial, porém com a finalidade de fazer LOG de acesso dos Clientes, agora não sei porque está gerando as mesmas informações do arquivo *.log do meu Router em 3 log’s na pasta /var/log…
os arquivos são:
user.log
messages
syslog
tudo que está gerando no arquivo da pasta RouterOS está armazenando também nesses 3 arquivos, já tentei parar e não deu certo, pois quando eu comento esses arquivos nas CONF, que vou fazer o logrotate da erro.
teria alguma solução para isso? ou é normal que ele fique gerando a mesma coisa nesses varios arquivos?
Não, deve ser algum detalhe, com base no tutorial vc pode entender como funciona e personalizar com a sua necessidades.
Eu configurei no /etc/default/rsyslog
RSYSLOGD_OPTIONS=”-c4 -x”
SYSLOGD=”-r”
pois não queria a resolução de nomes dos IPs, por questões internas.
Cada arquivo de log gerado no /var/log/routerOS ficou com 10.255.x.x.log, por exemplo.
Esse problema da duplicidade no syslog, user e messages é comum ocorrer. Então no /etc/rsyslog.conf basta filtrar:
*.*;auth,authpriv.none,10*255*.none -/var/log/syslog
user.*;10*255*.none -/var/log/user.log
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none,10*255*.none -/var/log/messages
Pode usar o mesmo padrão para endereços IPs resolvidos (hostname)
Log de acesso em provedor é ilegal.
Creio que não leu o artigo ou se leu não entendeu…
Esses logs são do acesso do cliente ao concentrador(es) do provedor. Não é log de onde o cliente se conecta na Internet, até porque, se fosse, o ISP teria que contratar os servidores do Google, da Akamai, da Amazon, ClodFlare e tantos outros só para gravar esses arquivos… 🙂
São logs obrigatórios, que devem ser armazenados por 2 anos, para o caso do ISP receber um mandado judicial, poder identificar quem estava usando o IP no dia X, na hora Y, com o IP Z. é a LEI.
👏🏻👏🏻👏🏻
Não. Já tem um serviço específico para armazenar os logs de conexão por um ano (que é o que Marco Civil da Internet exige) que é o mesmo de autenticação: RADIUS.
O aviso é para que não caiam na tentação de usar essa utilidade para grampear assinantes, logando seus acessos, o que é proibido. No caso de redes internas já é outro escopo legal.
O log centralizado é quase que uma obrigação técnica mesmo em redes pequenas.
Tem como eu enviar as conexões estabelecidas do Mikrotik? Elas ficam em IP/firewall/connections
Queria colocar tudo que passa lá para um arquivo externo.
Teria q estudar um meio acredito que de, teria que pesquisar. Se descobrir aviso. Se descobrir primeiro avise aqui tb rsrs
Procure por NetFlow. É bem mais útil e não é ilegal em nenhuma hipótese:
https://blog.remontti.com.br/3368
ola boa noite, segui seu roteiro porem no syslog só esta gravando um arquivo de todos os hosts e grava com o ip do gateway ao inves do ip de origem, pode me ajudar ?
Para aparecer o nome do host vc precisa ter o reverso do ip configurado no seus DNS.
elabore…. tenho esta duvida tbem….como queremos comunicação na rede interna…alguns equipamentos MKT não recebem o ip de fato …e estão retornando o ip do gateway… por exemplo:
o gateway é 192.168.0.1 …..claro q só exemplifiquei, so que na verdade o temos a seguinte condição
mkt 1 = 192.168.0.1 gate
mkt 2 = 192.168.0.15 Bridge
mkt 3 = 192.168.0.16 Bridge
-rw——- 1 root root 27K May 17 11:24 192.168.0.15.log
-rw——- 1 root root 1.4M May 17 11:24 192.168.0.1.log
-rw——- 1 root root 27K May 17 11:24 192.168.0.1.log
Sendo assim o mkt3 192.168.0.16 não esta sendo criado um novo arquivo pq esta se unindo ao 192.168.0.1 pois esta pegando o ip do gate…
se puder ajudar mais uma vez rssss
Grato!
Melhore a questão do roteamento.