none
Monitorar Consumo de CPU com Script

    Pergunta

  • Bom Dia

    Eu tenho um script na mão que monitora o uso do CPU usando o WMI, mas ele não esta mostrando o uso de CPU, porque quando eu executo ele, ele trás processos que não estão consumindo mais de 80% de CPU.

    Segue o script que estou usando e se alguem souber aonde estou errando por favor me dizaer?

    strComputer = "Pablo" 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT * FROM Win32_PerfFormattedData_PerfProc_Process where PercentProcessorTime > 80") 


    For Each objItem in colItems 


    if objItem.PercentProcessorTime > 80 Then
     
     Set objMessage = CreateObject("CDO.Message") 
     objMessage.Subject = "Processamento" 
     objMessage.From = "xxx" 
     objMessage.To = "xxx" 
     objMessage.TextBody = "Nome=" & objitem.NAme & " " & objItem.PercentProcessorTime
     
     '==Esta seção fornece as informações de configuração para o servidor SMTP remoto.
     
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
     
     'Nome ou IP do servidor SMTP remoto
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx"
     
     'Tipo de autenticação, NONE, Básico (Base64 encoded), NTLM
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
     
     'O seu UserID no servidor SMTP
     objMessage.Configuration.Fields.Item _
      ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxx"
     
     'Sua senha no servidor SMTP
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxx"
     
     'Porta do servidor (normalmente 25)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = xxx 
       
     'Use SSL para a conexão (falso ou verdadeiro)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
     
     'Tempo limite de conexão em segundos (o tempo máximo CDO tentará estabelecer uma conexão com o servidor SMTP)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
     
     objMessage.Configuration.Fields.Update
     
     '==Fim SMTP remoto seção de configuração do servidor==  
     
     objMessage.Send


    else


     Wscript.Echo "-----------------------------------"


    End if
    next


    []'s, Maikon Pablo Rodrigues

    segunda-feira, 20 de fevereiro de 2012 13:14

Respostas

  • Consegui achar um jeito de monitorar, pegando o processo _Total que especifica o CPU ocioso do servidor se este CPU esta menor que 20, quer dizer que o CPU do servidor esta usando mais de 80% de CPU assim ele envia um e-mail dizendo que o processo tal da maquina tal esta consumindo muito CPU.

    Segue abaixo o Script:

    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfProc_Process where Name = '_Total'") 
    
    For Each objItem in colItems 
    
    if objItem.PercentProcessorTime < 95 Then
     
     Set objMessage = CreateObject("CDO.Message") 
     objMessage.Subject = "Processamento" 
     objMessage.From = "xxx" 
     objMessage.To = "xxx" 
     objMessage.TextBody = "Nome=" & objitem.NAme & " " & objItem.PercentProcessorTime & strComputer
     
     '==Esta seção fornece as informações de configuração para o servidor SMTP remoto.
     
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/sendusing") = xxx 
     
     'Nome ou IP do servidor SMTP remoto
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx"
     
     'Tipo de autenticação, NONE, Básico (Base64 encoded), NTLM
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = xxx
     
     'O seu UserID no servidor SMTP
     objMessage.Configuration.Fields.Item _
      ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxx"
     
     'Sua senha no servidor SMTP
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxx"
     
     'Porta do servidor (normalmente 25)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = xxx
       
     'Use SSL para a conexão (falso ou verdadeiro)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
     
     'Tempo limite de conexão em segundos (o tempo máximo CDO tentará estabelecer uma conexão com o servidor SMTP)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
     
     objMessage.Configuration.Fields.Update
     
     '==Fim SMTP remoto seção de configuração do servidor==  
     
     objMessage.Send
    
    End if
    next

    Obrigado a todos que ajudaram.


    []'s, Maikon Pablo Rodrigues

    • Marcado como Resposta MpR_Pablo quarta-feira, 22 de fevereiro de 2012 12:56
    quarta-feira, 22 de fevereiro de 2012 12:56

Todas as Respostas

  • Olá brother,

    Se entendi bem, você quer monitorar todos os processos com seus respectivos uso de CPU. Certo? Se for isto você pode utilizar o PsList da SysInternals.

    Dá uma olhadinha neste blog

    http://athiago.wordpress.com/2010/09/22/sysinternals-caso-pratico-de-uso-do-pslist/

       

    Neste blog, o autor da uma idéia de como esta ferramenta funciona. Lembrando que ela faz parte da solução SysInternals e é da Microsoft. Então depois de baixar e copiar o PSlist para seu disco, você poderá utilizar a ferramenta pelo seu promot de comando.

    Dá uma olhadinha e vê se é isto que você precisa ok!!!

    Abraços e qualquer dúvida, estamos aqui!

    segunda-feira, 20 de fevereiro de 2012 14:43
  • Gostaria de usar um script mesmo estamos impossibilitado de usar qualquer tipo de programa em nosso servidor.

    []'s, Maikon Pablo Rodrigues

    segunda-feira, 20 de fevereiro de 2012 15:53
  • Consegui achar um jeito de monitorar, pegando o processo _Total que especifica o CPU ocioso do servidor se este CPU esta menor que 20, quer dizer que o CPU do servidor esta usando mais de 80% de CPU assim ele envia um e-mail dizendo que o processo tal da maquina tal esta consumindo muito CPU.

    Segue abaixo o Script:

    strComputer = "." 
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
    Set colItems = objWMIService.ExecQuery( _
        "SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfProc_Process where Name = '_Total'") 
    
    For Each objItem in colItems 
    
    if objItem.PercentProcessorTime < 95 Then
     
     Set objMessage = CreateObject("CDO.Message") 
     objMessage.Subject = "Processamento" 
     objMessage.From = "xxx" 
     objMessage.To = "xxx" 
     objMessage.TextBody = "Nome=" & objitem.NAme & " " & objItem.PercentProcessorTime & strComputer
     
     '==Esta seção fornece as informações de configuração para o servidor SMTP remoto.
     
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/sendusing") = xxx 
     
     'Nome ou IP do servidor SMTP remoto
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xxx"
     
     'Tipo de autenticação, NONE, Básico (Base64 encoded), NTLM
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = xxx
     
     'O seu UserID no servidor SMTP
     objMessage.Configuration.Fields.Item _
      ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "xxx"
     
     'Sua senha no servidor SMTP
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "xxx"
     
     'Porta do servidor (normalmente 25)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = xxx
       
     'Use SSL para a conexão (falso ou verdadeiro)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
     
     'Tempo limite de conexão em segundos (o tempo máximo CDO tentará estabelecer uma conexão com o servidor SMTP)
     objMessage.Configuration.Fields.Item _
     ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
     
     objMessage.Configuration.Fields.Update
     
     '==Fim SMTP remoto seção de configuração do servidor==  
     
     objMessage.Send
    
    End if
    next

    Obrigado a todos que ajudaram.


    []'s, Maikon Pablo Rodrigues

    • Marcado como Resposta MpR_Pablo quarta-feira, 22 de fevereiro de 2012 12:56
    quarta-feira, 22 de fevereiro de 2012 12:56