Documentação Symom Agente de Monitoração na Plataforma Windows Agente Windows Agente Windows Agente Linux Agente Linux Plataforma Windows Instalação A instalação do Agente de Monitoração do Symom para Windows é feita através do executável setup.exe que pode ser baixado do site http://www.symom.com.br/agente. Este programa vai preparar os serviços do agente de monitoração para funcionar, entretanto, deixa para o usuário a tarefa de instalar e iniciar os serviços. Ao instalar o Agente um grupo de programa será criado e dentro deste teremos as seguintes opções: A opção “Symom Agent Service Manager” permite instalar e iniciar os serviços através do programa a seguir: Para instalar o serviço é necessário clicar em “Install Service” e em seguida em “Start Service”. Após instalar e iniciar os serviços note que o programa indica o status dos serviços e caso tudo ocorra bem a aparência do programa deve ser esta: Funcionamento O agente de monitoração para windows é composto de 2 serviços. O Symom Agent Service (AgentSymomService.exe) é responsável pela coleta dos dados, já o Symom WatchDog Service (SymomWDService.exe) é o serviço que garante que o primeiro está rodando. Caso o serviço fique travado devido a uma instabilidade da máquina o serviço Symom WatchDog Service reinicia automaticamente o serviço de coleta de dados. Esta arquitetura garante a disponibilidade do serviço de monitoração 100% do tempo. O serviço de coleta de dados “escuta” uma porta tcp/ip e responde as requisições do servidor de monitoração. A porta padrão para esta comunicação é a porta 9000. A opção “Interface Gráfica” do menu do windows criado na instalação permite executar um programa que funciona como uma interface para serviço de coleta de dados. Este programa permite não só ver os dados coletados como também configurar o serviço de coleta de dados. Ao iniciar este programa você notará que o mesmo foi se instalar na barra de programas do windows. Clicando com o botão esquerdo do mouse sobre o ícone do programa surgirão 3 opções. Na Opção “show” será apresentada uma janela com os dados coletados pelo agente de monitoração. Esta interface permite acesso a uma janela de configuração do serviço pela opção do menu “File”, item “Config”. Configuração A janela de configuração está logo abaixo. A opção RRDTOOL instrui o serviço de coleta de dados a executar os procedimentos necessários para alimentar o banco de dados do Rrdtool e a executar o script RrdMkGraph.bat que é responsável pela geração de gráficos localmente. A opção NETMON instrui ao Agente do Symom para coletar dados de tráfego de rede. Esta opção foi criado pois alguns programas com SQL Server desativam no registry a disponibilização desta informação no pelo do Windows. Junto com o agente symom é disponibilizado um arquivo chamado ActivePerfmon.bat que ativa não só esta monitoração como também a monitoração de discos. AllowRemoteExec é a opção que permite ao agente Symom executar scripts e gerenciar serviços do windows. Assim se um serviço da máquina monitorada parar será possível reiniciar este serviço remotamente pela porta de comunicação com o servidor Symom. O parâmetro Listen é importante quando a máquina tem vários ips e um deles é usado para gerência de servidores e não se deseja deixar o serviço do agente “escutando” em outros ips. O parâmetro “Symom Server” é o ip do servidor Symom. Este parâmetro permite ao programa de interface gráfica buscar no servidor Symom o status dos outros servidores monitorados e caso algum servidor apresente problema o ícone do traybar ira piscar vermelho e a opção messages apresenta o problema atual em uma janela. A opção PORT permite alterar a porta tcp/ip onde o agente recebe requisições. Por default esta porta é a 9000 mas esse parâmetro pode ser mudado para qualquer outra porta caso exista algum outro serviço escutando nesta porta. Alguns programas conhecidos usam a porta 9000 e precisamos ajustar o parâmetro PORT do agente Symom para este funcionar corretamente. Por exemplo, o WebSphere e o PeopleSoft. O próximos dois parâmetros, NetInterface1 e NetInterface2, permitem selecionar qual a interface de rede desejamos monitorar. A interface gráfica permite selecionar apenas 2 interfaces de rede diferentes mas o agente de monitoração está internamente preparado para monitorar até 4 interfaces de rede. Para configurar mais de 2 interfaces de rede atualmente é necessário editar manualmente o arquivo de configurações SymomAgent.cfg. Os parâmetros Command1_c e Command2_c permitem coletar informações através de comandos de console (DOS). Esta opção está em desuso mas a sintaxe é a seguinte: <comando_dos> | <parâmetros_do_comando> | <parâmetro_grep_1> |<parâmetro_grep_1> O comando_dos é executado e recebe como parâmetros parâmetros_do_comando, em seguida é feito um grep com parâmetro_grep_1 e depois é feito um segundo grep com o parâmetro parâmetro_grep_2. Depois deste tratamento, é feita uma contagem das linhas que sobraram e este número é passado ao agente symo como sendo o resultado desta monitoração. Este recurso é útil quando por exemplo se deseja conta número de conexões de um serviço que não dispõe de contadores no performance monitor do windows. No exemplo a seguir uma configuração para coletar o número de conexões na porta 80 de um servidor web. Conteúdo de command1_c: netstat | -n -p tcp | 80| ESTABLISHED O parâmetro LogLevel é usado para depurar o agente de monitoração. O valor normal é 0 (zero) mas esse valor pode ser aumentado para 5. Com isso o arquivo de log SymomAgent.log registra os passos do agente de monitoração. Esse log pode crescer muito por isso aumente esse valor com cautela. Os parâmetros Performancemon1 e Performancemon2 permitem adicionar monitorações do performance monitor. Este recurso é importante principalmente para monitorar aplicativos como IIS, Oracle, SQL Server, WebSphere, DB2 entre outros. Todos esses programas criam entradas no performance monitor do windows que podem ser monitoradas pelo agente Symom. A interface gráfica permite a adição de apenas 2 monitorações mas o agente pode chegar a monitorar até 4 chaves do performance monitor mas para isso é necessário editar o arquivo SymomAgent.cfg. O último parâmetro tem a função de adicionar segurança ao agente de monitoração. Como o agente pode ter a capacidade de executar scripts, iniciar e parar serviços do windows por requisições remotas, o agente de monitoração passa a ser um ponto crítico na segurança da máquina, por isso, este parâmetro permite acesso apenas pelo servidor do Symom. Este campo pode ser configurado com vários ips separados por ponto-e-vírgulas. Módulo RRDTool Este módulo permite a criação de gráficos das monitorações localmente através das consagradas ferramentas MRTG e RRDTool desenvolvidas por Tobias Oetiker e sua equipe. Por ser mais moderna o Agente de Monitoração do Symom usa por padrão o RRDTool. O agente de monitoração executa duas funções distintas para poder flexibilizar o uso com outras ferramentas. A primeira rotina consiste em atualizar o banco de dados da ferramenta escolhida (RRDTool por padrão) com as informações lidas de cpu, memória, consumo de banda etc. A outra consiste em executar, a cada 5 minutos, um arquivo batch (.bat) responsável pela criação dos gráficos. Este recurso pode ser aproveitado para adicionar ao windows a capacidade de executar periodicamente scripts como os do MRTG. Ao ser iniciado o Agente de monitoração verifica seu arquivo de configuração (SymomAgent.cfg) e procura pelo flag “RRDTOOL=TRUE”, neste caso o tratamento para ferramentas como MRTG e RRDTool estará ativado. Em seguida, procura pelo subdiretório RRDTOOL a partir do diretório do próprio agente. Caso não exista o programa cria este diretório. Depois procura pelo arquivo rrdtool.tpl que deverá conter templates para criação dos bancos de dados e para atualização das informações. A sintaxe padrão de cada linha é marcada pelo uso do separador de campos “##”. O primeiro campo indica a operação a ser executada, pode ser “CREATE” ou “UPDATE”. O segundo campo indica qual a leitura que deve ser atribuída para as variáveis $TIME, $VAL, $VAL2 na linha, ou seja, se é uma linha para tratamento de cpu, memória etc. O terceiro campo contém o comando de prompt que será executado e as variáveis que deverão ser substituídas antes da execução do comando. A seguir, o agente procura pelos arquivos de dados do Rrdtool: cpu.rrd, mem.rrd, dskc.rrd, dskd.rrd, dske.rrd, net.rrd. Caso um destes arquivos não exista será executada a rotina correspondente para gerar este arquivo. No caso hipotético do arquivo cpu.rrd não existir o agente irá executar o comando de prompt: “rrdtool create CPU.rrd --start $TIME --step 60 DS:CPU:GAUGE:1200:0:100 RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:775 RRA:AVERAGE:0.5:288:797” Por isso para que o comando tenha sucesso deve existir o programa rrdtool.exe no mesmo diretório do agente de monitoração. Note que a variável $TIME é substituída pelo tempo no formato time-stamp do Unix, ou seja, segundos passados a partir de 1970. Depois de criar todos os arquivos (cpu, memória, discos c,d e e consumo de banda - net), o agente passa a atualizar o banco de dados do Rrdtool executando os comandos necessários indicados pelas linhas iniciadas por “UPDATE”. Um arquivo rrdtool.tpl típico está a seguir: CREATE##CPU##rrdtool create CPU.rrd --start $TIME --step 60 DS:CPU:GAUGE:1200:0:100 RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:775 RRA:AVERAGE:0.5:288:797 CREATE##MEM##rrdtool create MEM.rrd --start $TIME --step 60 DS:MEM:GAUGE:1200:0:519553024 RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:775 RRA:AVERAGE:0.5:288:797 CREATE##DSKC##rrdtool create DSKC.rrd --start $TIME --step 60 DS:DSKC:GAUGE:1200:0:13629255680 RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:775 RRA:AVERAGE:0.5:288:797 CREATE##NET##rrdtool create NET.rrd --start $TIME --step 60 DS:IN:COUNTER:1200:U:U DS:OUT:COUNTER:1200:U:U RRA:AVERAGE:0.5:1:600 RRA:AVERAGE:0.5:6:700 RRA:AVERAGE:0.5:24:775 RRA:AVERAGE:0.5:288:797 UPDATE##CPU##rrdtool update CPU.rrd $TIME:$VAL UPDATE##MEM##rrdtool update MEM.rrd $TIME:$VAL UPDATE##DSKC##rrdtool update DSKC.rrd $TIME:$VAL UPDATE##DSKD##rrdtool update DSKD.rrd $TIME:$VAL UPDATE##DSKE##rrdtool update DSKE.rrd $TIME:$VAL UPDATE##NET##rrdtool update NET.rrd $TIME:$VAL1:$VAL2