Zabbix

Como monitorar uso de CPU individualmente no Zabbix

Neste tutorial, irei demonstrar como monitorar CPU no Zabbix individualmente em um host Windows, por padrão, o Zabbix possui o template “Template OS Windows” que possui 3 itens de monitoramento de CPU:

  • Processor load (1 min average) – chave: system.cpu.load[percpu,avg1]
  • Processor load (5 min average) – chave: system.cpu.load[percpu,avg5]
  • Processor load (15 min average) – chave: system.cpu.load[percpu,avg15]

Esses itens retornam uma média de valores sobre o total de CPU do host e não individual. Esse tutorial vai criar item de monitoramento para a utilização de CPU (CPU Time), que é diferente do load CPU.

O processor load, load CPU ou load average é o número de processos enfileirados para execução. O valor é o Load dividido pela quantidade de CPUs. Se o valor fracionado está entre 0 (zero) e 1 (um), então todos os processos estão em execução e não há fila de espera para processamento, se o valor estiver acima de 1 (um), então há processos aguardando na fila e isso é um mal sinal, indicando que precisa de mais poder de processamento.

Segundo a Wikipedia:

Load CPU: In UNIX computing, the system load is a measure of the amount of computational work that a computer system performs. The load average represents the average system load over a period of time. It conventionally appears in the form of three numbers which represent the system load during the last one-, five-, and fifteen-minute periods.

CPU Time: CPU time (or process time) is the amount of time for which a central processing unit (CPU) was used for processing instructions of a computer program or operating system, as opposed to, for example, waiting for input/output (I/O) operations or entering low-power (idle) mode. The CPU time is measured in clock ticks or seconds. Often, it is useful to measure CPU time as a percentage of the CPU’s capacity, which is called the CPU usage.

 

Como monitorar CPU no Zabbix individualmente

Estou usando o Zabbix Server versão 3.2.4 em um Linux CentOS e monitorando hosts Windows através do Zabbix Agent versão 3.2.0.

Para monitorar percentualmente a utilização de CPU individualmente, podemos criar um item de discover pelo Agent Zabbix e para cada CPU descoberta (chave: system.cpu.discovery), criamos um item de monitoramento de utilização percentual de CPU (chave: system.cpu.util).

 

Passo 1: Criar regra de descoberta no template “Template OS Windows”

Aproveitando o template “Template OS Windows”, nós clicamos em “Regras de descoberta” e depois “Criar regra de descoberta”.

Configuração -> Templates -> Template OS Windows -> Regras de Descoberta -> Criar regra de descoberta

 

Criei a regra de descoberta:

  • Nome sugestivo: CPU core discovery
  • Tipo: Agente Zabbix
  • Chave: system.cpu.discovery (suportado a partir do Zabbix Agent 2.4)
  • Intervalo atualização (em seg): 3600 (1h)

 

Passo 2: Criar protótipo de itens para a regra “CPU core discovery”

Quando se usa a chave “system.cpu.discovery” para fazer a descoberta de CPUs, é retornada uma lista com 2 macros: {#CPU.NUMBER} e {#CPU.STATUS}. Utilizei a macro {#CPU.NUMBER}, no nome e no parâmetro da chave para criação dos itens.

Configuração -> Templates -> Template OS Windows -> Lista de descoberta -> CPU core discovery -> Protótipos de itens

  • Nome sugestivo: Processor user time (1 min average) on CPU {#CPU.NUMBER}
  • Tipo: Agente Zabbix
  • Chave: system.cpu.util[{#CPU.NUMBER}]
  • Tipo de informação: Numérico (fracionário)
  • Aplicações: CPU

 

 

Passo 3: Criar protótipo de trigger para a “CPU core discovery”

Da mesma maneira que se cria o protótipo de item, é possível criar o protótipo de trigger para esse item. No exemplo abaixo, criei uma trigger que dispara quando a média do percentual de utilização da CPU ficar acima de 99% durante 15 min. É possível criar a regra mais adequada a sua necessidade com o construtor de expressão do Zabbix.

  • Nome sugestivo: CPU {#CPU.NUMBER} user time is too high on {HOST.NAME}
  • Severidade: Alta
  • Expressão: {Template OS Windows:system.cpu.util[{#CPU.NUMBER}].avg(15m)}>99

 

Agora é só adicionar o “Template OS Windows” em um host para ele fazer o descobrimento das CPUs e começar a monitorar a utilização de CPU individualmente.

 


 

Conheça os cursos de Zabbix:

 

Compartilhe
  • 1
  •  
  •  
  •  
  •  
  •  
  •  
  •  
    1
    Share