1) Introdução
A monitoração do estado atual de computadores em uma rede utilizando o Elipse E3 nem sempre costuma ser uma tarefa muito simples. Tendo em vista esta necessidade, foi desenvolvido o driver Elipse SysInfo, onde é possível consultar, em tempo real, diversas informações do sistema operacional e de processos que estão em execução em cada computador. Além do driver, foi também criada uma biblioteca para facilitar a verificação de dados importantes sobre o desempenho de um computador, com alarmes e avisos configuráveis.
2) O driver Elipse SysInfoO driver Elipse SysInfo obtém dados do Performance Monitor, que é um snap-in do Microsoft Management Console (MMC). A leitura das informações é feita através de contadores fornecidos pelo sistema operacional, e também por programas que estão sendo executados em cada computador. Sendo assim, os contadores disponíveis podem variar de acordo com o sistema e os softwares instalados.
Existem vários contadores que são comuns entre as versões do Windows, como por exemplo contadores com informações sobre recursos como processador, memória e disco rígido. Com base nesses dados, foi criada uma biblioteca para monitoramento e análise dos computadores de uma rede. Para mais informações, consulte o manual do driver Elipse SysInfo.
3) A biblioteca perfmon.lib
A biblioteca perfmon.lib tem como função mostrar ao usuário informações básicas do computador para seu bom funcionamento: processador, memória e disco rígido. Por padrão, os componentes monitorados possuem quatro estados: Falha (a comunicação falhou), Normal, Atenção e Crítico.
A faixa de valores para cada estado é configurável através de um XControl (CMDMonitorData), cujos valores definidos como padrão podem ser consultados na tabela abaixo. A definição destes valores foi baseada em um artigo publicado pela Microsoft.
Contador |
Normal |
Atenção |
Crítico |
Memory\Available Mbytes (MB) |
100 ~ 8 MB |
50 ~ 100 MB |
0 ~ 50 MB |
Memory\Pages/sec |
0 ~ 900 |
900 ~ 1000 |
1000 ~ 8 |
Memory\Pool Paged Bytes |
0 ~ 200 MB |
200 ~ 220 MB |
220 ~ 8 |
Memory\Pool Nonpaged Bytes |
0 ~ 100 MB |
100 ~ 110 MB |
110 ~ 8 |
Memory\Free System Page Table Entries |
8000 ~ 8 |
5000 ~ 8000 |
0 ~ 5000 |
LogicalDisk(_Total)\%Free Space |
15 ~ 100% |
10 ~ 15% |
0 ~ 10% |
Alarmes serão disparados assim que algum dos dados monitorados atingir o estado de atenção ou crítico; quando isto acontecer, um e-mail contendo o relatório do computador que apresentou recursos abaixo do esperado será enviado automaticamente através do driver SendMail.
A biblioteca perfmon.lib é composta de um XObject (MonitorData) e três XControls (CMDMonitor, FullMonitor e CondMonitor), que serão descritos a seguir:
MonitorData
Dentro deste XObject, é necessário configurar os dois drivers: o SendMail deve ser configurado com o servidor de e-mail que será utilizado para o envio das mensagens, e o ESysInfo com uma conta de usuário que seja administrador dos computadores sendo monitorados (Figura 1). Além disso, é preciso verificar se a propriedade DriverLocation de ambos está correta.
Figura 1: Configuração dos driver Elipse SysInfo e SendMail
Ao criar uma instância do objeto, as propriedades que devem ser inseridas manualmente são: ComputerName, com o nome da máquina que será monitorada (ex: \\MACHINE), e Owner, com o e-mail do responsável pela máquina – endereço para onde será enviado o e-mail de alerta. As demais propriedades são preenchidas de forma automática através dos drivers.
CMDMonitorData
Este XControl serve para alterar as propriedades padrão de um MonitorData em tempo de execução, como uma janela de configuração (Figura 2). Sua única propriedade (Source) deve receber um objeto do tipo MonitorData.
O campo Destination Address (endereço destino) recebe os endereços de e-mail configurados para receber os alertas deste objeto; é possível inserir mais de um através do uso de ponto e vírgula entre os endereços. As colunas Attention (atenção) e Critical (crítico) possuem os valores padrão citados anteriormente (tabela), mas podem ser alterados através deste controle. O checkbox ao lado esquerdo desabilita aquele alarme.
Figura 2: XControl CMDMMonitorData
FullMonitor
Este XControl contém informações sobre o desempenho da máquina especificada no objeto MonitorData. Caso algum dos valores esteja na faixa de Attention, a cor de fundo do display ficará amarelo, já em Critical, será alterada para vermelho.
As propriedades deste controle são: Source, que deve receber um objeto do tipo MonitorData; SettingScreen, que deve receber um objeto tela que possua um controle do tipo CMDMonitor; e ShowInfo, do tipo booleano, que indica se o controle será mostrado por completo (Figura 3) ou na forma reduzida, apenas com a coluna da esquerda visível.
Figura 3: XControl FullMonitor
CondMonitor
Este XControl é bastante simples, apenas indica o estado geral da máquina monitorada (Figura 4). O display Condition (condição) possui quatro valores possíveis, com suas respectivas cores de fundo:
Texto |
Cor |
Descrição |
Falha |
Cinza |
Não há comunicação entre o driver e o computador monitorado. |
Normal |
Verde |
Nenhum tipo de alarme foi disparado, condições ideais. |
Atenção |
Amarelo |
Algum alarme do tipo LO foi disparado. |
Crítico |
Vermelho |
Algum alarme do tipo LOLO foi disparado. |
Existem duas propriedades: Source, do tipo MonitorData, e DetailScreen, que é o nome de uma tela do tipo modal que será aberta ao clicar com o mouse sobre o controle. Esta propriedade serve para mostrar uma janela com mais informações, através de um controle do tipo FullMonitor, por exemplo.
Figura 4: XObject CondMonitor