Esta es una historia corta de la práctica real, cuando un pequeño problema, bien camuflado por la tolerancia a fallas, se convierte en un dolor de cabeza.
Pequeña disposición
Una pequeña sucursal, tiene su propia PBX (asterisco + FreePBX) basada en una plancha de escritorio y el mismo servidor de terminal local con 1C, almacenamiento de archivos y un controlador de dominio RO virtual. Internet distribuye Mikrotik. La pequeña rama es suficiente para ellos.
Todo comenzó con el monitoreo (debido a la falta de tiempo y la pereza, no todos los monitores), que informaron el sobrecalentamiento de un servidor (desde la PBX) en la sucursal. Mientras que los locales resolvieron el problema, el viejo se estrelló y rompió un poco la base de datos MySQL.
Muchos problemas presagiaron, pero no esto ...
No importa, la base fue reparada, todo debería funcionar. Pero los lugareños se quejan, las llamadas se rompen. Bien, hay problemas en FreePBX, tomo una copia de seguridad, la implemento, todo está bien.
Pero el problema está en su lugar, los lugareños todavía se quejan, las llamadas no van bien. Ante ellos, la llamada pasa normalmente, pero cuando ellos mismos se llaman o se llaman entre sí, se obtiene un retraso de varios segundos. Empiezo a mirar los voluminosos y oscuros registros de Asterisk y FreePBX, no pueden discernir el problema. Recuerdo que hubo un problema con STUN e ICE, que dio un retraso similar. Lo apago al infierno, el resultado es cero.
El desánimo es la forma de tomar malas decisiones
Estoy desanimado, recoger el PBX durante muchas horas no conduce a nada bueno, ya es tarde en la noche, pero el problema no está resuelto.
Dejó el problema hasta la mañana, esperando una cabeza fresca. Por la mañana, se tomó otra decisión fallida: dado que el sistema se había averiado (aunque la dependencia no podía ser tan destructiva), estoy tratando de arreglar el sistema reinstalando todos los paquetes. El resultado es un poco más que cero, el retraso se redujo (no significativo, pero ya fue un éxito).
Tomo una mala decisión más: si la reparación parcial del sistema operativo (y las bases de datos de la copia de seguridad) tuvieron poco éxito, y la raíz del problema aún no está clara, y al mismo tiempo ya se ha pasado mucho tiempo buscando la causa, entonces decido actuar radicalmente: eliminamos el sistema operativo Lo hacemos todo desde cero (el beneficio de la automatización del proceso lo hace en un tiempo aceptable). Rollo la configuración de FreePBX de la copia. Otro fracaso ¡El resultado es cero!
Desesperación: la mente se ve ensombrecida, las decisiones empeoran
Estoy cayendo en la desesperación. Pienso que comienzan a surgir muy malos pensamientos: tal vez la conf en la copia de seguridad es una curva (lo tuve después de varias actualizaciones que no funcionó después de ellos, y no pude encontrar la razón), no queda nada: necesita rodar todo desde cero con las manos. ¡Qué pena! El resultado es estrictamente cero, ¡e incluso pasó mucho tiempo!
La aceptación es el camino hacia la conciencia.
En intentos desesperados por comprender lo que está sucediendo, comienzo a estudiar cuidadosamente los registros. Noto un patrón. La extensión llama en exactamente 5 segundos, y para un grupo de llamadas de 3 ¡Extensión en 15! Empiezo a buscar en Google sobre el retraso de la llamada, pero ya estoy indicando un retraso específico. Y me encuentro con una respuesta que ya encontré, la gente dice que el problema está en el DNS, pero estoy seguro, no hay problema, ¡todas las direcciones están resueltas!
Lo obvio es lo increíble
Nada que hacer, elige nslookup y bingo (¡ojalá pudiera hacerlo de inmediato!) El DNS primario se encuentra (virtualka con el controlador), ¡pero no me di cuenta! Habría un DNS, inmediatamente habría un error;)
Resumen
Un problema elemental que el monitoreo podía ver (aún debería estar configurado para todos los nodos), enmascarado por la resistencia del DNS, condujo a la pérdida de casi dos días hábiles para resolver la estúpida situación. Demasiado perezoso toda la obscenidad, configure el monitoreo un minuto, busque un problema donde no existe, dos días.