Documentação do Sistema WATCHER
Augusto Ricardo Tin Pires – CNH347 Manpower Professional
Conteúdo
1. 2. 3. 4. 5. 6.
Entendendo o Watcher ........................................................................................................ 3 Estrutura do Sistema Watcher ............................................................................................. 3 Utilitários ............................................................................................................................. 4 Estrutura dos Scripts ........................................................................................................... 5 Configuração do acesso WEB ............................................................................................ 8 Utilizando o Sistema Watcher ........................................................................................... 10
1. Entendendo o Watcher O sistema Watcher tem como função principal monitorar e gerar informações sobre dispositivos conectados nas portas dos switches, incluindo os endereços de MAC e portas de switches utilizadas que serão apresentadas via página WEB. Este sistema esta instalado em um servidor Sun/Solaris (Enterprise E450) com a seguinte denominação: http://watcher.jag.br.mot.com/infra . Os aplicativos e scripts que fazem as atualizações e verificações do sistema Watcher utilizam arquivos de dados para as suas análises, como o arquivo com a lista de switches, entre outros que ficam localizados no diretório /watcher/static e as saídas e arquivos gerados em geral são enviados para o diretório /watcher/dynamic.
2. Estrutura do sistema Watcher
O sistema Watcher possui a seguinte estrutura de dados: •
Coleta de dados (Data Collection)
Nesta fase, o sistema lê as informações do roteadores, switches e das planilhas de cabeamento que se encontram em um servidor Windows, utilizando alguns sistemas, tais como o expect, de domínio público, e o samba, para conexão entre plataformas Unix e Windows. Existe um crontab, que é o scheduler do Unix onde todos os scripts de atualizações são programados a rodar em determinado horário e na freqüência desejada. A seguir o crontab do sistema watcher, para acessálo, basta digitar: crontab –l e para modificálo digite: crontab –e (Neste caso, os comandos de edição são os do editor vi, cujos comandos podem ser encontrados na página web: http://ithowto.jag.br.mot.com/Cursos/Apostilas/vimref.html
Crontab do watcher:
# # These are the main periodic executions (each calls all individual scripts) # 0 0,6,12 * * * [ x /watcher/update_all.ksh ] && /watcher/update_all.ksh > /dev/null 2>&1 >> /watcher/logs/update_all.log # # This is the weekly log rotate # 0 0 1 * * [ x /watcher/update_watcher.ksh ] && /watcher/update_watcher.ksh > /dev/null 2>&1 > /watcher/logs/update_watcher.log # # Monitor for ports in 100 Mbps + Half Duplex 0 9 * * 15 /watcher/monitor/check_half100.ksh > /dev/null 2>&1 # # Monitor for ports in 100 Mbps + Half Duplex 0 9 * * 15 /watcher/monitor/check_hub.ksh > /dev/null 2>&1 # • Processamento dos Dados (Data Processing) Nesta fase, os dados coletados são consolidados, este procedimento também está incluído na crontab e utiliza um maior processamento do servidor. Ele subscreve a tabela anterior, com a seguinte localização e denominação: /watcher/htdocs/main_table.txt
•
Examinação dos Dados (Data Query)
Existe uma interface para o usuário baseado em WEB (Apache) para acesso aos dados consolidados. Esta página é a seguinte: http://watcher.jag.br.mot.com/infra 3. Utilitários O utilitário mais importante que é utilizado pelos scripts do sistema Watcher é o readpass. Todas as informações são obtidas dos switches através do readpass que está instalado no servidor, juntamente com o comando expect para acesso aos switches.
As senhas dos switches são armazenadas de forma encriptada pelo sistema utilizando o comando savepass ( /usr/local/bin/savepass) e podem ser acessadas com o readpass e o listpass. Sómente o usuário que tiver armazenado as senhas poderá utilizálas. Execução: watcher@watcher:/watcher:>readpass Usage: readpass <hostname> <identifier> watcher@watcher:/watcher:>readpass zbr05swa1 readonly xxxxxxxx watcher@watcher:/watcher:> onde xxxxxxxx é a senha SEM encriptação. E para salvar uma senha o comando é o seguinte: watcher@watcher:/watcher:>savepass Usage: savepass <hostname> <identifier> watcher@watcher:/watcher:>
O campo identifier referenciado aqui é utilizado para separarmos as senhas utilizadas nos switches. Aqui utilizamos o identificador readonly para acesso aos switches sómente para execução de alguns comandos. Quando necessitamos utilizar algum comando que necessita do acesso de enable do switch, usamos o identificar enable para quardar a senha de acesso. Neste caso, para salvar a senha de enable do switch, utilizamos o comando da seguinte maneira: watcher@watcher:/watcher:>savepass zbr05swj3 enable Type the password for "readonly" on "zbr05swj3", from 3 to 16 chars. Avoid nonalphanumeric characters. Password: Type it again, to confirm. Password: xxxxxxx Password saved successfully. Use "readpass <hostname> <identifier>" to read it back. watcher@watcher:/watcher:>
4. Estrutura dos scripts
•
Coleta de Dados (Data Collection)
O sistema Watcher utiliza uma série de scripts na coleta dos dados dos switches e roteadores, e das planilhas localizadas em servidor Windows. Os scripts utilizados são os seguintes: 1. update_modules.ksh : Este script faz a atualização de módulos dos switches listados na variável $SWITCH_LIST (ver variáveis de ambientes configuradas nos scripts). O resultado é armazenado no arquivo apontado por /watcher/dynamic/modules/ <switch name>.modules Execução: /watcher/update_modules.ksh <switch> OBS: Se o parâmetro switch não for informado, o script irá fazer uma atualização em todos os switches existentes no arquivo: /watcher/static/switch_list 2. update_ports.ksh: Atualiza a listagem com os parâmetros de configuração das portas para cada módulo encontrado salvando a saída em /watcher/dynamic/ports/<switch name>.port.<port>.current Execução: /watcher/update_ports.ksh <switch> Se o parâmetro switch for omitido, o Watcher irã fazer uma atualização em todos os switches. 3. update_arp.ksh: Atualiza a tabela ARP de cada switch (Endereço de MAC conectados nas portas) e salva o resultado em /watcher/dynamic/arp/<switch name>.arp
Execução: /watcher/update_arp.ksh <switch> OBS: Se o parâmetro switch não for informado, o script irá fazer uma atualização em todos os switches existentes no arquivo: /watcher/static/switch_list 4. update_rsm_arp.ksh: Atualiza a tabela RSM ARP dos roteadores zbr05sr1 e zbr01sr1 (Endereços de MAC com IP) e salva o resultado em /watcher/rsm_arp.txt Execução: /watcher/update_rsm_arp.ksh 5. update_trunk.ksh: Atualiza a tabela de trunk dos switches para que estas portas não sejam contabilizadas na tabela final e salva o resultado em /watcher/dynamic/ports/ <switch name>.trunk Execução: /watcher/update_trunk.ksh <switch> OBS: Se o parâmetro switch não for informado, o script irá fazer uma atualização em todos os switches existentes no arquivo: /watcher/static/switch_list 6. update_quadjack.ksh: Atualiza as informações dos quadjacks e descrições a partir das planilhas Excel e gera a saída nos arquivos /watcher/dynamic/quadjacks.txt.<switch name>. Atualmente esta informação é gerada também em um único arquivo localizado em /watcher/dynamic/quadjacks.txt. Execução: /watcher/update_quadjack.ksh 7. create_main_table.ksh: Cria a tabela principal de localização de endereços de MAC (ARP x localização) e também a tabela de “piratas” (não configurados pelo DHCP). As saídas são geradas em /watcher/pirate.log e /watcher/htdocs/main_table.txt
Execução: /watcher/create_main_table.ksh •
Processamento dos Dados (Data Processing)
Nesta fase o sistema não solicita nenhuma autenticação, é onde o arquivo create_main_table.ksh é processado e as saídas são os arquivos main_table.txt, watcher.log e pirate.log •
Solicitação dos Dados (Data Query)
Existem alguns arquivos escritos em Perl (Criado por Larry Wall, em Dez/87, em referência à Parábola da Pérola, de Mateus 13) localizados no subdiretório /watcher/cgibin/watcher e são usados para apresentar na interface Web os dados gerados pelos scripts. 5. Configuração do acesso WEB
Para que um usuário possa acessar o sistema Watcher, é necessário realizar os seguintes procedimentos para este usuário ter acesso: ●
Alterar o arquivo /watcher/htdocs/infra/pwd adicionando uma linha ao final do arquivo no seguinte formato: <userid>:x, veja abaixo: alc061:CpW47y/CednEA asm075:zhn3sk54DfjLA aer031:ueFq6TusVm8AY cnh347:ABskgs9CTQi8M tin:.AeCn7mm99Qc6 qjpc68:SxGr2gSr7Uop2 ams106:DZzntlEpsDR6. wgm031:Ie2RIOM2NhzUQ ahf013:0kbh2TlDPCtZ2 aab049:lyNHEbBAoKqCo acc046:8ZPCor7d.dNzM vhjb86:x
●
Como pode observar, a senha é salva criptografada. Alterar o arquivo /watcher/htdocs/infra/htaccess, adicionando o ID do usuário na lista de Ids permitidos:
AuthType Basic AuthName "Password required" AuthUserFile /watcher/htdocs/infra/pwd require user alc061 asm075 aer031 cnh347 tin qjpc68 ams106 wgm031 ahf013 qab003 adm033 arb043 acn011 aab049 acc046 vhjb86 atf008 w12536 adb008 cgbw64
●
Após estes ajustes, o usuário deverá acessar a página do Watcher entrando na opção de Esqueceu sua Senha (Forgot your Password) como figura abaixo:
Um email será enviado a conta do usuário com a nova senha. Após recebera senha, o mesmo poderá alterála utilizando a opção Mudar sua Senha (Change your Password)
Basta entrar com a senha recebida pelo sistema via email e depois entrar com a nova senha e com a confirmação (Repetir a senha). Se as senhas forem iguais, uma janela mostrará a confirmação de alteração. Este email é sempre enviado pelo usuário noreply@motorola.com. 6. Utilizando o Sistema Watcher Para utilizar o Watcher, basta entrar na página principal do sistema e realizar as consultas desejadas. A página inicial é: http://wachter.jag.br.mot.com/cgibin/watcher/main_table.pl