none
Monitorar Consumo de CPU RRS feed

  • Pergunta

  • Bom dia,

    Gostaria de saber se algue conhece algun script que posso deixar rodando no servidor que tenha a tarefa de monitorar o consumo de CPU e avisar quando esse conssumo chegar a 80% enviando um e-mail com o nome da maquina que teve o aumento de CPU.

    Alguem sabe algum jeito de se fazer isso?


    []'s, Maikon Pablo Rodrigues

    sexta-feira, 17 de fevereiro de 2012 12:17

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á,

    Acredito que você pode utilizar o PsList da SysInternals, e colocar a sua saída padrão da forma que você achar melhor, txt, email. Lembrando que o PsList, pode ser utilizado tanto localmente, como remotamente, o que facilita bastante o acompanhamentos dos processos. Junto com o PsList que faz parte do SysInternals, existem outras ferramentas para você finalizar algum processo que esteja agindo de forma estranha.

    Abraços,

    segunda-feira, 20 de fevereiro de 2012 14:50
  •  Eu possuo um script, mas esta me trazendo informações erradas, pois tras processos que não estão com 80% de CPU.

    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 = "xxxx" 
     objMessage.To = "xxxx" 
     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") = x 
     
     '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") = x
     
     'O seu UserID no servidor SMTP
     objMessage.Configuration.Fields.Item _
      ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "backup"
     
     '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") = xx
       
     '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 15:46
  • 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