Coleta em massa de vários itens descobertos

1

(Isto é para Zabbix 2.2.2 .)

Eu tenho uma regra de descoberta que pode retornar mais de 100 itens que eu gostaria de monitor. Os dados de cada item podem ser reunidos por um UserParameter invocando um executável separado.

A implementação dessas como verificações passivas ativa o agente zabbix, gerando um processo externo para cada item.

Os dados de todos os itens podem ser facilmente coletados de uma só vez e enviados para o servidor Zabbix em massa (via zabbix_sender ). Eu não sei como implementar isso corretamente. A documentação não responde às perguntas (potencialmente estúpidas) que tenho.

Como posso fazer com que o agente do Zabbix faça uma única chamada externa do meu script de coleta de dados personalizado e envie de volta todos os dados em massa para os mais de 100 itens descobertos, além de não invocar uma ação do lado do cliente para item todos ? O que eu quero evitar é que o agente do Zabbix tente coletar cada item individualmente.

A regra de descoberta tem que criar os itens. Pelo que entendi, cada item resultará no agente zabbix tentando fazer algo para coletar seus dados. Existe uma maneira de evitar isso ou associar um grupo de itens a uma única verificação ativa do lado do cliente?

Parte do que eu não entendo é como os cheques ativos devem seja implementado. Se uma verificação ativa puder enviar de volta um lote de dados de itens, como o item seria definido para esse host (para que o agente não tentasse coletar os dados do item individualmente) e qual item seria definido para invocar a verificação ativa (ou qualquer tipo de item deve ser usado) que faria a coleta de dados real (mas não salvaria os dados em si)? Esta é a verdadeira questão que a documentação não responde por mim. Como o Zabbix pretende que eu implemente verificações ativas ou use o zabbix_sender para enviar atualizações em massa para itens (que o agente tentará reunir por conta própria).

    
por mojo 22.01.2015 / 21:32

1 resposta

2

Conceito básico do Zabbix - um item (check) = um valor. O servidor Zabbix não fornece funcionalidade de analisador para analisar vários valores, portanto, ele deve ser sempre apenas um valor.

Se você quiser retornar mais valor do que usar algumas soluções alternativas, consulte zabbix UserParameter retorne 2 ou mais valores

Exemplo de remetente do Zabbix:

permite a execução de comandos no zabbix-agent e cria um item (ativo ou passivo) para executar seu script:

system.run["myscript.sh > output_for_zabbix_sender.txt; zabbix_sender -s <host_name> -z <zabbix_server> -i output_for_zabbix_sender",nowait]

Ele executará o comando no modo nowait. myscript.sh produz saída no formato:

hostname key1 value1
hostname key2 value2
...

E esta saída é processada (enviada) para o servidor zabbix pelo zabbix_sender. O tipo de item deve ser o trapaceiro do Zabbix, neste caso (zabbix_sender). Eventualmente você não precisa do item system.run, você pode executar o script com zabbix_sender como cron job.

Se você precisa de uma solução de monitoramento perfeita, não se esqueça de lidar com erros, minimizar os IOPs, ...

Você também pode usar o zabbix_sender para descobrir: basta seguir a documentação sobre o formato necessário, por exemplo:

hostname discovery_key {"data":[{"{#ID}": "/"},{"{#ID}":"/usr"},{"{#ID}":"/var"}]}
    
por 22.01.2015 / 22:53