O Zabbix é uma ferramenta eficiente de monitoramento e gerência de rede, que permite integração com alguns elementos, nesse tutorial vamos abordar o monitoramento de hosts Windows utilizando o Zabbix e os Contadores de Performanace do Windows (PerfCounter).
Pré-Requisitos:
O único pré-requisito necessário é a instalação do Agente Zabbix no host Windows.
Determinando o que será monitorado:
Nos hosts Windows temos um aplicativo chamado Monitor de Desempenho, ele pode ser acessado através do Menu Iniciar // Executar // perfmon
Neste software podemos facilmente visualizar os Objetos disponíveis e os contadores que cada objeto possui, bem como testar a leitura das informações, visto que determinados contadores só funcionam, por exemplo, se o serviço ao qual ele está relacionado estiver em execução.
Uma maneira prática de obter uma lista destes objetos e seus contadores é através do comando typeperf -qx. Para isso clique no Menu Iniciar // Executar // cmdNa janela de prompt de comando que surgiu digite:
typeperf -qx -o c:\objetos.txt
Este comando vai trazer a lista de todos os contadores instalados, redirecionar a saída através da opção -o, para o arquivo c:\objetos.txt, para outras opções consulte a ajuda, através do comando "typeperf /?".
Agora basta olhar no arquivo gerado as opções disponíveis, escolher o que será monitorado e testar através do Monitor de Desempenho.
Testando a Leitura do Parâmetro via Servidor Zabbix:
A leitura do parametro é feita através do comando zabbix_get -s IP -k perf_counter["\Contador\Objeto"], exatamentamente da mesma maneira que aparece no arquivo gerado (Com espaço, acentos, maiúsculas e minúsculas, símbolos, etc), por exemplo:
zabbix_get -s IP -k perf_counter["\Serviços de Terminal\Sessões Ativas"]
1.000000
zabbix_get -s IP -k perf_counter["\Interface de rede(AMD PCNET Family PCI Ethernet Adapter - Miniporta do agendador de pacotes)\Bytes recebidos/s"]
882.030062
zabbix_get -s IP -k perf_counter["\Interface de rede(AMD PCNET Family PCI Ethernet Adapter - Miniporta do agendador de pacotes)\Bytes recebidos/s"]
882.030062
zabbix_get -s 143.106.113.8 -k perf_counter["\Interface de rede(AMD PCNET Family PCI Ethernet Adapter - Miniporta do agendador de pacotes)\Bytes enviados/s"]
357.157417
Com o resultado destes comandos já dá para determinar o tipo de dados recebido (Integer, Float, Text)
Criação do Item no Zabbix:
357.157417
Com o resultado destes comandos já dá para determinar o tipo de dados recebido (Integer, Float, Text)
Criação do Item no Zabbix:
O item, é um item normal, do tipo "Zabbix Agente", o detalhe está na chave que deve ser a mesma entrada recebida pelo comando perf_counter.
Type: Zabbix Agent
Key: perf_counter["\Interface de rede(AMD PCNET Family PCI Ethernet Adapter - Miniporta do agendador de pacotes)\Bytes recebidos/s"]
Monitorando Hosts Windows com Idiomas Diferentes:
O problema destes contadores e seus objetos é que eles são traduzidos para o idioma do host, neste caso mesmo que eu tenha dois Hosts com o mesmo Sistema Operacional Windows, da mesma Versão, mas em idiomas diferentes, esses contadores e objetos terão nomes diferentes como por exemplo, "\Interface de rede\Bytes recebidos/s" no Host A e "\Network Interface\Bytes Received/Sec" no Host B. Dá para imaginar que isso vai ser um grande problema, por exemplo, se eu administrar um data center com máquinas em diversos idiomas.
Mas este problema está documentado no
Acesse Menu Iniciar // Executar // regedit
Dentro do Editor de Registros, navegue pela estrutura "HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows NT\CurrentVersion\Perflib\", dentro desse diretório teremos dois diretórios:
009 - Relação dos contadores e seus identificadores númericos no Idioma Inglês
016 - Relação dos contadores e seus identificadores númericos no Idioma Português do Brasil
Nesta relação, abrindo o objeto "Counter" encontraremos as seguintes definições:
2176
Serviços de terminal
2180
Sessões ativas
Ou seja se realizarmos a leitura:
zabbix_get -s IP -k perf_counter["\Serviços de Terminal\Sessões Ativas"]
ou
zabbix_get -s IP -k perf_counter["\2176\2180"]
Receberemos a mesma informação, com a vantagem de que no segundo exemplo, podemos usar um único item para monitorar vários hosts de idiomas diferentes.
Dentro do Editor de Registros, navegue pela estrutura "HKEY_LOCAL_MACHINE\SOFTWARE\
009 - Relação dos contadores e seus identificadores númericos no Idioma Inglês
016 - Relação dos contadores e seus identificadores númericos no Idioma Português do Brasil
Nesta relação, abrindo o objeto "Counter" encontraremos as seguintes definições:
2176
Serviços de terminal
2180
Sessões ativas
Ou seja se realizarmos a leitura:
zabbix_get -s IP -k perf_counter["\Serviços de Terminal\Sessões Ativas"]
ou
zabbix_get -s IP -k perf_counter["\2176\2180"]
Receberemos a mesma informação, com a vantagem de que no segundo exemplo, podemos usar um único item para monitorar vários hosts de idiomas diferentes.
4 comentários:
Boa tarde! Estou acompanhando seu artigo. Testei com um 2008 server capturar dados do perfcounter com o comando zabbix_get, e não recolhe dado nenhum. Nem do usando perfcount numerico, nem literal.
zabbix_get -s 172.16.254.245 -k perf_counter["14076"] por exemplo.
Sabe o que pode ser? Grato!
André, me diga uma coisa. Quando criamos uma tela para observação, apresentando o Status de triggers de grupo de host, são mostradas todas as triggers que aquele grupo possui. Existe como separar quais as triggers que serão apresentadas? Por exemplo, as triggers do Uptime de todos os servidores seriam apresentadas em uma tela nível 2, e um processo como o apache seria em uma tela de nível 1, isso para o mesmo host. Isso é possível fazer com o Nagios, porém com o Zabbix não consegui configurar. Existe a possibilidade de fazer esta separação?
Marcus,
Apenas essa chave 14076 me parece incorreta mesmo...
Abraços,
Léo de maneira nativa não..
Existem filtros que podem ser aplicados no momento da visualização, mas criar várias telas de triggers, não...
O que dá para fazer é criar vários mapas, onde uma imagem representa o estado do serviço (Se a trigger está OK ou não).
Abraços,
Postar um comentário