Monitorando disponibilidade, desempenho, infraestrutura e muito mais com o IBM Lotus Sametime

Você já se perguntou como se faz para saber realmente qual é o status do seu ambiente IBM Lotus Sametime? Descubra como monitorar o Lotus Sametime, em termos de função e desempenho, do ponto de vista do usuário. Este artigo descreve (e fornece) uma ferramenta simples, leve e proativa para ajudar os administradores a entender melhor a experiência do usuário do Lotus Sametime para reduzir indisponibilidades, responder mais rapidamente aos problemas e melhorar a experiência do cliente. Além de monitorar as capacidades, essa ferramenta pode ajudar a coletar depurações e tirar dos usuários o peso das recriações de problemas e coletas de dados. Ao combinar validação de rede com mensagens instantâneas do Lotus Sametime, conhecimento dos usuários, login de usuários e validação da consulta de nomes de usuário, obtém-se um quadro da experiência do usuário mais completo do que nunca.

James Dewan, Premium Support Manager, IBM

Jim Dewan é Premium Support Manager para IBM Lotus com Verizon e atualmente está projetando uma série de ferramentas e bots para ajudar os seus clientes a monitorar e depurar a implementação de Lotus. Com dez anos de experiência em desenvolvimento para servidores Lotus Domino, a atribuição anterior do Jim foi a de Project Lead na equipe de administração do Lotus Domino. Jim também foi Technical Lead no esforço Lotus Domino Linux no System z, especializado no desenvolvimento de aplicativos, kits de ferramentas e acessibilidade de dados empresariais.



16/Mar/2010

Nota do editor: Conhece muito sobre esse tópico? Deseja compartilhar seu conhecimento? Participe hoje do programa de wiki do software IBM Lotus.

Introdução

Quer saber o que está acontecendo no seu ambiente, do ponto de vista do usuário? Precisa saber quando a funcionalidade para o usuário está indisponível? Tem que conhecer não só as características funcionais, mas também o desempenho que os usuários vivenciam? Este artigo explica essa estrutura projetada recentemente para ajudar a suprir facilmente essas necessidades.

Estão incluídas descrições de três plug-ins já existentes e fáceis de configurar e de como criar os seus próprios monitores por meio dessa ferramenta leve e simples. Esses monitores são úteis para o monitoramento proativo da produção, identificação de problemas, monitoramento do desempenho dos usuários e também são ferramentas para o ambiente de testes pré-produção. Este artigo dá detalhes de como instalar e configurar a ferramenta rapidamente. Também estão incluídas informações detalhadas sobre a criação de monitores adicionais e o valor que você obtém ao fazer isso. O artigo também oferece exemplos de código.

Implementada como um bot do IBM® Lotus® Sametime®, a ferramenta Watchit aproveita o investimento feito no Lotus Sametime e pode ser estendida facilmente para permitir mais plug-ins com o objetivo de suprir as suas necessidades de simulação de usuários. O Watchit fornece uma estrutura proativa para investir nas capacidades do Lotus Sametime, permitindo o melhor gerenciamento e monitoramento dos recursos de rede e software já existentes. O Watchit usa mensagens instantâneas do Lotus Sametime para emitir alertas quando limiares de desempenho dos usuários são excedidos, recursos de rede ficam indisponíveis ou funcionalidades críticas para os usuários falham.

O uso dos plug-ins já existentes, quando combinado, fornece o quadro detalhado da experiência do usuário do Lotus Sametime que é necessário. Esse quadro pode permitir que você entenda as economias de tempo e custo decorrentes do uso dessas ferramentas simples, em vez de depender dos recursos de central de ajuda, suporte técnico e suporte ao usuário.

Saiba como essa ferramenta pode ajudar a fazer o seguinte:

  • Diminuir o tempo de resolução de problemas
  • Descobrir problemas proativamente
  • Testar novas configurações e alterações de código de um jeito melhor

Aproveitar totalmente o investimento feito no Lotus Sametime. Explorar como essa ferramenta pode fornecer valor para a sua organização.


Maximizar o Lotus Sametime

De reuniões on-line e mensagens instantâneas a comunicações unificadas, o Lotus Sametime pode aproximar a organização e oferecer mais interatividade. O Lotus Sametime pode mudar a forma de interagir com os aplicativos e usuários. O uso dos kits de ferramentas de API do Lotus Sametime pode possibilitar que os aplicativos de missão crítica já existentes se comuniquem proativamente com os administradores de sistema ou até mesmo com as equipes de desenvolvimento quando ocorrerem erros ou outras falhas no ambiente de produção.

Outra forma de usar o Lotus Sametime é criar aplicativos simples que realizam tarefas de missão crítica, como comunicação por uma conexão de gateway ou SIP no Lotus Sametime, verificação da disponibilidade de rede, consultas de nomes ou qualquer função fornecida com APIs de kits de ferramentas de produtos. É possível usar a capacidade do kit de ferramentas do Lotus Sametime para emitir alertas quando o desempenho ou a função não estão de acordo com os padrões que você definiu. Embora a criação de aplicativos por meio de APIs de produtos não seja um conceito novo, o valor aumenta quando se usa a comunicação instantânea para emitir alertas sobre problemas para as equipes de administração antes que as reclamações dos usuários inundem a central de ajuda. O fato de conhecer os problemas com antecedência pode ser uma ferramenta importante para minimizar indisponibilidades e diminuir o trabalho dos poucos recursos da central de ajuda e do suporte técnico. O valor das mensagens instantâneas do Lotus Sametime fica evidente quando você cria esses monitores como "olhos e ouvidos" proativos no ambiente de produção. Os aplicativos desse tipo se tornam o melhor dos usuários: Coletam os erros, relatam problemas à medida que acontecem, trabalham 24X7 e não se importam de recriar um problema diversas vezes.

Por que essa ferramenta?

A ferramenta Watchit fornece todos os serviços de que você precisa para criar com eficiência plug-ins de monitor proativos para gerenciar melhor o seu ambiente. Também fornece três plug-ins prontos para usar que permitem que você comece a usá-los imediatamente. Depois de ver o valor dos plug-ins já existentes ao usar as mensagens instantâneas do Lotus Sametime para informar os administradores de sistema quando ocorrerem falhas ou atrasos no desempenho, a facilidade e o valor de ampliar a ferramenta criando os seus próprios plug-ins ficam evidentes.

A ferramenta Watchit fornece uma estrutura simples para monitores funcionais e de desempenho, sob o ponto de vista do usuário. Os administradores podem ter dificuldade de entender a experiência dos usuários, e os usuários podem considerar que a coleta de dados sobre desempenho ou falhas funcionais toma muito tempo. Essa ferramenta foi projetada para que os administradores fiquem muito bem informados sobre os problemas sob o ponto de vista dos usuários. Os administradores de sistemas já conhecem o backend do ambiente; essa ferramenta proporciona insight sobre a experiência do cliente. Essa abordagem é mais rápida, eficiente e fácil do que esperar que o usuário relate o problema à central de ajuda. As mensagens instantâneas substituem a abertura de bilhetes de problema e todo o esforço necessário até a resolução.

Usando kits de ferramentas para desenvolver rapidamente os "olhos e ouvidos" do ambiente dos usuários

É importante que as pessoas que suportam os diversos ambientes conheçam a experiência dos usuários em todos os momentos. As informações coletadas dos próprios aplicativos é somente um aspecto da experiência total que o usuário está tendo. A meta dessa ferramenta, baseada na eficiência das mensagens instantâneas, é monitorar falhas de desempenho e função e relatá-las à equipe de suporte adequada. Frequentemente, as informações coletadas de um usuário que relata um problema podem ser esparsas e limitadas. As informações coletadas desses aplicativos (e de quaisquer ferramentas desenvolvidas) são precisas, com cronogramas específicos, dados de desempenho e tempo de resposta e mensagens de falha. Esses dados sobre falhas frequentemente determinam a velocidade de resolução do problema. Com a ferramenta Watchit, tudo isso pode ser feito sem afetar os usuários. Em vez usar bilhetes para relatar problemas ocorridos com os usuários, os administradores podem ser alertados imediatamente sobre os problemas e tomar as medidas adequadas muito antes da abertura do bilhete de problema.

Combinando plug-ins de monitor para obter benefício máximo

A coleta de informações sobre uma tarefa específica pode ser importante, mas a combinação dos dados de plug-ins pode oferecer uma perspectiva que nem mesmo os usuários podem fornecer. Por exemplo: embora seja útil saber se as comunicações por SIP ou gateway estão fluindo entre comunidades externas, também é importante entender as características de desempenho da rede em si. O plug-in de verificação de rede (healthcheck) e o plug-in de mensagens instantâneas/conhecimento do Lotus Sametime (awarecheck) serão descritos a seguir. A combinação dos dados desses dois plug-ins pode revelar coisas sobre o problema que os usuários não estão preparados para explicar. O desempenho ou a instabilidade da rede podem levar a problemas no Lotus Sametime ou problemas de desempenho. Ao combinar os dados, é possível ver um quadro mais claro do ambiente por meio dessa ferramenta proativa, e as mensagens instantâneas podem ser usadas como veículo imediato para fornecer essas informações a fim de resolver o problema atual.

Esses tipos de dados abrangentes, combinados com o registro feito pelos próprios aplicativos, fornecem uma perspectiva do ambiente sob o ponto de vista do cliente e do servidor. Os dados podem ser úteis no diagnóstico de problemas e podem ser enviados aos proprietários de aplicativos e equipes de suporte, que têm condições de entender uma determinada situação. Todos esses dados têm como resultado indisponibilidades mais curtas, menos impacto nos usuários e resolução mais rápida dos problemas.


O bot Watchit Lotus Sametime 

A ferramenta Watchit é uma estrutura para testar, depurar e monitorar melhor as implementações de software. Fornece classes fáceis de usar para incorporar tecnologias de mensagens instantâneas e atividades combinadas de registro. Vem com três plug-ins prontos para usar e funciona como uma parte importante do gerenciamento e suporte de uma implementação de software. Embora seja possível criar plug-ins adicionais (conforme se explica mais adiante neste artigo), os três plug-ins já existentes fornecem capacidades que lhe permitem ser mais proativo na abordagem para entender a experiência do usuário.

A ferramenta Watchit atualmente vem com três plug-ins de monitor customizados já existentes. Os plug-ins podem ser usados independentemente ou em conjunto.

  • Healthcheck é o componente que testa e monitora a conexão host/porta da rede.
  • O Awarecheck trabalha com a simulação de mensagens instantâneas/conhecimento/validação de resolução e monitoramento.
  • O Siponewaycheck trabalha com a simulação de mensagens instantâneas/conhecimento/validação de resolução e monitoramento e com a conexão a uma comunidade externa por meio de um bot de ping já existente com o qual ele se comunica.

Para especificar quais plug-ins são executados, o bot do Watchit lê o arquivo watchit.properties:

Plugin_Classes=healthchecker,awarecheck,siponewaycheck

Esse exemplo pode executar todos os três plug-ins ao mesmo tempo.

Plug-in Healthcheck

Conhecido como verificador de rede, este plug-in realiza operações de abertura de soquetes de rede para qualquer porta ou host especificado no arquivo de propriedades. É usado para monitorar falhas de rede ou desempenho a partir de qualquer ponto da rede. As informações retornadas podem fornecer insight sobre o desempenho da rede (tempo de resposta da conexão do soquete) e os códigos de razão das falhas de rede.

Para realizar a tarefa de fornecer um arquivo de entrada e facilitar o agrupamento de recursos em categorias, o formato do arquivo de propriedades foi projetado sem o requisito de especificar repetidamente as mesmas portas para cada host listado. As configurações de porta, localizadas na seção [Ports] do arquivo de entrada, fornecem um local para designar portas para categorias específicas do servidor: [Domino], [Sametime], [MUX], [SIP], [Quickplace]. Essa abordagem permite que o healthcheck passe por cada tipo e use a lista de portas para verificar cada porta desejada. A Listagem 1 mostra um exemplo de arquivo de entrada.

Para entrada ou para servidores que têm portas exclusivas que não se enquadram em nenhuma categoria, a categoria genérica [Hosts] pode ser usada para designar portas e hosts individuais juntos. Tanto os nomes de host quanto os endereços IP são válidos na seção [Hosts].

Para medir o desempenho da rede, adicione Socket_Timeout=x, onde x é o número de milissegundos para permitir uma operação de abertura de soquete com êxito. Se esse limiar é excedido, um alerta é enviado para a lista de notificação.

Para mostrar a saída detalhada das transações do bot, use Debug=true no arquivo healthcheck.properties.

Listagem 1. Exemplo de arquivo de entrada healthcheck.properties
[Ports]
Sametime_Ports=1352,80,8081,8082,1533,999
Domino_Ports=1352,80
Quickplace_Ports=1352,80,389
Mux_Ports=1533,8082
Sip_Ports=5060,5061
[Sametime]
serverst04.company.com
serverst05.company.com
serverst06.company.com
[SIP]
serversp01.company.com
[Quickplace]
serverqp01.company.com
serverqp02.company.com
[MUX]
servermx1.company.com
servermx2.company.com
[Hosts]            
host1.company.com;80,8081
host2.company.com;99,443,1024
[Options]
Check_Interval=60
Socket_Timeout=5000

As informações necessárias de servidor e login do Lotus Sametime são armazenadas no arquivo IMEasy.properties. Esse arquivo fornece as informações de usuários do Lotus Sametime para que o bot do Watchit envie alertas. Permite que a ferramenta seja separada dos dados do Lotus Sametime que podem mudar ao longo do tempo. Consulte a Listagem 2 para ver um exemplo de arquivo IMEasy.properties. Para desativar a função de alerta (e só registrar a saída), remova o arquivo IMEasy.properties.

Listagem 2. Exemplo de arquivo IMEasy.properties
#Sametime_Notification_Users=User abbreviated name(s) separated by comma
Sametime_Notification_Users=Jim Dewan/ORG1/ORG2/Company
	
#Sametime_Notification_Server=Individual Sametime server or load balancer
Sametime_Notification_Server=stserver7.company.com
#Sametime_login_user=Login user that actually sends the IM
Sametime_login_user=Sametime Monitor 4/ORG1/ORG2/Company
#Sametime_login_pw=password of the login user					
Sametime_login_pw=password
#Sametime_Notification_Group=single group name to notify

Para executar esse plug-in, adicione healthcheck ao valor Plugin_Classes em watchit.properties. Os valores são delimitados por vírgulas; portanto, é possível executar vários plug-ins ao mesmo tempo.

Plugin_Classes=healthchecker -->

Plug-in Awarecheck

O plug-in awarecheck foi projetado para testar a funcionalidade de login, consultas de nomes, conhecimento e mensagens instantâneas do Lotus Sametime. Esse plug-in simula dois usuários, ou dentro da mesma comunidade ou para uma comunidade externa, executando uma rotina de intercâmbio e monitorando constantemente o desempenho e a fidelidade das mensagens. É bom para testar problemas de servidor e de cliente, e várias instâncias desse plug-in podem ser executadas simultaneamente para obter um quadro das conexões de servidor a servidor ou de cliente a servidor.

O bot de awarecheck oferece uma forma simples de iniciar dois encadeamentos, cada um simulando usuários que efetuam login em suas próprias comunidades. Depois que os dois usuários tiverem efetuado login com êxito, o Thread #1 resolve User2 e começa uma brincadeira de pega-pega de IM. São fornecidos números sequenciais para garantir que não ocorra perda de mensagens. Além do "vai e vem" de mensagens instantâneas, o User2 também testa constantemente o conhecimento do User1 para se certificar de que o conhecimento esteja funcionando no ambiente, na comunidade local ou para uma comunidade externa.

O bot recicla os logins de usuário e reinicia a cada 90 minutos por padrão (configuração da propriedade Check_Interval). Se alguma mensagem instantânea for impossível de entregar ou se o bot detecta uma alteração no status do usuário (ou seja, se ele fica off-line), cria-se um encadeamento para informar aos administradores de sistemas, por meio de mensagens instantâneas, de que há uma indisponibilidade no ambiente do Lotus Sametime. Os logs podem ser usados para coletar registros de data e hora específicos nas mensagens de erro para comparar com rastreamentos de rede ou outras informações de log do Lotus Sametime.

O arquivo staware.properties (mostrado na Listagem 3) identifica o seguinte:

  • As informações de login de User1 usadas como mestre para acionar as mensagens instantâneas
  • As informações de login do User2 usadas como "respondedor" das mensagens instantâneas provenientes do mestre
  • Limiares de desempenho para detectar a latência na funcionalidade do Lotus Sametime
Listagem 3. Amostra do arquivo staware.properties
	Check_Interval=30
	Logout_Timeout=5
	IM_Interval=10
	IM_Timeout=10000
	Resolve_Wait_Time=20000
	Login_Wait_Time=20000


	#Sametime user 1
	Sametime_User1=sim user1/ORG1/ORG2/Company
	Sametime_Server1=stserver01.company.com
	Sametime_Pw1=password
	Sametime_Namelookup1=sim user1/ORG1/ORG2/Company

	#Sametime user 2
	Sametime_User2=sim user2/ORG1/ORG2/Company
	Sametime_Pw2=password
	Sametime_Server2=stserver02.company.com
	#Use internet address for Sametime_Namelookupto indicate 
	external user to be tested through GW or SIP
	Sametime_Namelookup2=sim user1/ORG1/ORG2/Company

Para mostrar a saída detalhada das transações do bot, use Debug=true no arquivo staware.properties. Sem Debug definido como true, somente as falhas são registradas no arquivo de log do Watchit. Os alertas são enviados com os dados no arquivo data IMEasy.properties. Essa abordagem vale para todos os plug-ins.

As seções Sametime _User trabalham com os dois usuários que estão trocando mensagens instantâneas e verificando o conhecimento um do outro. O campo Sametime_Namelookup2 é importante e deve ser enfatizado. Esse é o campo que o outro usuário usa para verificar o conhecimento. Se os usuários estão sendo testados em uma conexão de SIP ou gateway a uma comunidade externa, deve-se usar o endereço de Internet. Se os usuários estão em uma comunidade, deve-se usar o nome local. O bot verifica esse campo no User2 para determinar se o User1 precisa tratar o usuário como externo e não chamar o método resolve() para localizar o contato.

O plug-in também emite alertas quando os limiares de desempenho não são cumpridos no ambiente.

Além de registrar falhas de função e emitir alertas, também é possível monitorar e emitir alertas de atrasos de desempenho da mesma forma.

Os limiares de desempenho são definidos como mostra a tabela 1.

Tabela 1. Limiares de desempenho para o plug-in Awarecheck
FunçãoLimiar
Check_Interval=xNúmero de minutos no qual os usuários trocam mensagens instantâneas
Logout_Timeout=xNúmero de minutos que o usuário espera antes de voltar a efetuar login
IM_Interval=xNúmero de segundos a esperar para enviar a próxima mensagem instantânea
IM_Timeout=x Número de milissegundos que é o limiar máximo para a entrega de mensagens instantâneas
Resolve_Wait_Time=x Número de milissegundos que é o limiar máximo para a consulta de usuários
Login_Wait_Time=x Número de milissegundos que é o limite máximo para efetuar login

As informações necessárias de servidor e login do Lotus Sametime são armazenadas no arquivo IMEasy.properties. É nesse arquivo que a ferramenta Watchit armazena as informações de servidor, usuário e senha referentes ao usuário que envia os alertas. A lista de usuários que recebem alertas também se encontra no arquivo IMEasy.properties. Esse arquivo permite que a ferramenta seja separada dos dados do Lotus Sametime que podem mudar ao longo do tempo. Consulte a Figura 1 para ver um exemplo do arquivo IMEasy.properties. Para desativar a função de alerta, remove o arquivo IMEasy.properties.

Para executar esse plug-in, adicione awarecheck ao valor Plugin_Classes em watchit.properties. Os valores são delimitados por vírgulas; portanto, é possível executar vários plug-ins ao mesmo tempo.

Plugin_Classes=healthchecker,awarecheck-->

O plug-in siponewaycheck

O projeto do bot de plug-in siponewaycheck fornece uma forma simples de medir a conectividade, funcional e de rendimento, entre comunidades externas. Funcionalmente, é igual ao plug-in awarecheck descrito anteriormente, mas consegue se comunicar com comunidades que não são do Lotus Sametime ou comunidades externas que não são acessíveis pela rede para o bot propriamente dito. O plug-in simula um encadeamento que efetua login na comunidade local. O usuário externo a ser resolvido precisa efetuar login como um bot de eco no aplicativo externo. O termo bot de eco descreve um bot simples que responde a uma mensagem instantânea com a mensagem original. Depois que os dois usuários tiverem efetuado login com êxito, o Thread #1 resolve User2 e começa uma brincadeira de pega-pega de mensagens. São fornecidos números sequenciais para garantir que não ocorra perda de mensagens.

O bot recicla os logins de usuário e reinicia a cada 90 minutos por padrão. Se alguma mensagem for impossível de entregar ou se os usuários detectam uma alteração no status do usuário (por exemplo: se ele fica off-line), cria-se um encadeamento para informar aos administradores de sistemas, por meio de mensagens instantâneas, de que há uma indisponibilidade no ambiente do Lotus Sametime. Os logs podem ser usados para coletar registros de data e hora específicos nas mensagens de erro para comparar com rastreamentos de rede ou outras informações de log do Lotus Sametime.

O arquivo sipcheck.properties (mostrado na Listagem 4) identifica o seguinte:

  • Informações de login do User1 usadas como mestre para acionar as mensagens
  • Informações do User2 para resolver o usuário remoto implementado como bot de ping na comunidade remota
  • Limiares de desempenho para detectar a latência no Lotus Sametime
Listagem 4. Exemplo de arquivo sipcheck.properties
	Check_Interval=30
	Logout_Timeout=5
	IM_Interval=10
	Login_Timeout=60
	Debug=true
	Check_Interval=60

	#Sametime user 1
	Sametime_User1=stsipbot
	Sametime_Server1=stserver.company.com
	Sametime_Pw1=password
	Sametime_Namelookup1=stsipbot@company.com 

	Sametime_Namelookup2=stsipecho@company_external.com

Para mostrar a saída detalhada das transações do bot, use Debug=true no arquivo staware.properties.

As seções Sametime _User trabalham com os dois usuários que estão trocando mensagens e verificando o conhecimento um do outro. O campo Sametime_Namelookup2 é importante e deve ser enfatizado. Como os usuários estão sendo testados em uma conexão de SIP ou gateway a uma comunidade externa, deve-se usar o endereço de Internet.

Os limiares de desempenho são definidos como mostra a tabela 2.

Tabela 2. Limiares de desempenho para o plug-in siponewaycheck
FunçãoLimiar
Check_Interval=xNúmero de minutos no qual os usuários trocam mensagens
Logout_Timeout=xNúmero de minutos que os usuários esperam antes de voltar a efetuar login
IM_Interval=x Número de segundos a esperar para enviar a próxima mensagem
IM_Timeout=x Número de milissegundos que é o limiar máximo para a entrega de mensagens (roundtrip)
Login_Wait_Time=x Número de milissegundos que é o limite máximo para efetuar login

A entrada User 2 deve ser implementada como um bot de ping que define o seu status como cliente remoto do plug-in. Esse bot pode ser desenvolvido em qualquer comunidade remota.

O pacote do Watchit inclui um exemplo de bot de ping do Lotus Sametime que pode ser usado como bot remoto de eco do Lotus Sametime. É fornecido um bot de eco do Lotus Sametime como exemplo de criação de outra versão de plataforma ou para usar com esse plug-in.

As informações necessárias de servidor e login do Lotus Sametime são armazenadas no arquivo IMEasy.properties. Essa abordagem permite que a ferramenta seja separada dos dados do Lotus Sametime que podem mudar ao longo do tempo. Para desativar a função de alerta, remove o arquivo IMEasy.properties.

Para executar esse plug-in, adicione siponewaycheck ao valor Plugin_Classes em watchit.properties. Os valores são delimitados por vírgulas; portanto, é possível executar vários plug-ins ao mesmo tempo.

Plugin_Classes=healthchecker,awarecheck,siponewaycheck

Notificações enviadas por meio de mensagens instantâneas

Cada plug-in usa a API watchit.sendchats() fornecida junto com a ferramenta Watchit para facilitar e agilizar a entrega de mensagens instantâneas sem precisar de modificações futuras para redefinições de senha, grupo de destino ou usuários ou alterações de nome de servidor. O Apêndice A, “API do Watchit para enviar alertas em IM” documenta a forma de utilização dessa API. A Figura 1 mostra um exemplo de arquivo IMEasy.properties para ressaltar como é possível alterar os valores sem alterar a origem do plug-in ou da ferramenta Watchit como um todo. Cada plug-in usa as mesmas informações de usuário, senha e servidor para enviar qualquer alerta à lista fornecida — tudo isso por meio do arquivo IMEasy.properties.

O exemplo da Figura 1 mostra uma notificação do plug-in healthcheck que monitora a disponibilidade de rede de qualquer recurso de rede. As notificações contêm informações importantes sobre falhas específicas e são enviadas a qualquer usuário ou grupo definido com o diretório. Os logs de histórico do Lotus Sametime também podem ser usados para procurar indisponibilidades anteriores.

Figura 1. Notificação do Lotus Sametime proveniente do plug-in healthcheck
Notificação do Lotus Sametime proveniente do plug-in healthcheck

A saída do healthcheck para a lista de notificações inclui o seguinte:

  • Tempo de indisponibilidade
  • Nome do servidor ou host
  • Número da porta
  • Tipo de exceção (uma das três lançadas pela chamada de abertura do soquete)
  • Razão retornada no campo de texto do objeto Exception

O exemplo mostrado na Figura 2 é o resultado da descoberta, realizada pelo plug-in awarecheck, de um problema de entrega no ambiente de produção. As informações de mensagens de falhas específicas, hora da falha e usuários envolvidos são enviadas a cada administrador, que pode tomar medidas ou investigar o status de servidor dos recursos em questão.

Figura 2. Notificação do Lotus Sametime proveniente do plug-in awarecheck
Notificação do Lotus Sametime proveniente do plug-in awarecheck

Se você está usando clientes baseados no Lotus Sametime Eclipse, também é possível usar o log automático de chat para manter um registro de indisponibilidades em execução. É possível estabelecer chats em grupo a partir da janela de notificação para incluir outros administradores que podem ter idéias sobre o que está errado ou sobre a resolução do problema.

Pré-requisitos da ferramenta

Um dos requisitos do Watchit era a característica de ser o mais leve e portátil possível. Esse requisito significava três coisas:

  1. A capacidade de executar esse aplicativo em qualquer máquina, desde um desktop pequeno até um servidor grande

    • A capacidade de abrir e fechar soquetes para hosts ou servidores remotos é uma operação de rede e não requer muito processamento na imagem que executa o aplicativo.
    • Para realizar a simulação do Lotus Sametime, única coisa necessária do SDK Lotus Sametime Java™ é o arquivo JAR, que vem com esse pacote.
  2. Software mínimo instalado no cliente

    • O único pré-requisito de software do Watchit e estar com o JRE 1.4.2 ou posterior instalado e localizado no caminho.
  3. A capacidade de executar em qualquer sistema operacional

    • Escrito em Java, o Watchit não leva em conta o sistema operacional e pode ser executado praticamente em qualquer lugar. O Java JRE 1.4.2 oferece suporte nativo para vários sistemas operacionais, como Microsoft® Windows®, UNIX®, Linux® e sistemas baseados em host, eliminando a necessidade de componentes de software específicos do sistema operacional no host de monitoramento.

O Watchit é uma ferramenta versátil que pode ser colocada em qualquer ponto da rede e pode monitorar vários aplicativos e recursos disponíveis na rede a partir de um único local. Considere também a possibilidade de colocá-lo na estação de trabalho de um usuário que relata um problema, para proporcionar uma coleta de dados melhor em relação a falhas específicas.

Estrutura e serviços de bot

O bot do Watchit fornece um método simples para criar monitores como plug-ins para estender a funcionalidade da ferramenta, para que ela corresponda a qualquer ambiente de usuário e dê suporte ao mesmo. O bot vem com os três plug-ins descritos anteriormente, mas é igualmente importante entender como estender a funcionalidade com plug-ins customizados.

O bot de Watchit lê o arquivo watchit.properties, criado pelo usuário, para identificar quais plug-ins devem ser iniciados quando se usa a ferramenta. Cada plug-in é um conjunto de arquivos de classe que implementam encadeamentos para realizar tarefas específicas que usam a estrutura de mensagens instantâneas fornecida, enviam alertas em caso de problemas e usam os serviços de registro para fornecer um log integrado da saída do plug-in.

Este é um exemplo de watchit.properties:

# Invoke the healthchecker and awarecheck plugin classes
Plugin_Classes=healthchecker,awarecheck

Quando se usa o bot, essa propriedade é lida e cada classe customizada é executada como um encadeamento do bot principal do Watchit. Os plug-ins de classe personalizada podem usar qualquer kit de ferramentas de API Java ou classe básica de API; sendo assim, as possibilidades de conteúdo desses plug-ins são muito amplas.

O bot do Watchit fornece serviços para o desenvolvedor de plug-ins usar para integrar rapidamente as classes de monitor na estrutura fornecida, dando ao desenvolvedor acesso às classes simples do IMEasy para alertas e uma API de registro para combinar adequadamente toda a saída do bot em um log integrado de atividade. O Apêndice A descreve a estrutura IMEasy. Os serviços de log estão documentados no Apêndice B. O pacote IMEasy, invocado por meio da API watchit.sendchats(), faz com que o envio de um alerta precise somente de poucas linhas de código, e o próprio pacote fornece todas as interfaces de bot necessárias.

A criação do plug-in é simples, e as APIs fornecidas facilitam a criação dos seus próprios alertas de aplicativo. A criação de um plug-in envolve os seguintes passos e requisitos:

A classe customizada que você cria deve realizar (ou fornecer) somente o seguinte para que seja um plug-in para esse bot:

  • Um construtor público padrão; por exemplo:

    public awarecheck()

    Esse nome de classe é a entrada da configuração Plugin_Classes de watchit.properties.

  • Uma compilação com javac -classpath IMEasy.jar;watchit.jar;.;STComm.jar
  • Uma extensão do encadeamento à medida que é executado como um encadeamento do bot; por exemplo:

    public class awarecheck extends Thread

    OBSERVAÇÃO: O bot invoca encadeamentos (lembre-se de que cada plug-in é um encadeamento) somente quando é iniciado; depois que um encadeamento termina, só é reiniciado quando o bot é invocado.

  • Uso da estrutura para alertas a partir do seu monitor

    O método watchit.sendchats() é fornecido como uma chamada de API para enviar todos os alertas referentes a cada plug-in. Também simplifica a tarefa de criação de mensagens.

  • Uso dos arquivos de log fornecidos a partir da classe Watchit (consulte o Apêndice B)

    O Watchit fornece um método estático printall(String) para adicionar entradas de log a Watchit_YYMMDD_HH_MM_SS.log. Todo registro adiciona um registro de data e hora ao log; entretanto, o plug-in é responsável por se identificar no log, pois vários plug-ins gravam no arquivo combinado. Essa abordagem facilita a obtenção de somente algumas informações de plug-in a partir de um log, se você desejar. A convenção usada neste artigo é prefixar a mensagem com o nome de bot fornecido no arquivo watchit.properties.

A extensão da ferramenta Watchit com monitores (plug-ins) deve ser feita para cobrir tarefas organizacionais críticas usando os kits de ferramentas do produto que forem necessários. Os requisitos simples de código e o uso do pacote de IM IMEasy facilitam e agilizam a criação de tudo o que for necessário.

Executando a ferramenta

Há ocasiões em que é melhor executar essa ferramenta somente quando for necessário ou como uma tarefa em segundo plano, e não como um daemon ou tarefa de serviço do Microsoft Windows. Na seção "Download" deste artigo, é possível efetuar o download de um arquivo que contém um shell script de UNIX e DOS para invocar a ferramenta Watchit. Também é possível encapsular essas classes em um serviço do Microsoft Windows ou tarefa de daemon de UNIX, para poder controlar a execução de cada instância.

Para executar o bot do Watchit em primeiro plano no Microsoft Windows, use este código:

watchit.bat

Para executar o bot do Watchit em primeiro plano nos sistemas operacionais do UNIX ou Linux, use este código:

watchit.sh

Usando o pós-processador para visualizar tendências de informações

A ferramenta vem com um script de pós-processamento que requer um shell de UNIX e capacidades de awk. Qualquer sistema operacional UNIX ou Microsoft Windows (que use um simulador de shell de UNIX) pode ser usado para executar a ferramenta de pós-processamento. Para ver informações resumidas sobre uma instância específica, use o script com o log como entrada. Para ver tendências, concatene os arquivos de log e execute um script de processamento na saída combinada.

Para executar o pós-processador, use este código:

(From any unix shell) process_bot_output.sh <logname>

A saída aparece na saída padrão e no arquivo <logname>.out.

A Figura 3 mostra um exemplo de saída do script de pós-processamento process_bot_output.

Figura 3. Saída do script de pós-processamento process_bot_output
Saída do script de pós-processamento process_bot_output

A saída do script de pós-processamento fornece médias de tempos de resposta, total de erros e contagens de limiares de desempenho excedidos. É possível coletar e representar em gráficos os dados resumidos de cada execução ou de execuções combinadas. Essa capacidade fornece contagens de falhas e estatísticas de desempenho referentes ao teste, combinando as perspectivas do Lotus Sametime e da rede.


Onde e quando usar o Watchit

A ferramenta e estrutura Watchit são versáteis como ferramenta de monitoramento proativo contínuo e como um auxílio de serviço que pode coletar dados e reproduzir problemas. A característica de usar as APIs de IM simples documentadas no Apêndice A e fornecidas no arquivo watchit.zip na seção “Download” deste artigo possibilita que essa ferramenta monitore uma implementação inteira a partir de uma única estação de trabalho e alerte instantaneamente qualquer pessoa ou grupo da organização. O seu registro, que produz cronogramas exatos e mensagens de erro recebidas pelos usuários, faz dele uma ferramenta efetiva para coletar dados ou identificar a origem dos problemas. Usada como uma ferramenta flexível de monitoramento voltada para a funcionalidade específica de missão crítica ou como um auxílio de depuração para lidar mais efetivamente com problemas de função ou desempenho, a meta é facilitar a movimentação dessa ferramenta de simulação e monitoramento para colocá-la no ponto de falhas ou de possíveis pontos fracos do ambiente.

Devido aos poucos requisitos de sistema, o Watchit funciona em praticamente todas as estações de trabalho. Esse fato é crítico para a flexibilidade com a qual um administrador pode implementar a capacidade. Qualquer plataforma que suporte Java 1.4.2 e posterior pode suportar várias instâncias do aplicativo, eliminando as limitações referentes ao local onde essa ferramenta pode ser implementada. Pode ser necessário executar uma instância diretamente no sistema de um usuário específico, dependendo da natureza do problema. Seu projeto leve facilita a realização dessa tarefa.

Ao considerar as hipóteses de onde instalar as instâncias do Watchit, deve-se ver a ferramenta como um usuário do qual a equipe de administração gostaria de obter informações primeiro quando houver um problema. É melhor colocá-la no ponto do ambiente onde a conectividade dos usuários é de missão crítica. Ao usar qualquer um dos plug-ins fornecidos ou criados, a ferramenta simula a atividade do usuário e alerta a equipe de administração quando há problemas de desempenho ou função. Quando problemas são relatados e precisam ser depurados, é fácil criar mais instâncias para testar capacidades específicas, conectividade ou funcionalidade.

A próxima questão é decidir quando usar essa ferramenta. Pode ser mais conveniente executar um certo nível de monitoramento em todo o ambiente 24X7. Não há despesas, e esta cobertura fornece o benefício adicional de aproveitar o investimento já feito no Lotus Sametime. Quando ocorrem problemas, é melhor colocar a ferramenta no ponto das falhas para ajudar na coleta de dados. Os logs normalmente são mais confiáveis e detalhados do que qualquer relatório de problema feito pelo usuário. Os erros específicos de cada tarefa são registrados e os resultados de desempenho são coletados, não importando se os problemas são de rendimento lento ou desconexão dos usuários em relação a qualquer servidor ou recurso.

Se a instância regular de monitoramento relatar problemas, é possível estabelecer rapidamente instâncias adicionais para isolar o problema e as permutações de teste. Depois que a instância é estabelecida, é possível usar os logs para identificar erros ou usar os scripts de pós-processamento para identificar tendências de desempenho ou falha em várias execuções da instância.


Conclusão

A capacidade de se tornar mais proativo ao suportar o seu ambiente de produção e aproveitar melhor o seu investimento atual no Lotus Sametime é demonstrada pelo uso prático da ferramenta Watchit. A criação de novos plug-ins usando a estrutura do aplicativo pode fornecer valor adicional modelando as atividades do usuário com kits de ferramentas do produto. O uso inerente da tecnologia de mensagens pode fazer dos aplicativos um recurso importante, porque eles simulam melhor as capacidades de missão crítica e alertam as equipes necessárias instantaneamente.

Por meio dessa ferramenta já existente, da estrutura e dos plug-ins, essa solução fornece um insight melhor em relação à experiência dos usuários, facilitando a coleta de dados e a reprodução de problemas. Esse resultado pode levar a indisponibilidades mais curtas e diminuir o tempo de resolução de problemas abertos. O fato de estar um passo à frente de qualquer problema e dos relatórios de usuários sobre problemas é fundamental para proporcionar um nível de serviço satisfatório para a comunidade de usuários como um todo.

Por que esperar até que os usuários percam tempo duplicando o processo de abrir um bilhete de problema na central de ajuda? Seja mais proativo na abordagem para entender o ambiente de aplicativos e, ao mesmo tempo, aumente a sua capacidade de detectar erros no momento em que ocorrem.


Apêndice A: API do Watchit para enviar alertas

A ferramenta Watchit fornece uma rotina estática que qualquer plug-in pode invocar para enviar alertas em IM com facilidade.

Requisitos: JRE 1.4.2 ou posterior

Cada plug-in compartilha as mesmas informações sobre o usuário definido para enviar os alertas, o servidor no qual se efetua login, a senha e uma lista de destinatários. O compartilhamento é feito com o arquivo IMEasy.properties, que é lido quando as ferramentas chamam a rotina a seguir.

Para enviar o alerta à lista de administradores definida no arquivo IMEasy.properties, pode-se chamar o método sendchats a partir de qualquer plug-in que a ferramenta Watchit esteja executando:

void sendchats(String error_to_im[], int error_index, boolean debug)

Esse código é definido como o método estático da classe watchit.

A mensagem instantânea é enviada depois que o método watchit.sendchats() é chamado a partir de qualquer plug-in.

static synchronized void sendchats(String error_to_im[], int error_index, boolean debug)
	error_to_im	 -  String array containing IM content
	index	 -  # of entries in String array that need to be sent
default is to print all entries (even if empty entries are at the end of the array
in_debug -  turns on verbose logging to stdout
debug issues if IMs are not delivered

Para executar a ferramenta, STComm.jar, IMEasy.jar e IMEasy.properties devem estar localizados no valor de classpath. Os scripts watchit.bat e watchit.sh adicionam automaticamente esses arquivos à execução do aplicativo.

Por exemplo: a Listagem 5 mostra como invocar essa API. Nesse caso, cada plug-in fornece uma API de sendchats que é um wrapper para a API watchit.sendchats().

Listagem 5. Invocando a API
	void sendchats()
	{
		if (!(Disable_IM))
		{
		watchit.sendchats(Errors, error_index,debug);

		if (service_log_failures) 
			Printnow("Date/time of Check: " + loop_time); 

     		

		if (debug)
			Printnow("chat thread is now completed");
		notification_complete=false;
		if (debug)
			Printnow("Alert delivered to user");
		}
		
	}

Apêndice B: API de log fornecida pelo bot de Watchit

Qualquer plug-in de Watchit pode gravar no arquivo de log por meio do uso do método printall da classe watchit.

Para registrar no uso do arquivo de log do watchit: (a partir da classe watchit)

static void printall(String printme)

OBSERVAÇÃO: Tente usar a convenção "NOME DO MONITOR: texto da mensagem". O método adiciona a data e hora. Você adiciona o texto da mensagem.

Por exemplo:

watchit.printall("Network Check: Network Scan Begin");
imprimiria:

07/01/09 12:59:14 Network Check: Network Scan Begin

O arquivo de log é gravado como watchit_YYMMDD_HH_MM_SS.log.


Download

DescriçãoNomeTamanho
Código de amostrawatchit.zip1.8MB

Recursos

Aprender

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Lotus
ArticleID=474936
ArticleTitle=Monitorando disponibilidade, desempenho, infraestrutura e muito mais com o IBM Lotus Sametime
publish-date=03162010