Pesquisa de site

Swatchdog - Observador simples de arquivos de log em tempo real no Linux


Swatchdog (o “Simple WATCH DOG”) é um script Perl simples para monitorar arquivos de log ativos em sistemas do tipo Unix, como Linux. Ele monitora seus logs com base em expressões regulares que você pode definir em um arquivo de configuração. Você pode executá-lo na linha de comando ou em segundo plano, desanexado de qualquer terminal usando a opção de modo daemon.

Observe que o programa foi originalmente chamado de swatch (o “Simple Watcher”), mas um pedido da antiga empresa suíça de relógios para uma mudança de nome fez com que o desenvolvedor mudasse seu nome para < forte>cão de guarda.

Leia também: 4 boas ferramentas de gerenciamento e monitoramento de log de código aberto para Linux

É importante ressaltar que swatchdog cresceu a partir de um script para observar logs produzidos pelo recurso syslog do Unix e pode monitorar praticamente qualquer tipo de log.

Como instalar o Swatch no Linux

O pacote swatchdog está disponível para instalação nos repositórios oficiais das principais distribuições do Linux como um pacote “swatch” por meio de um gerenciador de pacotes, conforme mostrado.


sudo apt install swatch	[On Ubuntu/Debian]
sudo yum install epel-release && sudo yum install swatch	[On RHEL/CentOS]
sudo dnf install swatch	[On Fedora 22+]

Para instalar a versão mais recente do swatchdog, você precisa compilá-lo a partir do código-fonte usando os seguintes comandos em qualquer distribuição Linux.


git clone https://github.com/ToddAtkins/swatchdog.git
cd swatchdog/
perl Makefile.PL
make
sudo make install
sudo make realclean

Depois de instalar o swatch, você precisa criar seu arquivo de configuração (o local padrão é /home/$USER/.swatchdogrc ou .swatchrc ), para determinar quais tipos de padrões de expressão procurar e que tipo(s) de ação(ões) devem ser tomadas quando um padrão é correspondido.


touch /home/tecmint/.swatchdogrc
OR
touch /home/tecmint/.swatchrc

Adicione sua expressão regular neste arquivo e cada linha deverá conter uma palavra-chave e um valor (às vezes opcional), separados por um espaço ou um sinal de igual (=). Você precisa especificar um padrão e uma(s) ação(ões) a ser(ão) executada(s) quando um padrão for correspondido.

Usaremos um arquivo de configuração simples, você pode encontrar mais opções na página de manual do swatchdog, por exemplo.

watchfor  /sudo/
	echo red
	[email , subject="Sudo Command"

Aqui, nossa expressão regular é uma string literal – “sudo”, significa que sempre que a string sudo aparecesse no arquivo de log, seria impressa no terminal em texto vermelho e mail especifica a ação a ser tomada, que é ecoar o padrão correspondente no terminal e enviar um e-mail para o endereço especificado, de forma receptiva.

Depois de configurá-lo, o swatchdog lê o arquivo de log /var/log/syslog por padrão, se este arquivo não estiver presente, ele lê /var/log/messages.


swatch     [On RHEL/CentOS & Fedora]
swatchdog  [On Ubuntu/Debian]

Você pode especificar um arquivo de configuração diferente usando o sinalizador -c conforme mostrado no exemplo a seguir.

Primeiro crie um diretório de configuração de amostra e um arquivo.

mkdir swatch
touch swatch/secure.conf

Em seguida, adicione a seguinte configuração ao arquivo para monitorar tentativas de login malsucedidas, tentativas de login SSH malsucedidas e logins SSH bem-sucedidos do arquivo de log /var/log/secure.

watchfor /FAILED/
echo red
[email , subject="Failed Login Attempt"

watchfor /ROOT LOGIN/
echo red
[email , subject="Successful Root Login"

watchfor /ssh.*: Failed password/
echo red
[email , subject="Failed SSH Login Attempt"

watchfor /ssh.*: session opened for user root/ 
echo red
[email , subject="Successful SSH Root Login"

Agora execute o Swatch especificando o arquivo de configuração usando o -c e o arquivo de log usando o sinalizador -t conforme mostrado.

swatchdog -c ~/swatch/secure.conf -t /var/log/secure

Para executá-lo em segundo plano, use o sinalizador --daemon; neste modo, ele é desconectado de qualquer terminal.

swatchdog ~/swatch/secure.conf -t /var/log/secure --daemon  

Agora, para testar a configuração da amostra, tente fazer login no servidor a partir de um terminal diferente, você verá a seguinte saída impressa no terminal onde o Swatchdog está sendo executado.

*** swatch version 3.2.3 (pid:16531) started at Thu Jul 12 12:45:10 BST 2018

Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)

Você também pode executar vários processos de amostra para monitorar vários arquivos de log.

swatchdog -c ~/site1_watch_config -t /var/log/nginx/site1/access_log --daemon  
swatchdog -c ~/messages_watch_config -t /var/log/messages --daemon
swatchdog -c ~/auth_watch_config -t /var/log/auth.log --daemon

Para obter mais informações, verifique a página de manual do swatchdog.

man swatchdog

Repositório Swatchdog SourceForge: https://sourceforge.net/projects/swatch/

A seguir estão alguns guias adicionais de monitoramento de log que você achará úteis:

  1. 4 maneiras de assistir ou monitorar arquivos de log em tempo real
  2. Como criar um servidor de log centralizado com Rsyslog
  3. Monitore os logs do servidor em tempo real com a ferramenta “Log.io”
  4. lnav – Observe e analise logs do Apache em um terminal Linux
  5. ngxtop – Monitore arquivos de log Nginx em tempo real no Linux

Swatchdog é uma ferramenta simples de monitoramento de arquivos de log ativos para sistemas do tipo Unix, como Linux. Experimente e compartilhe suas idéias ou faça perguntas na seção de comentários.