Monitoramento do aplicativo Zabbix

1

Operamos um negócio SAAS e temos centenas de processos que podem ser transferidos de um servidor para outro. Eles são processos .net que podem ser criados (iniciados) em qualquer um de um banco de máquinas, executados por um período de tempo (normalmente semanas) e depois migrados para outra máquina.

Esses processos têm várias saídas de séries temporais diferentes (que são transmitidas usando o RabbitMQ) e nós temos nosso próprio sistema sob medida para monitorar os processos de aplicativos.

Temos uma variedade de ferramentas de monitoramento (por exemplo, o LogicMonitor), mas estamos começando a usar o Zabbix para monitoramento do servidor.

Faz sentido para mim colocar todos os dados de séries temporais de todas as fontes (switches, servidores, hosts, VMs, aplicativos) em um único local, pois podemos comparar os dados do servidor (por exemplo, carga da CPU, carga da memória ).

Estou pensando em usar o Zabbix para isso.

Eu posso ver que o Zabbix suporta o envio de dados de séries temporais usando o link . Então eu sei que posso obter dados.

Estou lutando para entender como configurar o Zabbix, pois o Zabbix é centralizado no servidor, com chaves para cada dado da série temporal. Mas espero que este seja um cenário comum, mas sou novo no Zabbix.

Eu imagino uma hierarquia ao longo das seguintes linhas:

DataCenter (1 of n)
-> Rack (1 of n)
    keys (eg power used)  
   -> Physical Machine (1 of n) "The hosts"
       keys (eg CPU, Memory, Network Bandwidth)
      -> VM (1 of n) 
          keys (eg CPU, Memory, Network Bandwidth)    
          -> Application
             keys (eg CPU, Memory, Network Bandwidth, Jobs per second etc) 

Isso é algo que o Zabbix suporta? Pensei em talvez usar uma convenção de nomenclatura para o host ou chaves, mas parece que estou fazendo algo errado.

    
por Daniel James Bryars 09.12.2015 / 07:36

1 resposta

2

Como você mencionou, o Zabbix é projetado para hosts / servidores e chaves, portanto, como uma primeira etapa para modelar sua hierarquia, você poderia criar hosts para cada VM e usar grupos de host conforme necessário para datacenters ou racks.

O Zabbix não possui suporte embutido para clusters ou aplicativos de roaming. Para monitorar aqueles que eu geralmente crio "meta-hosts", basicamente esvazio as entradas do host sem nenhum agente. Então eu uso algum script de monitoramento para enviar itens do trapaceiro zabbix para aquele host.

Por exemplo: usando três VMs app1, app2, app3 com monitoramento normal do sistema (CPU, memória), além de um serviço "meta-host" 1 com meu modelo de aplicativo. Em seguida, ter meu aplicativo de roaming envia dados de monitoramento com zabbix_sender -z zabbixserver -s service1 -k service.some.stat -o 42 (ou a chamada de biblioteca equivalente para a linguagem de programação).

Como resultado, terei estatísticas do sistema para todas as VMs e estatísticas contínuas do aplicativo, em vez de estatísticas de aplicativos intermitentes distribuídas em três VMs.

    
por 09.12.2015 / 09:33