Esta página está destinada a proporcionar información del de la instalación y uso del Troubleshooting Wizard, que tiene como objetivo ayudar a los clientes a ejecutar un diagnóstico completo de su servidor o servidores para determinar las causas de un posible problema con los mismos(s) servidor(es) para determinar la causa raíz de algún probable problema que se esté presentando.
Abarcaremos desde la recepción del mail por parte del cliente con la descripción del problemadescarga e implementación del archivo de Troubleshooting, pasando por el análisis de servidores, archivos de configuuración de NMIS y nodos agregados, hasta conclusiones y recomendaciones para que pueda solucionarse la incidencia reportadacompleto del servidor utilizando cada uno de los menús interactivos del programa.
Este documento está basado en las pruebas mencionadas en la página Proceso de resolución de problemas de dispositivos en NMIS.
...
e) Detalles adicionales, por ejemplo: configuración actual de cron de NMIS por lo menos, configuración actual del archivo /etc/mongod.conf, configuración de parámetros de base de datos en /usr/local/omk/conf/opCommon.nmis, si se modificó algún archivo recientemente, si alguna configuración realizada ya sea en el servidor o en los equipos provocó la incidencia.
Troubleshooting Wizard: Instalación y ejecución
El archivo de instalación del script (01_TS_Wizard_OMK.sh) y los dos scripts complementarios para su ejecución (Busqueda.pl y config_backup_LATAM.pl), pueden descargarse desde el siguiente link de GitHub: https://github.com/tom-tics/TS_Wizard_NMIS8_OPMANTEK.
Deben subirse los tres a la misma carpeta del servidor en el cual se realizará el análisis mediante un cliente FTP (como FileZilla).
Una vez que ya se tengan los tres archivos en el servidor, debe ejecutarse con el comando: sh 01_TS_Wizard_OMK.sh
Una vez que hayamos ejecutado el archivo, accederemos a la pantalla inicial, donde se muestran los detalles del Sistema Operativo, como es la versión de Linux y un pequeño resumen de la memoria y CPU del sistema.
De igual forma, se muestra el Menú Principal, donde encontraremos las diferentes opciones a las que podemos acceder:
- Execute Healthcheck: podremos realizar una revisión completa del servidor.
- NMIS Configuration Consistency: podremos revisar la consistencia de los archivos de configuración más importantes de NMIS.
- Nodes Troubleshooter: podremos revisar el comportamiento de los nodos agregados a NMIS.
- Smart Diagnostic: crea un diagnóstico completo del sistema en un archivo .tar.gz, el cual podrá adjuntarse en caso de que se requiera abrir un ticket con el Soporte de Opmantek
- Create System Backup File: crea un archivo .tar.gz que contendrá un backup de las carpetas /etc/* y /usr/local/*.
- Execute Support Automation Tool: genera un archivo de soporte de NMIS y uno de OMK, los cuales podrán adjuntarse en caso de que se requiera abrir un ticket con el Soporte de Opmantek.
Troubleshooting Wizard: Funcionalidades
...
1. Execute Healthcheck
Se puede elegir entre diferentes opciones, las cuales se muestran a continuación:
1.
...
TOP
Este comando nos dará información da información de todos los procesos que se están ejecutando en este momento en el servidor y el porcentaje de utilización de CPU y memoria RAM.
Siempre será importante basarnos en el load average y en el %CPU, ya que si estos valores son altos, tendremos seguramente un problema en algún o algunos procesos que se están ejecutando actualmente.
2. Revisión de fecha y hora del servidor
Comando date
...
.
Al final de la ejecución del comando, nos muestra una serie de tips, como son:
- Comprobar las particiones de los discos.
- Limpiar archivos de registro que ocupen demasiado espacio.
- Eliminar caché.
2. System date and time
Es muy importante que el servidor tenga configurada de forma correcta la fecha y hora, según la zona horaria de cada cliente; esto debido a que hay muchos procesos que se ejecutan en lapsos específicos de tiempo y, de igual forma, los logs del sistema y los registros de modificación de archivos, contienen marcas de tiempo para poder detectarse en caso de un error.
Es por eso que se incluye este apartado para que el operador sepa que la fecha y hora del sistema son adecuadas. Al final, en caso de que el servidor no tenga un NTP activado, se muestra un tip para contactar al administrador del sistema y verificarlo.
3. Disk R/W
Con este análisis, podremos darnos cuenta si existe una falla física en los discos del servidor. Si nos damos cuenta de que hay un problema, hay que notificarlo inmediatamente al cliente.Basta con ejecutar un par de
El programa ejecuta los comandos:
- dd if=/dev/zero of=/data/omkTestFile bs=10M count=1 oflag=direct
- dd if=/data/omkTestFile of=/dev/null 2>&1
Y después analizar , muestra la salida, que se tiene que comparar con los siguientes valores:
- 0.0X s, parámetros correctos.
- 0.X s, hay una advertencia (y podría generar un problema).
- X.0 s, es crítico (y existe un problema).
4. Revisión de filesystems
...
- .
De igual forma, se ejecuta un iostat -x 5 4, que se usa para monitorear la carga IO del equipo del sistema. Si se tiene un alto %util, es muy probable que exista un problema que pueda llevar incluso a la pérdida de datos, lo cual se señala al final de la ejecución del comando.
4. Filesystem
...
Muestra un análisis detallado del espacio en cada uno de los filesystems del sistema, esto para comprobar que la posible incidencia no se esté presentando por una falta de espacio en el servidor.
Se ejecutaa el comando como sigue:
- df -h
. También muestra un tip de que si el uso es +85% en alguno de los ficheros, se contacte al administrador para que se puedan depurar.
De igual forma, ejecuta un comando para saber la utilización de la memoria RAM y swap del sistema, mostrando un tip si se tiene un alto porcentaje de utilización para contactar al administrador y ver qué está sucediendo.
5. Service status
Se ejecuta una revisión de cada uno de los demonios del sistema, para comprobar que todos los procesos esenciales se estén ejecutando de manera correcta.
Principalmente, deben revisarse los que se mencionan a continuaciónSe ejecutan los siguientes comandos:
- service omkd status
- service mongod status
- service nmisd status (si aplica)
- service nmis9d status (si aplica)
- service mongod httpd status
- service opchartsd status
- service opeventsd status
- service opconfigd status
- service opflowd status
- service crond status
- service httpd snmpd status
...
- service iptables status
De igual forma, puede ejecutarse el siguiente comando para revisar todos los servicios en ejecución (CentOS 6):
- service --status-all
se revisa que SELinux esté desactivado.
En caso de que se detecte que algún servicio está downesté down y sea importante para el funcionamiento del sistema, debe reiniciarse con el siguiente comando:
...
como indica el script.
Si persiste el down, deberá revisarse el log de dicho demonio y analizarse para ver qué está sucediendo. Se recomienda revisar en la página https://support.opmantek.com/secure/Dashboard.jspa si existe algún ticket con el mismo error para de ahí encontrar alguna solución.
6. Revisión de tiempos de carga del servidor
Se usa para monitorear la carga IO del equipo del sistema. Si se tiene un alto %util, es muy probable que exista un problema que pueda llevar incluso a la pérdida de datos. Esto hay que notificarlo inmediatamente al cliente.
Se recomienda ejecutar el comando como sigue, para tener 5 pruebas del mismo:
- iostat -xtc 3 5
7. Top de los 20 procesos del CPU
8. Ejecución de tcpdump
9. Revisión de tabla de enrutamiento de IPs locales
10. Revisión de la lista de usuarios activos
11. Revisión de logs de usuarios
12. Revisión de los últimos comandos utilizados
13. Revisión de configuración de DNS
14. Prueba de internet
Consistencia de Configuraciones de NMIS
1. Revisión de código de NMIS
2. Ejecución de un backup de archivos de configuración
3. Comparación de archivos de configuración
4. Ejecución de fixperms
5. Revisión de modelos
6. Revisión de cron
7. Revisión de librerías de CPAN
Troubleshooter de nodos
1. Polling summary
2. Traceroute
3. MTR
4. Ping
5. SNMP
6. Update nodes
7. Collect nodes
8. Búsqueda de eventos de nodo
9. Ejecución de un backup del archivo Nodes.nmis
10. Ejecución de Support zip
Diagnóstico Inteligente
Incluye todas las secciones anteriores, con un extra.
Primer borrador
Análisis de causas
En este apartado se realizará la evaluación de todas los posibles motivos que llevaron a que la incidencia ocurriera según reporta el cliente en cuestión, revisando cada uno de los parámetros de importancia del servidor, desde archivos de configuración importantes, pasando por hardware, software y, de ser necesario, revisión a fondo de los nodos involucrados.
Es importante que el cliente envíe un NMIS Support Tool y/o un OMK Support Tool desde el inicio, esto para tener una copia de los archivos de configuración más importantes en el momento del reporte de la incidencia.
2.1. Análisis de Support Tool
Dependiendo del escenario, comenzaremos revisando los archivos importantes contenidos en el Support Tool, se mencionan algunos de ellos a continuación:
- Carpeta conf: Config.nmis, Nodes.nmis, Users.nmis
- Carpeta logs: error_log, event.log, nmis.log.
- Carpeta models: revisar si hubo algún cambio reciente que pudiera afectar.
- Carpeta system_status: cpuinfo, disk_info, iostat, meminfo, top.
- Carpeta system_status/apache: revisar los archivos de configuración.
- Carpeta system_status/cron: revisar si el crontab contiene algún comando que pueda crear conflicto con otro cron.
- Carpeta system_status/cron.d: revisar si no hay un cron duplicado y que al menos el cron de nmis esté configurado de manera correcta.
2.2. Análisis de cambio de configuraciones
En este análisis nos servirá de mucha ayuda el Support Tool enviado por el cliente, ya que podremos darnos cuenta si algún archivo de configuración fue modificado en los últimos días.
De igual forma, debemos tener acceso al servidor en cuestión, para poder verificar si se hizo algún backup y así poder restablecer el archivo a los parámetros anteriores.
Las principales carpetas a revisar son:
- /usr/local/nmis8/conf
- /usr/local/omk/conf
- /etc/cron.d
2.4. Análisis de nodos
En este punto, se ejecutará un análisis a fondo de los nodos en los cuales se haya detectado algún problema durante el momento de la incidencia.
Se recomienda revisar las siguientes gráficas en NMIS:
- Gráfica de KPIs
- Gráfica de Reachability, Availability and Health
- Gráfica de Response Time
- Gráfica de IP Utilisation
De igual forma, se recomienda realizar búsquedas mediante un ps -fea | grep nombredenodo de los nombres de los nodos en las carpetas:
- /usr/local/nmis8/logs
- /usr/local/omk/logs
Esto con la finalidad de encontrar detalles que pudieron afectar los collects y/o los updates de los nodos, o algún tema en los módulos que impliquen lo
3. Análisis de resultados
En
4. Conclusiones y recomendaciones
En.
6. Load average
Esta prueba permite saber la carga promedio del sistema para un periodo de tiempo definido.
El script nos muestra algunas interpretaciones para saber qué está sucediendo en el servidor:
- Si los promedios son 0.0, entonces el sistema está inactivo.
- Si el promedio de 1 minuto es más alto que los promedios de 5 o 15 minutos, entonces la carga está aumentando.
- Si el promedio de 1 minuto es más bajo que los promedios de 5 o 15 minutos, entonces la carga está disminuyendo.
- Si los promedios son más altos que el recuento del CPU, es posible que se tenga un problema de rendimiento.
7. Top 5 processes by CPU and Memory
Muestra los 5 principales procesos que están utilizando más porcentaje del CPU en el servidor, además de detalles del CPU y de la memoria.
Al final muestra un tip de que si los procesos superan el 85% de la CPU o la memoria, se realice una investigación, ya que podría ser un caso de procesos que se han quedado colgados o que no responden.
8. Tcpdump
El comando tcpdump nos permite capturar en un archivo el tráfico de la red en la que se encuentre el servidor del cliente.
Con esto, el operador puede saber si existe algún problema en la comunicación entre el servidor y los equipos agregados a NMIS y sus módulos, ya que al analizarlo se dará cuenta si existe pérdida de paquetes en el tráfico de la red.
Cuando termina la ejecución del comando, se crean 2 archivos .pcap en el directorio /tmp para que puedan descargarse y analizarse con Wireshark.
9. Local IP routing table
Permite conocer el estado y configuración de las tablas de rutas IP, que nos sirven para enviar y saber cómo se envían los paquete en las distintas redes que se tienen configuradas en el servidor en cuestión.
10. List of logged users
Permite saber quiénes son los usuarios que están utilizando el shell en ese momento, esto servirá para mantener una mejor administración de las personas que acceden y, en algunas ocasiones, de los que modifican algún archivo importante del sistema.
11. Log user audit
Es importante conocer el inicio de sesión de cada uno de los usuarios que utilizan el sistema, esto servirá para saber si alguno de ellos realizó alguna modificación que podría haber ocasionado el mal funcionamiento del mismo.
La ejecución de esta sección, permite revisar logs del sistema, obtiene una vista de usuarios conectados, búsqueda de errores, mensajes críticos y alertas en los registros del sistema operativo.
Al final, se muestra un tip para que, si el operador observa muchos intentos de autenticación fallidos, contacte a los usuarios para que pueda saber qué está sucediendo.
12. Show last used commands
Esta revisión va de la mano con el punto anterior y nos permitirá conocer los últimos 30 comandos ejecutados en el servidor.
De igual forma, los 10 comandos más utilizados de esa lista de 30 y el número de veces que se han ejecutado.
13. Show DNS config
La revisión del archivo /etc/resolve.conf es importante, ya que nos permitirá saber si la configuración de los nombres de dominio y la redirección a alguna IP importante es correcta.
Se puede confirmar que la estructura del archivo señalado es la adecuada.
14. Internet web test
Se realiza una prueba para enviar tres paquetes de internet al servidor de Google y verificar la conectividad a internet del servidor. Esto sirve para poder actualizar paquetes que requieran descargarse vía internet directamente en consola, como yum y cpan.
De igual forma, muestra la IP pública del servidor.
2. NMIS Configuration Consistency
Se puede elegir entre diferentes opciones, las cuales se muestran a continuación:
1. Check NMIS code
Permite comprobar la sintaxis de los archivos de configuración de la carpeta /usr/local/nmis8/* y muestra si hay algún error en los códigos.
Se muestra un tip para que el operador revise los archivos que se encuentren con alguna inconsistencia.
2. Perform a configuration backup
Realiza una copia de seguridad de los directorios de configuración para conservar todos los ajustes realizados por el cliente.
Debe señalarse la carpeta en la cual se va a realizar este respaldo, en este ejemplo utilizamos /tmp y el script comenzará a ejecutarlo.
El programa muestra el árbol de las carpetas y archivos respaldados y el nombre del archivo .tar.gz generado.
3. Compare file configurations
Permite realizar una comparación de los archivos:
- /usr/local/nmis8/install/Config.nmis y /usr/local/nmis8/conf/Config.nmis
- /usr/local/omk/install/opCommon.nmis y /usr/local/omk/conf/opCommon.nmis
Para poder encontrar alguna inconsistencia en la configuración que puedan estar causando algún problema con NMIS y/o los módulos.
4. Execute fixperms rutine
Ejecuta en automático el comando /usr/local/nmis8/admin/fixperms.pl, que permite al operador la corrección general de los permisos de todos los archivos del sistema.
5. Model checking
Ejecuta una validación de sintaxis y verificación de longitud variable en los archivos de la carpeta de modelos /usr/local/nmis8/models/*.
Es importante para que el operador pueda tener funcionando de manera correcta cada uno de los diferentes modelos de los equipos agregados a NMIS.
Si el script encuentra algún detalle, lo señala y al final da un tip para que el operador revise esa inconsistencia.
6. Crontab checking
Ejecuta una comprobación de la configuración de cada uno de los archivos de cron con los que NMIS y los módulos funcionan, esto para comprobar que no exista alguna rutina que esté causando algún conflicto que pueda afectar el funcionamiento del sistema.
De igual forma, ejecuta un ll en /etc/cron.d/ para comprobar que no se tienen backups dentro de esa carpeta, ya que puede provocar problemas para la ejecución de las tareas y da un tip para que, si se encuentran backups, se muevan de carpeta o se eliminen.
7. Verify CPAN libraries
Ejecuta una comprobación de las bibliotecas CPAN y muestra cuáles hacen falta para que el operador pueda instalarlas en caso de ser necesario.
8. Last changed files
Ejecuta una búsqueda de los últimos archivos modificados en diferentes directorios:
- /nmis8/admin/
- /nmis8/bin/
- /nmis8/cgi-bin/
- /nmis8/conf/
- /nmis8/models/
- /nmis8/lib/
- /omk/conf/
- /etc/cron.d/
Y los acomoda del archivo modificado más recientemente hasta el más antiguo.
Al final, se muestra un tip para que el operador verifique si algún cambio reciente en los archivos está causando un problema en el sistema.
3. Nodes Troubleshooter
Se puede elegir entre diferentes opciones, las cuales se muestran a continuación:
1. Polling summary
Ejecuta el comando /usr/local/nmis8/admin/polling_summary.pl, que sirve para conocer el tiempo que el servidor tarda en recolectar la información de los nodos agregados a NMIS y si alguna operación está fallando o nunca se ha realizado (como las consultas SNMP, por ejemplo).
Al final, se puede ver un resumen de cuántos nodos tienen un collect tardío y, presionando la tecla l (ele), se puede enviar este resumen hacia un archivo para que se pueda descargar del servidor.
2. Traceroute
Permite rastrear en tiempo real la ruta tomada por un paquete en una red IP desde el origen hasta el destino, informando las direcciones IP de todos los enrutadores entre los que hizo ping.
Se coloca la IP o el hostname del nodo y el script devolverá el resultado, mostrando un tip para el operador si se observa algún comportamiento anormal.
3. MTR
Permite analizar la conexión entre el servidor donde se ejecuta el comando y el host destino especificado por el usuario.
Se coloca la IP o el hostname del nodo y el script devolverá el resultado, mostrando un tip para el operador si se observa algún comportamiento anormal.
4. Ping
Permite probar si un host en particular es alcanzable a través de la red configurada en el servidor y medir el tiempo que tardan los paquetes en enviarse y recibirse.
Se coloca la IP o el hostname del nodo y el script devolverá el resultado, mostrando un tip para el operador si se observa algún comportamiento anormal.
5. SNMP
Permite consultar los datos SNMP de un dispositivo. Se utiliza el comando snmpwalk porque le permite al usuario encadenar solicitudes sin tener para ingresar comandos únicos para cada OID o nodo dentro de un subárbol.
Esto ayuda a saber si el nodo en cuestión está respondiendo de forma correcta al protocolo y a comprobar que NMIS esté recopilando sus métricas adecuadamente.
El script cuenta con consultas SNMPv1, SNMPv2 o SNMPv3 y al final muestra un tip para que el operador consulte al administrador en caso de que el equipo tenga problemas en la respuesta.
6. Update
nodes
Permite realizar un update a un nodo específico, utilizando su hostname.
Se ejecuta el comando /usr/local/nmis8/bin/nmis.pl type=update node='nodo' force=1 debug=1
7. Collect nodes
Permite realizar un collect a un nodo específico, utilizando su hostname.
Se ejecuta el comando /usr/local/nmis8/bin/nmis.pl type=collect node='nodo' force=1 debug=1
8. Event search
Permite realizar búsquedas en las carpetas /usr/local/nmis8/logs/ y /usr/local/omk/logs/, lo cual facilitará al operador la investigación cualquier hecho o acontecimiento que esté causando alguna falla en el servidor.
Debe colocarse la palabra o palabras a buscar para poder realizar la operación.
9. Nodes.nmis backup
Permite realizar un backup del archivo actual Nodes.nmis, ubicado en /usr/local/nmis8/conf/.
Esto es muy importante para el operador, sobre todo antes de realizar cualquier modificación que tenga que ver con los equipos agregados a NMIS.
10. Support zip
Permite ejecutar la herramienta de soporte de NMIS y los módulos, la cual recopila toda la información relevante sobre el estado y la configuración del servidor en 2 archivos:
- nmis-support.zip
- omk-support.zip
Al final, estos dos archivos deberán ser adjuntados al mail enviado al Soporte de Opmantek para su análisis.
4. Smart Diagnostic
Permite ejecutar de forma automática todas las pruebas contenidas en el script con solo acceder a la opción correspondiente.
Al final, se genera un archivo .tar.gz que deberá ser adjuntado por el operador si se abre un ticket de Soporte, como se menciona en el tip.
5. Create System Backup File
Realiza una copia de seguridad de los directorios de configuración para conservar todos los ajustes realizados por el cliente.
Debe señalarse la carpeta en la cual se va a realizar este respaldo, en este ejemplo utilizamos /tmp y el script comenzará a ejecutarlo.
El programa muestra el árbol de las carpetas y archivos respaldados y el nombre del archivo .tar.gz generado.
6. Execute Support Automation Tool
Permite ejecutar la herramienta de soporte de NMIS y los módulos, la cual recopila toda la información relevante sobre el estado y la configuración del servidor en 2 archivos:
- nmis-support.zip
- omk-support.zip
Al final, estos dos archivos deberán ser adjuntados al mail enviado al Soporte de Opmantek para su análisis.