Saudações,
Gostaria de pedir a opinião dos coletivos e ver os sistemas de monitoramento distribuído, o que você usa e o que sabe que pode marcar minhas caixas?
Os requisitos são bastante complexos;
Nenhum ponto único de falha. Realmente. Estou falando sério! Precisa ser capaz de tolerar falhas de nó único / múltiplo, 'mestre' e 'trabalhador' e você pode presumir que nenhum local de monitoramento ("site") possui vários nós ou está na mesma rede. Portanto, isso provavelmente exclui as técnicas tradicionais de HA, como DRBD ou Keepalive.
Lógica distribuída, eu gostaria de implantar mais de 5 nós em várias redes, em vários datacenters e em vários continentes. Quero que a visualização "Olho de pássaro" da minha rede e aplicativos da perspectiva de meus clientes, os pontos de bônus para a lógica de monitoramento não sejam afetados quando você tiver mais de 50 nós ou mais de 500 nós.
Precisa ser capaz de lidar com um número razoavelmente razoável de verificações de host / serviço, a Nagios, para valores estimados que pressupõem 1500-2500 hosts e 30 serviços por host. Seria muito bom se adicionar mais nós de monitoramento permitisse escalar de forma relativamente linear, talvez daqui a cinco anos eu esteja procurando monitorar 5000 hosts e 40 serviços por host! Adicionando a partir da minha nota acima sobre 'lógica distribuída', seria bom dizer:
- Em circunstâncias normais, essas verificações devem ser executadas em $ n ou n% dos nós de monitoramento.
- Se uma falha for detectada, execute verificações em outros $ n ou n% de nós, correlacione os resultados e use-os para decidir se os critérios foram atendidos para emitir um alerta.
Gráficos e recursos amigáveis de gerenciamento. Precisamos rastrear nossos SLAs e saber se nossos aplicativos 'altamente disponíveis' estão ativos 24x7 é algo útil. Idealmente, sua solução proposta deve gerar relatórios "prontos para uso" com o mínimo de esforço.
Deve ter uma API sólida ou sistema de plug-ins para o desenvolvimento de verificações personalizadas.
Precisa ser sensato sobre alertas. Não quero necessariamente saber (via SMS, às 03:00!) Que um nó de monitoramento calcula que meu roteador principal está inoperante. Eu não quero saber se um percentual definido deles concordam que alguma coisa divertida está acontecendo;) Basicamente o que eu estou falando aqui é "quorum" lógica, ou a aplicação de sanidade à loucura distribuídos!
Estou disposto a considerar as opções comerciais e de código aberto, embora eu prefira evitar softwares que custam milhões de libras :-) Também estou disposto a aceitar que talvez não exista nada lá fora que marque todas essas caixas, mas queria perguntar isso ao coletivo.
Ao pensar em monitorar nós e seu posicionamento, lembre-se de que muitos deles serão servidores dedicados em redes de ISPs aleatórias e, portanto, estão fora da minha esfera de controle. Soluções que dependem de feeds BGP e outras palhaçadas complexas de rede provavelmente não serão adequadas.
Devo também salientar que já avaliei, implantei ou usei / usei muito a maioria dos sabores de código aberto no passado, incluindo Nagios, Zabbix e amigos - eles não são realmente ferramentas ruins, mas são fracassos em geral " distribuído ", particularmente no que diz respeito à lógica discutida na minha pergunta e nos alertas 'inteligentes'.
É um prazer esclarecer todos os pontos necessários. Cheers rapazes e moças :-)
fonte
Respostas:
não é uma resposta realmente, mas algumas dicas:
definitivamente dê uma olhada na apresentação sobre nagios @ goldman sachs . eles enfrentaram problemas que você menciona - redundância, escalabilidade: milhares de hosts, também geração de configuração automatizada.
Eu tinha uma configuração redundante de nagios, mas em uma escala muito menor - 80 servidores, ~ 1k de serviços no total. um servidor mestre dedicado, um servidor escravo que puxa a configuração do mestre em intervalos regulares algumas vezes por dia. os dois servidores cobriam o monitoramento das mesmas máquinas, tinham verificação de integridade entre si. eu usei o nagios principalmente como estrutura para chamar verificações específicas de produtos personalizados [vários trabalhos cron executando scripts que executam 'controles de fluxo artificiais', resultados são registrados no sql, plugins nrpe verificam se há execuções com êxito / com falha nos últimos x minutos]. tudo funcionou muito bem.
sua lógica de quorum parece boa - um pouco semelhante aos meus 'fluxos artificiais' - basicamente continue, ipmplement your self; -]. e peça ao nrpe apenas verificar algum tipo de sinalizador [ou sql db com timestamp-status] como as coisas estão indo.
você provavelmente desejará construir uma hierarquia para escalar - terá alguns nós que reúnem uma visão geral de outros nós; observe a apresentação desde o primeiro ponto. os nagios bifurcados padrão para cada verificação são um exagero em um número maior de serviços monitorados.
para responder a algumas perguntas:
fonte
O que você está pedindo soa muito como o que Shinken fez por Nagios.
Shinken é uma reescrita de Nagios.
Isso deve servir de reflexão.
Felicidades
fonte