Como monitorar vários arquivos de log com o MultiTail

O aplicativo MultiTail permite ver vários arquivos de log em seu sistema, com a criação de divisórias (uma para cada log) dentro da janela de um único console, com o uso da biblioteca ncurses.
Pode-se dizer que seja uma versão melhorada do utilitário Tail.
Desenvolvido por Folkert Vanheusden, o aplicativo é multiplataforma, com suporte a UNIX, GNU/Linux, Mac OS X e Windows (através do Cygwin).
Multitail logo and woman
Entre seus recursos, citam-se:

  • Monitoramento de wildcards — caso um arquivo, que preencha requisitos preestabelecidos, tenha data ou hora de modificação mais atual, o programa prioriza seu monitoramento.
  • Junção de duas ou mais fontes de entrada de dados.
  • Por meio de expressões regulares, exibe resultados em cores na tela — o que ajuda a distinguir informações importantes.
  • Filtro de linhas.
  • Menus interativos para editar expressões regulares e para remover ou adicionar janelas.
  • Permite usar a saída produzida por outros aplicativos ou shell scripts.
  • Imita as funcionalidades de ferramentas como o watch, quando analisa a saída de algum software externo.

Nos tópicos que seguem, pretendo abordar vários aspectos do MultiTail, o que inclui técnicas de instalação, o uso básico e alguns exemplos comuns em que ele pode ser aplicado para monitorar o seu sistema.

Sinta-se à vontade para ir direto ao ponto que te interessa ou guardar o texto no menu favoritos, para usar como referência em outro momento.

Ao iniciar o Multitail (sem qualquer parâmetro), o aplicativo limpa a tela e exibe algumas teclas de atalho que você pode usar, ao lado de uma curta explicação sobre o que cada uma delas faz.
Tecle ‘F1’ ou ‘Ctrl + h’ para obter mais ajuda, dentro do aplicativo. Para finalizá-lo, tecle ‘q’, ‘x’ ou ‘Ctrl +C’.

Como instalar o MultiTail

Neste artigo, abordamos o uso do MultiTail em um sistema GNU/Linux Ubuntu 14.04 LTS. Como em qualquer outro sistema baseado no Debian, o aplicativo pode ser instalado via apt-get:

sudo apt-get install multitail

Se você usa outro sistema operacional, use o utilitário de instalação que se aplica a sua situação.

Como baixar e compilar a última versão do MultiTail

Há várias razões para querer compilar o código fonte de um aplicativo — ter em mãos uma versão mais nova e mais eficiente, são duas delas.
Se você tiver interesse em saber mais sobre como compilar seus programas no Linux, leia o artigo Como compilar código fonte.


No Ubuntu 14.04, o MultiTail está disponível na versão 6.0:

multitail -V
 --*- multitail 6.0 (C) 2003-2013 by folkert@vanheusden.com -*--

Thank you for using MultiTail.
...

Se você está satisfeito com a versão que tem no seu sistema, pule esta seção.
Se preferir tentar baixar e compilar o código fonte, pode se surpreender com a facilidade do processo, descrito a seguir.
Tenha o cuidado de remover a versão antiga, caso a tenha instalado, antes de trazer a nova — isto evita confusão.
A partir do site oficial é possível baixar uma versão mais nova (link ao final do texto):

wget http://www.vanheusden.com/multitail/multitail-6.4.1.tgz

Depois de baixar, descompacte o código, entre no diretório de instalação e compile:

tar xvvzf multitail-6.4.1.tgz
cd multitail-6.4.1/
sudo apt-get install libncursesw5-dev
sudo make install

Feito isto, o novo aplicativo já estará instalado e pronto para ser executado:

multitail

Como usar o MultiTail

multitail-apache-logs-access-error-Screenshot
O aplicativo tem um grande número de opções — todas documentadas no manual UNIX/Linux ou no sistema de ajuda do aplicativo — tecle ‘Ctrl + h’ para chegar lá, conforme destacado na imagem abaixo:
Captura de tela da ajuda do multitail
Você pode percorrer a tela de ajuda com as teclas de direcionamento e não precisa estar com o inglês “muito em dia” para entender a maior parte do texto.
Ao iniciar o MultiTail, você terá resultados mais imediatos, se já oferecer os arquivos de log que deseja monitorar.
Na figura acima, usei os arquivos de log do Apache: access.log e error.log:

multitail /var/log/apache2/access.log -I /var/log/apache2/error.log

Neste caso, se você tiver o Apache instalado no seu sistema, ao acessar o endereço http://localhost, perceberá alteração na tela de monitoramento.
Veja algumas opções comuns de uso do MultiTail:

  • --closeidle N — permite especificar um período de inatividade de N segundos, após o qual o aplicativo fecha a janela referente ao arquivo de log ocioso.
    É útil para quando se está monitorando um grande número de arquivos, mas só quer que sejam exibidos resultados daqueles que estão verdadeiramente ativos.
    Seja cuidadoso com o uso desta opção — a janela não vai se reabrir, caso o arquivo seja atualizado depois de ter sido fechada.
  • -i file — permite declarar os nomes dos arquivos de log que se deseja acompanhar.
    Normalmente, você só precisa listar os arquivos na linha de comando, um após o outro.
    Preceder o nome de um arquivo com ‘-i’ permite monitorar aqueles cujos nomes começam com um traço (-) — caso contrário, o nome do arquivo será entendido como uma opção de linha de comando do MultiTail, o que pode acabar retornando um erro.
  • --mark-interval N — Permite que se especifique um intervalo de tempo, em N segundos, de inatividade que faz com que uma linha marcadora seja exibida na janela de resultados do MultiTail.
    Por exemplo, caso não haja atividade no log do servidor web Apache, em N segundos, o programa exibe uma linha ---auth.log DATE TIME---, em que DATE TIME é a data e hora.
    Esta opção é especialmente útil para identificar os arquivos de log que não estão tendo muita atividade.
  • --no-repeat — evita a repetição ou redundância de mensagens ao informar apenas quantas vezes a última mensagem foi repetida: “Last message repeated N times”.

Veja o exemplo abaixo:

multitail --mark-interval 10 --no-repeat /var/log/kern.log /var/log/mysql.log

Multitail monitor kernel and mysql
Como você já pôde perceber, o MultiTail divide a tela em partes iguais para cada arquivo de log. Você pode ampliar a janela do console se quiser… mas o fato é que as 2 últimas linhas já costumam ser suficientes para acompanhar e detectar se algo anormal está acontecendo.

Use o MultiTail para monitorar as saídas dos comandos

Há casos em que o conteúdo do que está sendo escrito em um arquivo de log não é tão importante — o administrador deseja apenas saber se ele está sendo atualizado, como consequência de algum aplicativo estar funcionando no sistema.
Um dos exemplos disto é log de acessos do Apache — cujo uso pode ser bastante intenso em alguns servidores.
O servidor web pode gerar milhares de mensagens de log em questão de minutos — cada qual contém detalhes que raramente são muito úteis.
Em casos como este, o que os administradores de sistemas realmente querem é verificar se o arquivo de log está sendo alimentado — ou, em outras palavras, que o servidor está no ar e recebendo acessos.
Manualmente, você pode acompanhar o crescimento do arquivo de log de acessos do servidor web com o comando ‘ls -l’:

ls -l /var/log/apache2/access.log-rw-r----- 1 root adm 21444 Ago  1 20:29 /var/log/apache2/access.log

Você acompanha os acessos através da repetição deste comando. Chato, não?
Para usar o MultiTail para acompanhar apenas as saídas de um programa, é necessário incluir algumas opções na linha de comando. Veja:

multitail -Rc 2 -l "ls -l /var/log/apache2/access.log"

Multi tail and apache


Este é um caso em que o MultiTail mimetiza outro programa: o watch.
O aplicativo watch está presente, por padrão, na maioria das distribuições Linux.
Ele também pode ser usado para resolver o problema acima, com esta linha de comando:

watch "ls -l /var/log/apache2/access.log"

Faça a experiência.

Exemplos de uso do MultiTail

Foi dito, antes, que o MultiTail “divide a janela do console em partes iguais”. Sendo um comportamento padrão do aplicativo, há opções para dividir a tela de outras maneiras mais cômodas para você acompanhar o andamento do sistema.
O exemplo abaixo mostra a divisão da tela em 3 sessões, em que o primeiro arquivo de log monitorado ocupa um espaço maior. Veja:

multitail -s 2 /var/log/apache2/error.log /var/log/apache2/access.log /var/log/gpu-manager.log

multitail -s 2 /var/log/apache2/error.log /var/log/apache2/access.log /var/log/gpu-manager.log
No segundo exemplo, mostro como integrar os logs de 2 aplicativos em apenas uma janela — cada log, contudo, terá sua própria cor.
Os logs de acessos e erros de um servidor podem ser um pouco “maçantes” e conter muita informação redundante — motivo pelo qual um administrador pode optar por deixá-los juntos em uma única janela.
A diferença de cores, permite acompanhar com clareza o andamento do log de cada um:

multitail -ci green /var/log/apache2/access.log -ci red -I /var/log/apache2/error.log

multitail -ci green /var/log/apache2/access.log -ci red -I /var/log/apache2/error.log

Referências

Site oficial do MultiTail: http://www.vanheusden.com/multitail/
Página do desenvolvedor no GitHub: https://github.com/flok99/multitail
Artigo no Wikipedia: https://en.wikipedia.org/wiki/MultiTail
Documentação do MultiTail: http://linux.die.net/man/1/multitail

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como “Rick and Morty” e “BoJack Horseman”.
Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

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