Visite também: Br-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]
Voltar   Under-Linux.org Fóruns > UnderLinux Wiki
Fóruns Wiki Classificados Reviews Jogos Grupos Sociais RSS Feeds FAQ Termos de Uso Contato Sobre
Registrar FotosBlogs Calendário Marcar Fóruns Como Lidos


Ferramentas pessoais
Publicidade

From UnderLinux Wiki

Tabela de conteúdo

Introdução

Um dos grandes problemas da administração de redes é que a informação fica localizada em registros (logs) do sistema, os quais podem crescer bem rápido, e nem sempre se tem tempo para monitorá-los. O Swatch vem preencher esta lacuna com um analisador de registros configuráveis, que permite o envio de alertas em tempo real, através de expressões regulares.

Plataforma utilizada


Pentium MMX 233MHz
32MB RAM
Slackware 10.2
Kernel 2.4.31
Perl 5.8.7

Instalação dos módulos do Perl

Para poder utilizar o Swatch precisamos instalar alguns módulos do Perl, e podem ser baixados em:

http://search.cpan.org

Neste tutorial foram utilizados os seguintes módulos e suas respsctivas versões:

Bit::Vector  - Bit-Vector-6.4.tar.gz
Carp::Clan   - Carp-Clan-5.3.tar.gz
Date::Calc   - Date-Calc-5.4.tar.gz
Date::Manip  - DateManip-5.44.tar.gz
File::Tail   - File-Tail-0.99.3.tar.gz
Time::HiRes  - Time-HiRes-1.86.tar.gz
Time::Date   - TimeDate-1.16.tar.gz

Algumas vezes um módulo depende de outro para ser instalado, então instale na seguinte ordem, caso a ordem não esteja correta, é só ver a saída do erro que aparecerá e instalar o módulo.. :)

1 - File::Tail
2 - Time::HiRes
3 - Time::Date
4 - Carp::Clan
5 - Bit::Vector
6 - Date::Calc
7 - Date::Manip

para instalação dos módulos proceda da seguinte forma para todos:

# tar zxvf (xvf quando necessário) modulo-1.2.3.tar.gz
# cd modulo-1.2.3
# perl Makefile.PL
# make
# make test
# make install

Poderia ser feito também da seguinte forma:

# perl -MCPAN -e shell

Ele vai perguntar se deseja entrar no modo manual, responda não, ou sim, sei lá.. se você manjar de Perl faça o que achar melhor. No meu caso respondi "não" e foi no modo automatico. Então entrou no prompt do cpan Lá digite:

cpan> install File::Tail

Ele vai baixar da internet e instalar automaticamente. Não sei o que houve, mas aqui isso não funcionou muito bem não, ou talvez eu que não tive paciência para esperar executar a coisa, o trem demorou demais... então cancelei e fiz da maneira que está acima.

Instalação do Swatch

Você pode instalar o swath pelo apt-get, mas aqui abordarei somente por código fonte.

http://sourceforge.net/projects/swatch

Depois de baixar o pacote proceda da seguinte forma:

# tar zxvf swatch-3.1.1.tar.gz
# cd swatch-3.1.1
# perl Makefile.PL
# make
# make test
# make install
# make realclean

Configuração

Primeiro vc deve criar um arquivo (normalmente no diretório home do seu usuário com o nome de .swatchrc) contendo as expressões regulares a serem pesquisadas. A lógica dester arquivo é bem simples, cada linha não comentada do arquivo deve iniciar com watchfor para testar a expressão ou ignore para ignorar a expressão e em seguida a ação ou ações sempre informando uma em cada linha até a próxima incidência de watchfor.

watchfor /expressão regular/
ação
[ação,...]

Na primeira linha estão as palavras-chave a serem pesquisadas no registro em formato de expressões regulares usadas pelo perl. Nas linhas seguintes encontram-se a ação ou ações a executar se a expressão regular combinar com o texto.

As açoes possíveis são mostradas a seguir:

Ação             Descrição
echo                   A linha será mostrada na tela de controle de swatch.
                       Valores possíveis: normal, bold, underscore, blink, inverse, black, red, 
                       green, yellow, blue, magenta, cyan, white, black_h, red_h, green_h, yellow_h, 
                       magenta_h, cyan_h, white_h. Cores do tipo cor_h são cores mais claras.
bell                   Será enviado um sinal sonoro para o controlador do terminal.
write                  Usado para enviar cópia da linha encontrada utilizando-se o comando write. 
                       Para poder receber mensagens com esse comando o terminal tem que ter as permissões 
                       de escrita liberada para mensagens (mesg y). Se você deseja informar mais de um 
                       usuário separe-os usando o caracter ":".
mail                   Usado para enviar uma cópia da linha encontrada utilizando-se o comando mail.
                       Valores possíveis: address=<endereço>, subject=<assunto>.
exec                   Utilizado para executar um comando no sistema com a opção de uso dos campos da 
                       linha encontrada como parâmetros. $N será substituído pelo enésino campo 
                       da linha encontrada, $0 ou $* será substituído pela linha inteira.

Você pode ainda usar o parâmetro throttle para definir um intervalo para a exibição da próxima mensagem que coincidir com a expressão regular, muito útil para impedir repetições inúteis da mesma mensagem, como por exemplo, "file system full".

Seu formato é:

throttle hh:mm:ss

Todas as linhas que iniciarem com o caracter "#" serão ignoradas.

Quando o swatch é iniciado sem parâmetros ele entra no modo padrão, apresentado a seguir:

# swatch -c ~/.swatchrc -t /var/log/messages

Onde o parâmetro -c indica o arquivo de configuração a ser lido e o parâmetro -t o registro (arquivo de log) que será analisado.

A seguir será mostrado os parâmetros possíveis para o swatch:

Parâmetro           Descrição
-c                        Aponta para o arquivo de configuração, se não for usado procura por ~/.swatchrc
-r                        Tempo para reiniciar a aplicação
-f                        Arquivo a ser analisado
-p                        Programa de onde se obterá a saída padrão
-t                        Arquivo que se continua identificadamente a analisar
-P                        Separador padrão
-A                        Separador de ações
-l                        Separador de gravação de entrada

O swatch pode ser utilizado de três formas distintas:

  • Ler arquivos de registro em uma passada;
  • Ler registros enquanto são atualizados;
  • Capturando a saída de outros programas para análise.
  • É comum que cada administrador de sistema tenha sua própria configuração do swatch no seu home (~/.swatchrc), onde formatou as buscas e as ações que acreditar ser mais pertinentes ao seu trabalho, ou que fazem parte da sua responsabilidade.

    Exemplos

    Gerar alertas sobre tentativas de login mal sucedidas e encontrar quem está no sistema:

    watchfor /INVALID|REPEATED|INCOMPLETE/
    echo=inverse
    bell=3
    

    Palavras chave importantes

    watchfor /LOGIN/
    echo=blink
    bell=15
    
    watchfor /password/
    echo=bold
    bell=3
    

    Ignora essas palavras-chave:

    ignore /sendmail/,/nntp/,/xntp|ntpd/,/faxspooler/
    

    Informa apenas mensagens incomuns sobre tftp:

    ignore /tftpd.*(ncd|kfps|normal exit)/
    watchfor /tftpd/
    echo=red_h
    bel=3
    

    Problemas de Kernel:

    watchfor /(panic|halt|sunOS Release)/
    echo=green
    bell
    

    Outros exemplos:

    watchfor /file system full/
    echo=red
    bell=3
    
    ignore /vmunix.*(at|on)/
    watchfor /vmunix/
    echo cyan
    bell
    

    Exemplos para execução em background:

    watchfor /INVALID|REPEATED|INCOMPLETE/
    exec="/etc/backfinger $O"
    
    watchfor /darkstar.*(panic|halt)/
    mail address=root@maquina.com,subject="Servidor DARKSTAR está parado"
    exec="/sbin/call_pager 321654987"
    

    nos exemplos acima você pode adicionar um "&" ao final da linha de comando do swatch e executá-lo em segundo plano já que não há ação que precise retornar algo para um terminal, como seria o caso da utilização do "echo".

    Pondo em prática

    Agora que já sabemos como funciona vamos por em prática o que aprendemos.

    Crie o arquivo .swatchrc no diretório home do root

    # touch /root/.swatchrc
    

    Abra este arquivo com um editor de arquivos de sua preferência e coloque a expressão regular que irá capturar as linhas que tiverem algo sobre o sshd quando feito login ou em erro de login.

    # vi /root/.swatchrc
    watchfor /sshd.*[Ff]ailed [Pp]assword/
    echo=red
    bell=3
    
    watchfor /sshd.*[Aa]ccepted [Pp]assword/
    echo=yellow
    bell=3
    

    Salve o arquivo e saia do editor.

    Agora pra facilitar o uso do swatch vamos criar um script para executá-lo:

    # touch /root/swt.sh
    # chmod +x /root/swt.sh
    # vi /root/swt.sh
    #!/bin/bash
    swatch -c ~/.swatchrc -t /var/log/messages
    

    Salve e saia do editor.

    Pronto, instalado e configurado, agora é só executar e fazer um acesso ssh pra ver o resultado.

    # . /root/swt.sh
    

    Podemos também fazer da seguinte forma: Quando o micro que está rodando o swatch tem um monitor e teclado, podemos colocar o swatch pra rodar em outra tty e em segundo plano. Ex.:

    # . /root/swt.sh > /dev/tty12 &
    

    Desta forma é só ir na tty12 pra ver os resultados.

    valew []'s

    Autor

    • Luciano Gaspar Farias - lucianogf (lucianogf@yahoo.com)
    Horários baseados na GMT -3. Agora são 20:50.


    Powered by vBulletin®
    Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
    Powered by vbWiki Pro 1.3 RC5. Copyright ©2006-2007, NuHit, LLC
    SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.