- Adam Bertram
@adbertram
- 6 de abril de 2020, 11:18am EDT
Um dos mais negligenciados ferramentas no Windows é Perfmon, também conhecido como monitor de desempenho. Este utilitário tem muitas habilidades negligenciadas, sendo uma delas a capacidade de alertar sobre várias condições métricas. Neste artigo, exploramos como usar corretamente a capacidade de alerta do Perfmon com um alto uso da CPU.
o que é Perfmon?
disponível desde os primeiros dias do Windows em várias iterações, o Monitor de desempenho está disponível como um snap-in MMC para o Windows destinado a auxiliar no monitoramento do uso do sistema e várias métricas de desempenho. A visualização padrão ao iniciar destaca algumas áreas diferentes e métricas em tempo real.
- Monitor de Desempenho – visualização em tempo Real de métricas
- Conjuntos de Coletores de Dados – Definido de coleta de dados durante um determinado intervalo de tempo
- Relatórios – Como visualizar os dados recolhidos na Conjuntos de Coletores de Dados
Se o Monitor de Desempenho não é iniciado como Administrador, sua utilidade será limitada e você não pode ver os Conjuntos de Recolectores de Dados ou de Relatórios.
Visualizando métricas
quando você clica pela primeira vez no Monitor de desempenho, você verá um gráfico de linha móvel com o padrão %Processor Time
. Isso, por si só, não é muito útil, pois os dados são um valor contínuo e realmente queremos saber se existem condições adversas.
você pode adicionar métricas adicionais a este gráfico, clicando no green plus e adicionando mais métricas. Lembre-se de que a escala de Valores pode não corresponder entre diferentes pontos de dados e, portanto, pode ser de menor uso quando combinada em um único gráfico.
Conjuntos de coletores de dados
dados em tempo Real são úteis, mas não o que estamos procurando. Como, então, alertamos sobre certas condições, neste caso, o alto uso da CPU sustentado ao longo do tempo?
é aqui que entram os conjuntos de coletores de dados. Depois de expandir os conjuntos de coletores de Dados, Clique com o botão direito do mouse em Definido pelo usuário → novo → conjunto de coletores de dados.
você terá a opção de nomear o conjunto e criar o conjunto a partir de um modelo ou criar o conjunto manualmente. Nesse caso, precisamos criar manualmente nossa configuração.
nesse caso, estamos configurando um alerta de contador de desempenho. Isso monitorará um determinado contador e, em seguida, podemos dizer ao alerta para tomar certas ações.
como estamos procurando monitorar a porcentagem total da CPU, é mais importante escolher a métrica correta para monitorar. Aqui estamos escolhendo Processor → _Total clicando em ” Adicionar >>” ao lado da instância selecionada.
um problema é que você obtém todas as métricas _total do processador. Em última análise, queremos apenas a métrica \Processor(_Total)\% Processor Time
. Para remover os outros, Selecione cada um e clique no botão Remover.
infelizmente, a maneira como a remoção funciona, você não pode simplesmente clicar no botão Remover várias vezes, pois move o item selecionado de volta ao topo a cada vez. Selecione cada métrica individualmente e clique em Remover.
precisamos agora dizer ao contador de desempenho em que ponto o alerta deve começar e, neste caso, estamos procurando alertá-lo apenas quando acima 95
.
por fim, salve e feche o conjunto de coletores de dados.
configurando alertas
com nossa configuração padrão fora do caminho, precisamos agora configurar qual ação de alerta ocorrerá. Existem duas maneiras de definir os alertas, ação de alerta e tarefa de alerta. Selecione seu conjunto de coletor de dados de alto uso da CPU definido pelo usuário→, clique com o botão direito do mouse na entrada padrão DataCollector01
e escolha Propriedades.
a maneira mais fácil de começar a monitorar as entradas é navegar até a guia Ação de alerta e clicar na caixa de seleção “Registrar uma entrada no log de eventos do aplicativo”. Você também tem a opção conveniente de iniciar um conjunto de coletores de dados diferente quando os critérios para um alerta forem atendidos. Dessa forma, você pode coletar registros adicionais conforme necessário. Aqui, porém, vamos apenas registrar uma entrada.
configurando uma tarefa de alerta
tudo isso está bem, mas, em última análise, não estamos recebendo um alerta real neste caso, apenas uma nova entrada de log de eventos. Na guia Tarefa de alerta, podemos dizer a esse coletor de dados para iniciar uma tarefa agendada e enviar alguns parâmetros, que podem executar as ações de alerta que quisermos. Para fazer isso funcionar, precisamos fazer duas coisas. Crie o script a ser executado e a própria tarefa agendada.
script de registro
abaixo está um script de registro muito simples. Lemos nas métricas de alerta emitidas pela tarefa de alerta e enviamos esses resultados para um arquivo de log.
HighCPUAlert.ps1
$Date = $args $Threshold = $args $Counter = $args $Value = " {1} {2} | {3}" -F $Date, 'High CPU', $Threshold, $Counter Add-Content -Value $Value -Path 'C:\HighCPUAlert.log'
Tarefa Agendada
Aqui precisamos criar uma tarefa agendada que vai realmente executar o script após a invocação pelo Coletor de Dados. Estamos usando o PowerShell para criar a tarefa agendada e usando o PowerShell 7 como o tempo de execução, conforme indicado pelo executável pwsh.exe
.
$Params = @{ "Action" = New-ScheduledTaskAction -Execute "pwsh.exe" -Argument "-NoProfile -File C:\HighCPUAlert.ps1 $(Arg0)" "Principal" = New-ScheduledTaskPrincipal -UserId "LOCALSERVICE" -LogonType ServiceAccount "Settings" = New-ScheduledTaskSettingsSet } New-ScheduledTask @Params | Register-ScheduledTask 'HighCPUAlert'
até que o PowerShell 7 seja formalmente lançado, o executável pode ser pwsh-preview.exe
.
Configurando a tarefa de alerta
finalmente, precisamos configurar a tarefa de alerta no coletor de dados. Para fazer isso, navegue até as propriedades novamente de DataCollector01
e insira os seguintes detalhes.
citamos os argumentos da tarefa porque eles vêm como strings para PowerShell. Portanto, citando – os, estamos facilitando a separação dos argumentos por índice, ou seja,
$arg
ou$arg
.
depois de clicar em Salvar, você pode ser solicitado a solicitar uma credencial, este deve ser um usuário com acesso de administrador.
executando o coletor de dados
clicando com o botão direito do mouse no conjunto do coletor de Dados, alto uso da CPU e selecionando Iniciar, você iniciará o processo de coleta. Se você monitorar as tarefas agendadas, verá que a tarefa agendada recém-criada é executada periodicamente, dependendo do intervalo de monitoramento e do limite definido.
conclusão
usando as ferramentas de monitoramento integradas do Windows, você pode estruturar algumas soluções de monitoramento úteis e poderosas em torno de utilitários principais e PowerShell. Com essa flexibilidade, você poderá chegar ao fundo de quase qualquer problema que possa ser diagnosticado por meio da coleta de dados métricos!
Adam Bertram é um veterano de mais de 20 anos de TI e um experiente profissional de negócios online. Ele é consultor, Microsoft MVP, blogueiro, treinador, autor publicado e profissional de marketing de conteúdo para várias empresas de tecnologia. Acompanhe os artigos de Adam em adamtheautomator.com, conecte-se no LinkedIn ou siga-o no Twitter em @adbertram.Leia A Biografia Completa ”