Monitorando serviços usando o perfmon

4

Lutando para encontrar os contadores para obter o status de um serviço usando o perfmon. É mesmo possível? Precisamos monitorar o status de um serviço no Nagios, mas o único acesso remoto disponível é através do Perfmon.

    
por Unfortunate 25.10.2011 / 12:57

4 respostas

1

Não há contadores de desempenho para serviços. Para um tipo de ação única, você pode monitorar os contadores do processo que seu serviço está invocando - por exemplo, os bytes privados do processo ou o número de encadeamentos.

Como o ID do processo vai mudar a cada reinicialização, você precisará ajustar seu monitoramento de acordo. Mas funcionará como um rápido & solução suja, a menos que você tenha algo mais robusto no lugar.

    
por 25.10.2011 / 17:35
0

O Monitor de Desempenho é usado para medir as métricas do desempenho de suas máquinas, e não o status de um serviço.

Embora eu saiba que você está procurando monitorar esse status no Perfmon, não acho que seja a ferramenta certa para você. Se você puder entrar em services.msc , poderá navegar até a guia "Recuperação" desse serviço. A partir daqui, você pode escolher como o servidor reage a diferentes estados em que o serviço pode estar. Por exemplo, você pode optar por reiniciar o serviço na primeira falha e executar um script que o envia por e-mail na segunda e terceira falhas. serviço, etc.

    
por 25.10.2011 / 14:53
0

Você pode facilmente escrever scripts de powershell (ou mesmo codelets C # pequenos) que criam contadores de desempenho personalizados do Windows. Nessas, você pode introduzir quaisquer dados que escolher (como um indicador de status de serviço numérico?), Em qualquer intervalo que pareça adequado, o que é útil quando perfmon é a única maneira fácil de exportar dados (eu tive o mesmo problema bizarro uma vez, mas foi um aplicação de monitoramento diferente do Nagios).

Infelizmente, estou de férias e só tenho esse iphone insignificante, então acho que vou ter que voltar e colar um script de exemplo quando puder.

Você pode rapidamente e facilmente google uma tonelada de soluções powershell / C #, porém, é assim que eu descobri quando eu mais ou menos precisava. Ainda assim, eu acho que você teria que encontrar uma maneira de fazer isso, o que pode passar por esse ciclo de 6 meses de qa.

    
por 22.06.2015 / 19:35
0

Para alguém que se depara com isso no futuro, você pode obter um status 1/0 usando o seguinte:

PowerShell

(Get-Service MSSQL'$SQLEXPRESS | Where-Object -Property Status -eq Running | Measure).count

CMD

sc query "MSSQL$SQLEXPRESS" | FIND /i "RUNNING" /c
    
por 08.02.2016 / 11:16