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!

Rudimar Remontti

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

Você pode gostar...

28 Resultados

  1. Iapueny Afonso Querino Alves disse:

    Algum app que eu consiga fazer a leitura dos logs via web?

  2. fabio disse:

    estalei o debian 9 11 mais da o mesmo erro vim /etc/rsyslog.conf nao encontra?

  3. Felipe disse:

    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

  4. Nane disse:

    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

  5. Fernando Faria Montresol disse:

    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?

  6. Maxwell disse:

    Se eu precisar de Logs de Cgnat eu consigo com esse esquema ai?
    obrigado

  7. Davi disse:

    Senhores,

    Pra retornar o nome “Identity” do Router ao invés da resolução do IP, tem como?

  8. PAULO REIS disse:

    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.

    • Sergio Souza disse:

      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)

    • Marco disse:

      Log de acesso em provedor é ilegal.

      • Sergio Souza disse:

        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.

        • Marco disse:

          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.

  9. Cleirtom disse:

    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.

  10. Robson G. Barros disse:

    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.

      • Fernando disse:

        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!

  1. 22 de janeiro de 2020

    […] que ele vai auto se configurar em sua LAN, passando por esses requisitos ele irai gerar um LOG (que você também pode estar salvando em um servidor de log remoto) e finalizando fará um fetch com os dados do binding caso ele consiga ou enviará null para a URL […]

  2. 4 de abril de 2020
  3. 22 de novembro de 2023

    […] automatically configure itself on your LAN, passing these requirements it will generate a LOG ( which you can also save on a remote log server ) and finally it will fetch the binding data if it succeeds or send null to the URL and so the […]

Deixe um comentário

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