Watchdog

O Watchdog é um uma ferramenta opcional do Action.NET. Ele é responsável por monitorar a “saúde” do computador e do servidor Action.NET. Ele também possui um plano de contingência para tomada de ações em caso de detecção problemas.

 

Arquitetura

O Watchdog foi projetado para ser executado em cada servidor. Podendo ser utilizado em uma arquitetura com um ou mais servidores. Cada servidor executará uma instância do Watchdog, comunicando com o servidor Action.NET em execução e obtendo informações do servidor e computador local. Em arquitetura hot stanby, os Watchdogs em ambos servidores trocam informações entre si pela porta TCP 65001. Essa comunicação é feita pela camada TCP/IP e é realizado uma troca de mensagens de requisição e resposta em formato JSON. Essa arquitetura é representada pela Figura 1.

 

Configuração

O aplicativo encontra-se dentro do diretório da versão do Action.Net instalado. Por exemplo, para a versão 9.1 do Action.net, pode-se encontrá-lo em “C:\Program Files (x86)\SPIN\Action.Net\an-9.1\”.

Ao optar pelo uso da ferramenta. A inicialização e o encerramento do Action.NET deve ser feito por ela. Criações de atalhos no Windows ficam por conta do usuário. Antes do uso, algumas das seguintes configurações no Projeto e no Watchdog são necessárias.

Projeto Action.Net

O projeto precisa possuir o script, que é responsável por transacionar as informações entre o Action.NET e o Watchdog. O script deve ser executado por uma Task em um período específico. Segue o passo-a-passo de parametrização do projeto para a versão 9.1:

  1. Acesse o menu Run > Build > References.

  2. Adicione referência a DLL Newtonsoft.Json com os parâmetros:
    Domain: Server
    Path: C:\Program Files (x86)\SPIN\Action.NET\an-9.1\Newtonsoft.Json.dll

  3. Adicione referência a DLL Watchdog.Protocol com os parâmetros:
    Domain: Server
    Path: C:\Program Files (x86)\SPIN\Action.NET\an-9.1\Watchdog.Protocol.dll

  4. Acesse o menu Edit > Script > Class.

  5. Crie uma classe com os parâmetros:
    Name: Watchdog
    Code: CSharp
    Domain: Server
    Script: Copie e cole o código do script encontrado em:
    C:\Program Files (x86)\SPIN\Action.NET\an-9.1\Action.NET Watchdog - Script.txt

  6. Acesse o menu Edit > Script > Tasks.

  7. Crie uma task com os parâmetros:
    Name: Watchdog
    Code: CSharp
    Period: 00:00:05
    Domain: Server
    Script: @Script.Class.Watchdog.Handler();

Watchdog

O Watchdog possui uma tela de configuração (Ver Figura 2). Nela o usuário deve parametrizar de acordo com a necessidade do projeto e hardware do computador.
Para salvar qualquer alteração na configuração é necessário clicar no botão Save localizado no canto inferior direito da tela.

Tela de configuração do Watchdog

Para a parametrização de Alarm Tags, as mesmas devem ser criadas no projeto e associadas a um alarme. Assim o Action.NET sinalizará ao operador, na tela de Alarmes ou Eventos, que existe um problema no servidor. Os alarmes normalizados recebem valor 0 e quando houver problema um valor maior que 0 (Detalhado na tabela a seguir).

Watchdog

Reboot Process

Shutdown Command Timeout

Período máximo de espera em segundos para o término da execução do comando server shutdown.

Kill Timeout

Período máximo de espera em segundos para o término da execução do comando kill nos processos do Action.NET

Start Timeout

Período máximo de espera em segundos para a inicialização do Action.NET

Tools

Auto Memory Cleanup

Habilita a limpeza automática de memória RAM.

Log Computer Data

Habilita a geração de log de dados coletados do computador a cada X minutos. Os logs são salvos em: C:\Action.NET\Projects\Logs\Computer-DD-MM-YYYY.json

Log Protocol Packages

Mostra na janela de Log os pacotes enviados e recebidos por protocolo.

Computer

CPU Usage

Alarm Tag

Nome da Tag de alarme do tipo digital cadastrada no Action.NET, que receberá os valores 0 ou valor de uso do processador, para geração de alerta.

Max

Porcentagem máxima do uso da CPU do computador.

Timeout

Período máximo de espera em segundos para que o valor máximo de uso de CPU diminua. Se houver o estouro desse período, a Alarm Tag receberá valor de uso do processador, caso contrário 0.

Disk Usage

Alarm Tag

Nome da Tag de alarme do tipo digital cadastrada no Action.NET, que receberá os valores 0 ou valor de uso do disco rígido, para geração de alerta.

Max

Porcentagem máxima do uso de disco do computador.

Timeout

Período máximo de espera em segundos para que o valor máximo de uso de disco diminua. Se houver o estouro desse período, a Alarm Tag receberá valor de uso do disco rígido, caso contrário 0.

Memory Usage

Alarm Tag

Nome da Tag de alarme do tipo digital cadastrada no Action.NET, que receberá os valores 0 ou valor de uso da memória RAM, para geração de alerta.

Max

Porcentagem máxima do uso de memória do computador.

Timeout

Período máximo de espera em segundos para que o valor máximo de uso de memória diminua. Se houver o estouro desse período, a Alarm Tag receberá valor de uso da memória RAM, caso contrário 0.

Network Offline

Alarm Tag

Nome da Tag de alarme do tipo digital cadastrada no Action.NET, que receberá os valores 0 ou 1, para geração de alerta.

Timeout

Período máximo de espera em segundos para que a rede entre os servidores volte a ficar online. Se houver o estouro desse período, a Alarm Tag receberá valor 1, caso contrário 0.

Action.NET

Server

Root Path

Diretório de instalação do Action.NET

Version Path

Diretório de instalação da versão do Action.NET

Retentive File

Caminho do arquivo retentive à ser excluído. Deixe em branco caso, não haja necessidade de exclusão do arquivo retentive. Este arquivo é responsável por armazenar os últimos valores de Tags com essa funcionalidade ativa.

Startup Arguments

Argumentos de inicialização do servidor do Action.NET

Primary

Local

Indica que este é o servidor primário do Action.NET. Assinale essa opção se o computador é o servidor primário.

Hostname

Nome do computador do servidor primário do Action.NET

Communication Timeout

Período máximo de espera em segundos para que ocorra uma comunicação entre o Watchdog e o servidor primário do Action.NET

Secondary

Local

Indica que este é o servidor secundário do Action.NET. Assinale essa opção se o computador é o servidor secundário.

Hostname

Nome do computador do servidor secundário do Action.NET. Caso não exista, deixe em branco.

Communication Timeout

Período máximo de espera em segundos para que ocorra uma comunicação entre o Watchdog e o servidor secundário do Action.NET. Caso não exista, deixe em 0.

Issues

Core Modules Offline

Alarm Tag

Nome da Tag de alarme do tipo inteiro cadastrada no Action.NET, que receberá o valor cadastrado no alarm timeout. Assim o usuário poderá cadastrar uma mensagem customizada indicando quanto tempo foi aguardado antes da geração do alarme.

Alarm Timeout

Período máximo de espera em segundos para que que a quantidade de módulos principais online se restabeleça ao valor normal. Se houver o estouro desse período, a Alarm Tag receberá valor do período máximo, caso contrário 0.

Timeout

Período máximo de espera em segundos para que que a quantidade de módulos principais online se restabeleça ao valor normal. Se houver o estouro desse período, o Action.NET do servidor local será reiniciado.

Hot Standby Communication

Alarm Tag

Nome da Tag de alarme do tipo inteiro cadastrada no Action.NET, que receberá o valor cadastrado no alarm timeout. Assim o usuário poderá cadastrar uma mensagem customizada indicando quanto tempo foi aguardado antes da geração do alarme.

Alarm Timeout

Período máximo de espera em segundos para que que a arquitetura hot standby volte ao funcionamento normal, que consiste em um servidor ativo e o outro em standby. Se houver o estouro desse período, a Alarm Tag receberá valor do período máximo, caso contrário 0.

Timeout

Período máximo de espera em segundos para que que a arquitetura hot standby volte ao funcionamento normal, que consiste em um servidor ativo e o outro em standby. Se houver o estouro desse período, o Action.NET do servidor local e remoto serão reiniciados.

Memory Overflow

Alarm Tag

Nome da Tag de alarme do tipo inteiro cadastrada no Action.NET, que receberá o valor cadastrado no alarm. Assim o usuário poderá cadastrar uma mensagem customizada indicando quantos estouros de memória ocorreram antes da geração do alarme.

Alarm

Quantidade de estouros de memória para que o alarme seja gerado. A Alarm Tag receberá valor da quantidade de estouros. A quantidade de estouros é cumulativa e só é zerada na reinicialização do Action.NET do servidor local pelo Watchdog.

Max

Quantidade máxima de estouros de memória. Se houver o estouro desse valor, o Action.NET do servidor local será reiniciado.

Memory Usage

Alarm Tag

Nome da Tag de alarme do tipo inteiro cadastrada no Action.NET, que receberá o valor cadastrado no alarm. Assim o usuário poderá cadastrar uma mensagem customizada indicando quantos megabytes de consumo da memória já foram atingidos pelo servidor local do Action.NET antes da geração do alarme.

Alarm

Quantidade de megabytes consumidos de memória do servidor local do Action.NET para que o alarme seja gerado. A Alarm Tag receberá valor do consumo de memória em megabytes.

Max

Quantidade máxima de consumo em megabytes pelo servidor local do Action.NET.

Timeout

Período máximo de espera em segundos para que que o consumo máximo de memória se reduza. Se houver o estouro desse período, o Action.NET do servidor local será reiniciado.

No Communication

Timeout

Período máximo de espera em segundos para que que o servido local do Action.NET volte a comunicar com o Watchdog. Se houver o estouro desse período, o Action.NET do servidor local será reiniciado.

Offline

Timeout

 

Período máximo de espera em segundos para que que o servido local do Action.NET esteja online. Se houver o estouro desse período, o Action.NET do servidor local será reiniciado.

Funcionalidades

Tela de monitoramento

O Watchdog possui uma tela de monitoramento (Ver Figura 3). Ela tem como finalidade apresentar um log em tempo real e informações importante coletadas do computador e dos servidores primário e secundário do Action.NET.

 

Computador

  • OS – Sistema operacional com a versão e build.

  • Uptime – Tempo em operação.

  • Disk – Capacidade e uso do disco rígido.

  • Memory – Capacidade e uso da memória RAM.

  • CPU – Quantidade de núcleos físicos/lógicos e uso do processador.

  • Action.NET – Informações sobre o servidor Action.NET em execução.

    • Status (Online ou Offline)

    • Tempo em operação

    • Uso de memória e o limite máximo definido na configuração.

    • Quantidade de estouro de memórias e o limite máximo definido na configuração.

  • .NET Frameworks – Lista das versões do Microsoft .NET Framework instalados.

Primary / Secondary Servers

  • IPv4 / IPv6 Addresses: Lista de IP’s encontrados para comunicação com o servidor.

  • Version: Versão do Action.NET em execução no servidor.

  • Alarm Module - Status (Online ou Offline) do modulo de alarmes do Action.NET no servidor.

  • Historian Module - Status (Online ou Offline) do modulo de histórico do Action.NET no servidor.

  • Device Module - Status (Online ou Offline) do modulo de dispositivos do Action.NET no servidor.

  • Log - Mostra em tempo real mensagens de log coloridas por tipo.

    • Debug – Depuração.

    • Information – Informações.

    • Warning – Avisos.

    • Error – Erros.

  • Watchdog Uptime – Tempo em operação do Watchdog.

Start – Botão para inicializar manualmente o Action.NET.
Shutdown – Botão para desligar manualmente o Action.NET e o Watchdog.

O Watchdog possui um ícone na bandeja do sistema, que fica localizado no canto inferior direito da área de trabalho do computador. Ao clicar duas vezes com o botão esquerdo do mouse, o Watchdog fica visível ou invisível. Ao clicar com o botão direito do mouse o menu abaixo é aberto.

  • Hide / Show - Esconde / restaura a janela do Watchdog no Windows

  • Memory Cleanup - Efetua manualmente a limpeza da memória

  • Kill - Encerra o Watchdog manualmente

Log

O Watchdog utiliza um sistema de registro de LOG em arquivo de texto e em evento do Windows. Existem quatro tipos de mensagem: Debug, Info, Warning e Error:

  • Debug - Mensagens em nível mais baixo. Utilizada quando necessita-se identificar com mais detalhes cada processo. Geralmente utilizada por desenvolvedores, testadores e integradores;

  • Info - Mensagens de informações importantes para acompanhamento do funcionamento do Módulo de comunicação;

  • Warning - Mensagens de aviso, as quais podem ser ignoradas ou necessitam ser verificadas; e

  • Error - Mensagens de erro, que não podem ser ignoradas e necessitam de atenção e correção imediata para o funcionamento correto.

O arquivo de configuração (Action.NET Watchdog.exe.config) encontra-se no mesmo diretório do executável. Ele possui uma sessão de LOG (Ver Figura 5). Essa sessão é configurável e como referência utiliza-se a documentação em: https://logging.apache.org/log4net/release/config-examples.html

A configuração padrão está definida para armazenar em (C:\Action.NET\Projects\Logs) um máximo de 60 arquivos, cada um com tamanho máximo de 35 Megabytes. A cada ciclo de dia um arquivo é criado, caso o mesmo não tenha ultrapassado o tamanho máximo. Caso, esse tamanho seja ultrapassado uma vez. Uma cópia do arquivo do dia com final .1 será criada e será criado um outro novo arquivo. Se o estouro se repetir no mesmo dia. O arquivo novo substitui a cópia e é iniciado um novo arquivo. Se não, um novo ciclo de arquivo diário é criado. Sendo assim, cada nó poderá armazenar aproximadamente 2152 Megabytes em disco.

Plano de contingência

A tabela abaixo elucida as medidas tomadas em caso de detecção de problemas. Todos os problemas são analisados com uma margem de tempo máximo esperado (timeout). A geração dos alarmes e a ação corretiva são executadas quando há um estouro do tempo máximo configurado. Caso haja uma normalização, os alarmes recebem valor 0 e nenhuma ação corretiva é executada. Essas configurações são parametrizadas na tela de configuração do Watchdog.

Computador

Problema

Config

Alerta

Ação corretiva

Uso de CPU acima do valor máximo configurado

CPU Usage

Alarme é gerado na tag configurada

Nenhuma

Uso de disco rígido acima do valor máximo configurado

Disk Usage

Alarme é gerado na tag configurada

Nenhuma

Uso de memória RAM acima do valor máximo configurado

Memory Usage

Alarme é gerado na tag configurada

Nenhuma

Rede offline entre os servidores primário e secundário. Não há uma resposta por comando PING.

Network Offline

Alarme é gerado na tag configurada

Nenhuma

Action.NET

Problema

Config (Issue)

Alerta

Ação corretiva

Quantidade módulos principais online difere da quantidade definida após 30 minutos online

Core Modules Offline

Alarme é gerado na tag configurada

Reinicialização do servidor local do Action.NET

Em arquitetura Hot Standby, ambos servidores estão online e comunicando.

Hot Standby Communication

Alarme é gerado na tag configurada

Reinicialização do Action.NET em ambos servidores

O uso de memória do servidor do Action.NET ultrapassa o máximo permitido. Um estouro de memória é contabilizado.

Memory Usage

Alarme é gerado na tag configurada

Reinicialização do servidor local do Action.NET

A quantidade de estouros de memória do servidor do Action.NET ultrapassa o máximo permitido

Memory Overflow

Alarme é gerado na tag configurada

Reinicialização do servidor local do Action.NET

Não há comunicação entre o Watchdog e o servidor do Action.NET

No Communication

Nenhum

Reinicialização do servidor local do Action.NET

O servidor local do Action.NET não está em execução

Offline

Nenhum

 

 

Nesta página: