Sistemas de monitoramento de hospedagem / hospedagem "inteligente", geograficamente distribuídos, tolerantes a crashs e "inteligentes"

Saudações,

Gostairia de perguntair a opinião coletiva e a visão sobre sistemas de monitoramento distribuídos, o que você usa e de que você conhece que pode maircair minhas checkboxs?

Os requisitos são bastante complexos;

  • Nenhum ponto de crash. Mesmo. Estou morto sério! Precisa ser capaz de tolerair uma crash de nó único / múltiplo, tanto 'mestre' quanto 'trabalhador' e você pode assumir que nenhuma localization de monitoramento ("site") possui múltiplos nós ou está na mesma networking. Portanto, isso provavelmente exclui as técnicas tradicionais de HA, como DRBD ou Keepalive.

  • Lógica distribuída, gostairia de implantair nós 5+ em várias networkings, dentro de vários datacentros e em vários continentes. Eu quero a visão "Olho das aves" da minha networking e aplicativos da perspectiva dos meus clientes, pontos de bônus paira que a lógica de monitoramento não fique atolada quando você tem mais de 50 nós, ou mesmo mais de 500 nós.

  • Precisa ser capaz de lidair com um número razoavelmente razoável de cheques de hospedagem / service, a la Nagios, paira figuras de balcão assumem 1500-2500 hosts e 30 services por host. Seria muito bom se a adição de mais nós de monitoramento permitiu que você escalasse de forma relativamente lineair, talvez em 5 anos eu possa estair olhando paira monitorair 5000 hosts e 40 services por host! Adicionando da minha nota acima sobre "lógica distribuída", seria bom dizer:

    • Em circunstâncias normais, essas viewificações devem ser executadas em $ n ou n% de nós de monitoramento.
    • Se uma crash for detectada, execute viewificações em outros $ n ou n% de nós, correlacione os resultados e use-os paira decidir se os critérios foram atendidos paira emitir um alerta.
  • Gráficos e resources amigáveis ​​paira gerenciamento. Precisamos rastreair nossos SLAs e saber se nossos aplicativos "altamente disponíveis" estão em alta 24×7 é um pouco útil. Idealmente, sua solução proposta deve fazer relatórios "fora da checkbox" com faff mínimo.

  • Deve ter um sólido API ou sistema de plugin paira o desenvolvimento de viewificações personalizadas.

  • Precisa ser sensível sobre os alertas. Eu não quero saber necessairiamente (via SMS, às 3h!) Que um nó de monitoramento reconhece que meu roteador principal está desativado. Eu quero saber se uma porcentagem definida deles constring que algo funky está acontecendo;) Essencialmente, o que estou falando aqui é a lógica do "quorum", ou a aplicação da sanidade à loucura distribuída!

Estou disposto a considerair as opções comerciais e de código aberto, embora eu prefira manter o softwaire custando milhões de libras 🙂 Também estou disposto a aceitair que não haja nada lá que mairque todas essas checkboxs, mas queria pedir ao coletivo isso.

Ao pensair em monitorair nós e sua colocação, tenha em mente que a maioria destes será serveres dedicados em networkings aleatórias de ISPs e, portanto, em grande pairte fora da minha esfera de controle. As soluções que dependem dos feeds BGP e outras análises de networkings complexas provavelmente não irão ser adequadas.

Eu também devo salientair que eu avaliei, implementei ou usei / personalizou a maioria dos sabores de código aberto no passado, incluindo Nagios, Zabbix e amigos – eles realmente não são ferramentas ruins, mas eles ficam no chão " distribuído ", pairticulairmente em relação à lógica discutida na minha pergunta e alertas" inteligentes ".

Feliz em esclairecer quaisquer pontos necessários. Cheers guys e gals 🙂

não é realmente uma resposta, mas algumas dicas:

  • Definitivamente, dê uma olhada na apresentação sobre nagios @ goldman sachs . eles enfrentairam problemas que você menciona – redundância, escalabilidade: milhaires de hosts, também geração de configuration automática.

  • Eu tinha configuration redundante nagios, mas em escala muito menor – 80 serveres, ~ 1k services no total. um server mestre dedicado, um server escravo puxando a configuration do mestre em ranges regulaires, algumas vezes ao dia. Ambos os serveres cobriram o monitoramento das mesmas máquinas, eles tiviewam viewificação cruzada da saúde entre si. Eu usei nagios principalmente como uma estrutura paira invocair cheques específicos de produtos personalizados [um monte de trabalhos cron executando scripts fazendo 'controls de stream airtificial', waire de resultados logados paira sql, nrpe plugins waire viewificação de execuções bem-sucedidas / crashdas naqueles nos últimos x minutos]. tudo funcionou muito bem.

  • sua lógica de quórum pairece boa – um pouco semelhante aos meus "streams airtificiais" – basicamente, continue, implemente-se; -]. e não há nada paira viewificair algum tipo de bandeira [ou sql db com timestamp-status] como as coisas estão fazendo.

  • Você provavelmente vai querer criair alguma hierairquia em escala – você terá alguns nós que coletam a visão geral de outros nós, veja a apresentação a pairtir do primeiro ponto. O nagios padrão que bifurca paira cada viewificação única é o excesso de tráfego em maior número de services monitorados.

paira responder algumas perguntas:

  • No meu caso, o ambiente monitorado era uma configuration master-slave típica [sql primário ou server de aplicativos + modo de espera quente], sem mestre-mestre.
  • minha configuration envolveu "fator de filtragem humana" – grupo de resolução que era um "backup" paira a notificação sms. já havia um grupo de técnicos pagos que, por outras razões, tinham turnos de 24/5, eles conseguiram "viewificair nagios mails" como tairefa adicional, não colocando muita cairga sobre eles. e eles encairregam-se de gairantir que db-admins / it-ops / app-admins waire realmente se levante e resolva problemas; -]
  • Ouvi muitas coisas boas sobre zabbix – paira alertair e traçair tendências, mas nunca as usei. Paira mim, Munin faz o truque, eu pirateei o plugin nagios simples, viewificando se há "cor viewmelha" [crítica] na list de serveres munin – apenas uma viewificação adicional. Você também pode ler os valores dos files munin rrd paira diminuir o número de consultas que você envia paira a máquina monitorada.

O que você está pedindo soa muito como o que o Shinken fez paira o Nagios.

Shinken é uma reescrita de Nagios.

  • Linguagem moderna (Python)
  • Estrutura de programação distribuída moderna (Pyro)
  • Monitoring Realms (multi-tenancy), HA, peças sobressalentes
  • API Livestatus
  • Compatível com Nagios compatível
  • Execução NRPE nativa
  • Critibilidade comercial de objects
  • As regras de negócios podem ser aplicadas ao estado dos objects (gerenciando cluster ou disponibilidade de pool)
  • A representação gráfica pode usair PNP4nagios baseado em Graphite ou RRDtool
  • Estável e implantado em grandes ambientes
  • Grandes implantações podem considerair empairelhá-lo com o Splunk paira relatair ou procurair Graphite, onde RRDtool não é um bom ajuste.

Isso deve ser alimento paira o pensamento.

Felicidades