¿Cómo se monitorea más de 50,000 servidores en un entorno de producción?

A tal escala, una empresa habría construido una solución interna para resolver el problema. Asumiría que la compañía tendría un gran equipo de ingeniería y que habría un equipo dedicado a la solución de este problema.

Deberá contar con un equipo de monitoreo 24 × 7 con ingenieros de L1 y L2 o administradores de sistemas para proporcionar soluciones rápidas a los problemas.

Nagios, Zabbix y otros sistemas de monitoreo escalan hasta cientos de servidores. Pero no he visto un ejemplo práctico de escalarlos más allá de miles de servidores. Nuevamente, si tiene una cantidad tan grande de servidores, los dividiría en grupos, principalmente en función del negocio o módulo al que atienden. Cada grupo debe tener su propio sistema de monitoreo. Entonces, eventualmente tendría una configuración de nagios para un clúster y otra configuración de nagios para otro clúster, etc.

Y una configuración de nagios para monitorear la salud de sus servidores nagios.

—-EDITAR—–

Recientemente ha habido un aumento de personas que usan carbono, estadísticas y grafito para fines de monitoreo. El monitoreo de servidores en ETSY es un ejemplo. Aquí hay un artículo simple que explica cómo configurar un grupo de cajas de grafito que se pueden escalar linealmente para monitorear cualquier número de servidores

La arquitectura de la agrupación de grafito

Sorprende que tenga tantos servidores y que no tenga ninguna herramienta para el monitoreo básico.

La pregunta más fundamental es: ¿Qué le interesa en términos de indicadores clave de rendimiento?

1. ¿Está interesado en la disponibilidad básica de red de los Sistemas?
básicamente sistema arriba / abajo? Estoy seguro de que encontrará muchas herramientas gratuitas y de código abierto que pueden proporcionar este tipo de visibilidad.

2. Si está interesado en algo más que Red arriba / abajo, digamos, por ejemplo, el estado básico del nivel del sistema operativo (CPU, Memoria, Espacio en disco, E / S de disco)
Necesitamos dividir estos servidores de 55K en físicos o virtuales. Estoy seguro de que es una combinación de sistemas físicos y virtuales. En el caso de los servidores virtualizados, el proveedor de virtualización proporciona diferentes herramientas que vienen incluidas con el software de virtualización. Por ejemplo: Centro virtual de VMware. Con el Centro virtual, puede obtener fácilmente el rendimiento básico de sus sistemas: CPU, memoria, E / S de disco, E / S de red.

3. Ahora viene la pieza interesante: ¿qué pasa con las aplicaciones: web, base de datos, correo electrónico, ERP, etc.? ¿Realmente necesita visibilidad del rendimiento en las pilas de aplicaciones? No hay una respuesta fácil aquí. Existen tantos productos / soluciones que ofrecen un rendimiento a nivel de aplicación. No voy a entrar en esta porción en este momento.

Espero que la información ayude.

Sinceramente
Tipo de gestión del rendimiento de aplicaciones

Realmente depende de la naturaleza del medio ambiente. Si se trata de 50 000 instancias del mismo sistema que ejecuta una sola aplicación o un pequeño conjunto de aplicaciones (es decir, una nube que proporciona pocos servicios, como Amazon, Azure o Google), la supervisión es fácil y directa, cortando todos los eventos innecesarios que buscan muy pocos tipos que son de alguna manera importantes: corte las fallas de hardware, seguridad y aplicaciones. Todas esas compañías están ejecutando más de 1 000 000 servidores, más allá de la escala que le interesaba.

Por otro lado, el monitoreo de incluso varios miles de servidores con una gran cantidad de aplicaciones puede ser realmente desafiante: puede tener miles o servicios / aplicaciones, cada uno con sus propias necesidades y registros específicos en esos servidores. Ahora, este es un desafío y, hasta ahora, en su mayoría, esto no se resuelve de manera integral en la mayoría de los casos: tiene monitoreo básico del sistema operativo (está activado el sistema operativo, queda espacio en el disco, queda algo de memoria, no hay errores repetidos en los registros) y descanse en el soporte de cada aplicación que no supervisa ni supervisa por sí solo. El problema es que, en la mayoría de los casos, el soporte de aplicaciones no puede realmente describir lo que se debe monitorear o no valió la pena monitorear, excepto en algunos sistemas centrales.

Creo que si el monitoreo no se realiza como debería haber sido, es una oportunidad allí. Necesita romper el monitoreo a 3 partes.
1. Monitoreo de recursos
2. Monitoreo de aplicaciones
3. Sistema / Monitoreo del registro de aplicaciones / Alertas

Puede hacerlo eligiendo productos de código abierto para el monitoreo de recursos o salir y construir su propia herramienta para recopilar todas las métricas clave y almacenarlas en un sistema persistente, para el análisis de datos históricos y también el monitoreo en tiempo real.

Si necesita más información sobre cómo hacerlo, puede contactarme.

¿Qué tipo de servidores? Windows, OSX o Linux / Unix?
Si tuviera 50K de servidores Ubuntu, podría pensar en pagar por el paisaje.
Características del paisaje

Red Hat tiene sus propias soluciones. Y estoy seguro de que Oracle también lo hace.
Página en redhat.com

Si son independientes, solo puede hacer ping. Tendría que configurar un sistema que haga esto automáticamente, o que pruebe la aplicación (tal vez solicitudes HTTP). Ya existen muchas herramientas comerciales para eso.

La verdadera pregunta es que todos esos servidores trabajan juntos para crear la misma aplicación sin fronteras, de modo que el usuario crea que interactúa con una sola entidad (sitio, servidor, etc.). Para eso, necesitaría usar herramientas personalizadas, mientras que el ping todavía puede ser una opción para monitorear el estado del nodo único dentro del clúster.

Entonces, necesita un equipo de operaciones: un grupo de personas que reaccionan ante fallas y problemas. General, esto se crea con un soporte de primer nivel que funciona en turno 24 × 7. Dan el primer nivel de intervención, y se intensifican a un segundo nivel más calificado que trabaja 8 × 5 y está siempre disponible en llamadas telefónicas (en turnos, obviamente). Esta infraestructura también puede tener un tercer y cuarto nivel.

Divide los nodos, por ejemplo, ventanas, Linux, conmutadores, enrutadores, equilibradores de carga
Divida los servicios, por ejemplo: http, smtp, ldap, la aplicación de aduanas 1, etc.

luego implemente las siguientes herramientas

1. herramientas de verificación de servicios (icinga, nagios, zambix y etc.)
2. comprobar tendencias (cactus, rrdtools)
3 compruebe las trampas SNMP (openNMS, smtptt)

Recolección de registro opcional (fluido)

Cuando tengas todo allí, siempre sabrás lo que no funciona.

A esa escala, generalmente divide esos nodos en grupos, por ejemplo, almacenes de datos, servidores web, etc. y los supervisa individualmente.
En cuanto al ancho de banda y otras preocupaciones, probablemente no sea un gran problema, pero depende del volumen de datos y la frecuencia con la que los recopila. Una forma de mitigar el impacto es un enfoque de despliegue inverso: agregar a un nodo, desde allí a otro nodo que se agrega desde otros modos, hasta los nodos reales que agregan y procesan ese volumen.

Creo que los Nagios tradicionales pueden no tener esa capacidad. Si un monitor puede enviar la solicitud y analizar la respuesta simultáneamente, puede quedarse sin memoria y capacidad de procesamiento. Necesitamos construir uno personalizado para hacer esto y aquello con el grupo de servidores (clústeres). Entonces puedes lograrlo.

Encontré un artículo para usted que lo revisa y puede proporcionarle cuáles son sus requisitos.

Esta pretende ser una lista de propósito general para los usuarios de Nagios.

More Interesting

¿Qué puedo hacer para alojar un sitio web que he creado con WordPress y el servidor WAMP? ¿Cómo puedo transferirlo de WAMP a un servidor en vivo?

¿Cómo se conectan los servidores a internet?

¿Qué porcentaje de servidores usan almacenamiento de estado sólido hoy y cuál será la tasa de crecimiento en los próximos años?

¿Qué está mal con mi servidor DNS?

¿Cuáles son las mayores diferencias entre los servidores web, los servidores domésticos y los servidores de red de pequeñas empresas?

¿Cómo sirve Netflix para ofrecer videos de alta resolución a tanta gente?

¿Qué características de Android causarían problemas al ejecutarlo como un sistema operativo de servidor?

¿Cuál es el mejor lugar para comprender los idiomas del lado del servidor y cómo funcionan? Además, ¿cuál es el mejor lugar para aprender conceptos PHP y cómo funcionan?

¿Por qué la mayoría de los programadores no pueden alojar / publicar sus aplicaciones? ¿Carecen de conocimiento de servidores y redes?

¿Qué es un servidor proxy y cómo lo uso para evitar mi WiFi de la universidad que ha bloqueado los sitios de torrents?

¿Cuál es el costo de un servidor?

En promedio, ¿cuál es la vida útil promedio del disco del servidor?

Estoy trabajando en una prueba de concepto para la aplicación que combina soluciones de almacenamiento en la nube para las que se suscribió y las presenta como una sola unidad: las opciones incluyen la configuración como RAID + algunas otras ideas. ¿Lo suficientemente interesante como para proceder como un proyecto nocturno o no?

Cómo usar el comando sudo su -l: estoy conectado como [correo electrónico protegido] en un servidor y quiero cambiar a user2. Cuando escribo [ [correo electrónico protegido] ] sudo su -l user2, me pide una contraseña y dice que no tengo acceso para hacer sudo

¿Cuáles son las principales diferencias entre los servidores de aplicaciones Tomcat y Jetty?