Procedimiento de Reset de Infraestructura de Software SGP-RFC-015 Localizacion: http://subversion.analitica.com.co:8023/sgp/docs/rfcs/sgp-rfc-015 Procedimientos de Reset de Infraestructura de SW.docx En este documento se reúne la experiencia adquirida en el mantenimiento de aplicaciones de software basadas en tecnologías WEB de Analitica. Este documento está orientado a ayudar al personal de soporte de aplicaciones a resolver casos donde el aplicativo NO responde adecuadamente por problemas de infraestructura de software. En particular el documento busca dar guías y orientar el cómo identificar estos problemas para proceder a ejecutar operaciones de reinicio Reset del respectivo software de infraestructura. Introducción La correcta operación del sistema SPA se basa en la correcta operación de múltiples componentes. Estos componentes incluyen: 1. SW de Infraestructura a. Servidor WEB y de aplicación (Apache y PHP) b. Servidor de Bases de datos (MySQL) c. Servicio de FTP (VSFTPD) d. Servicios de disparo de timmers de procesos (SGP_Produccion_DisparoTimers) 2. SW de Aplicación a. SGP b. Módulos y/o aplicativo propiamente dicho.
El presente documento cubre los procedimientos de verificación de operación de los componentes de SW de Infraestructura. Los componentes de software de aplicación funcionan en la medida en que los componentes de SW y de infraestructura operen correctamente, por lo cual no se incluye los procedimientos de Reset de estos últimos. Los errores y problemas de operación de aplicación son directamente evidenciados por el usuario final vía pantallas de error que incluyen un código que permite identificar unívocamente el error dentro del sistema de logs de la aplicación. Estos errores se tramitan vía el help desk ; de acuerdo a su complejidad ascienden en la escala de niveles de servicio. Procedimiento de Reset de Software de Infraestructura 1- WebServer/AplicationServer (HAPP1, HAPP2) Corresponde al proceso de Re-inicialización del servicio APACHE (httpd) el cual carga automáticamente el modulo de PHP. /usr/local/apache2/bin/apachectl restart Alternativa /usr/local/apache2/bin/apachectl stop /usr/local/apache2/bin/apachectl start Verificación de Operación: /usr/local/apache2/bin/apachectl status Archivos de configuración: Apache: /usr/local/apache2/config/httpd.conf PHP: /usr/local/php/lib/php.ini Síntomas de problemas de Apache No hay respuesta cuando se invoca una página estática: Ej: https://spa.sistemapenalacusatorio.gob.pa/sgpv1.3/test/phpinfo.php Cuando el siguiente comando no arroja procesos con http ps -fea grep httpd wc -l
Cuando el siguiente comando arroja demasiados procesos (más de 100) y el uso de procesador es muy bajo (menor a 10%). ps -fea grep httpd wc l Nota el uso de procesador se determina con el comando: top Cuando hay encolamiento de paquetes en la red y el servidor de apache aparentemente no recibe solicitudes Para saber encolamiento de paquetes: usar (En estado normal este valor debería estar por debajo de 200): netstat -an grep tcp egrep -i 'established time_wait' wc -l Para saber estancamiento de la operación del apache mediante la verificacion de los de acceso: tail -f /usr/local/apache2/logs/access_log Cuando aparecen los siguientes errores en: /usr/local/apache2/logs/error_log [error] could not make child process 29153 exit, attempting to continue anyway [error] child process 4717 still did not exit, sending a SIGKILL Los servidores web se operan sobre puerto 80, puesto que los balanceadores SIEMPRE envían sus requerimientos por puerto 80 indistintamente de si el usuario final hace las consultas por HTTP o HTTPS El PHP es un módulo integrado al apache que opera bajo el mismo servicio de apache. 2- Base de Datos (HDB1) Corresponde al proceso de Re-inicialización del servicio MySQL service mysqld restart Alternativa: service mysqld stop service mysqld start Verificacion de operación: service mysqld status
Síntomas de problemas de MySQL Cuando mysql está caído, condición evidenciada con: service mysqld status o ps -fea grep mysql Lentitud en las respuestas de consultas simples MySQL no tiene permisos de escritura sobre el directorio /tmp Cuando el disco duro está lleno Cuando en el log de MySQL (/var/log/mysqld.log) aparecen errores tales como: Error: 1037 SQLSTATE: HY001 (ER_OUTOFMEMORY) Error: 1040 SQLSTATE: 08004 (ER_CON_COUNT_ERROR) Error: 1129 SQLSTATE: HY000 (ER_HOST_IS_BLOCKED) Error: 1130 SQLSTATE: HY000 (ER_HOST_NOT_PRIVILEGED) Error: 2055 (CR_SERVER_LOST_EXTENDED) Estadísticamente el servicio es bastante estable y rara vez hay que reiniciarlo En lo posible baje este servicio de una forma GENTIL (service mysqld stop). EVITE UTILIZAR comandos como kill -9 mysqld puesto que este tipo de procedimientos pueden alterar gravemente la integridad de las bases de datos. 3- Transferencias de Archivos (HAPP1) Corresponde al proceso de Re-inicialización del servicio VSFTPD (Very simple FTP) Alternativa: service vsftpd restart service vsftpd stop service vsftpd start
Verificación de operación: service vsftpd status Síntomas de problemas del vsftpd El servicio está caído; condición evidenciada con: service vsftpd status o ps -fea grep vsftpd No es posible cargar archivos desde los agentes de grabación Este proceso SOLAMENTE corre en HAPP1 por NO ser un servicio controlado por los balanceadores; no obstante se puede montar también en HAPP2 en la medida que se le de acceso vía balanceadores. Es muy importante verificar que este servicio esté subido cada vez que se reinicie el sistema. 4- Timmers de Procesos (HAPP1) Alternativa: /spa/analitica/sgp/v1.3/appsgp/scripts/linux/disparotimers/sgp_ Produccion_DisparoTimers.sh start /spa/analitica/sgp/v1.3/appsgp/scripts/linux/disparotimers/sgp_ Produccion_DisparoTimers.sh stop /spa/analitica/sgp/v1.3/appsgp/scripts/linux/disparotimers/sgp_ Produccion_DisparoTimers.sh start Verificación de operación: ps -fea grep SGP_Produccion_DisparoTimers Este proceso SOLAMENTE corre por lo general en HAPP1, en caso de falla se puede levantar en HAPP2.
Es importante que SOLO UN servicio de timmers este corriendo en los dos servidores. Es muy importante verificar que este servicio esté subido cada vez que se reinicie el sistema.