[Herramienta de gestión] Supervisor de la herramienta de gestión de procesos

               

introducción básica

  Supervisor es un sistema cliente / servidor que permite a los usuarios controlar muchos procesos en sistemas operativos similares a UNIX. Es una herramienta de gestión de procesos desarrollada en base al lenguaje Python.

 El lado del servidor de Supervisor se llama supervisor, que es principalmente responsable de iniciar el subproceso administrado cuando se inicia, responder a los comandos del cliente, reiniciar el subproceso bloqueado o salir, registrar la salida del subproceso stdout y stderr, generar y procesar la vida ciclo del evento de subproceso. Puede configurar los parámetros relacionados en un archivo de configuración, incluido el estado de Supervisord y los atributos relacionados de cada subproceso que administra. El archivo de configuración generalmente se encuentra en /etc/supervisord.conf.

  El cliente Supervisor se llama supervisorctl, que proporciona una interfaz similar a un shell (es decir, una línea de comandos) para utilizar las funciones proporcionadas por el servidor supervisor. A través de supervisorctl, los usuarios pueden conectarse al proceso del servidor supervisor, obtener el estado del proceso hijo controlado por el proceso del servidor, iniciar y detener el proceso hijo y obtener la lista de procesos en ejecución. El cliente se comunica con el servidor a través de un socket de dominio Unix o un socket TCP, y el servidor tiene un mecanismo de autenticación de credenciales de identidad, que puede mejorar la seguridad de manera efectiva. Cuando el cliente y el servidor están en la misma máquina, el cliente y el servidor comparten el mismo archivo de configuración /etc/supervisord.conf, y las configuraciones de los dos se distinguen por etiquetas diferentes.

Supervisor también proporciona una página web para ver y administrar el estado del proceso, esta función se usa menos.

Sitio web oficial: http://supervisord.org

imagen

Preparación del entorno de instalación

Entorno del sistema

[root @ nginx ~] # cat / etc / redhat-release 

Versión de CentOS Linux 7.4.1708 (Core) 

[root @ nginx ~] # uname -r

3.10.0-693.17.1.el7.x86_64

[root @ nginx ~] # python --version

Python 2.7.5

Si el entorno de Python no está instalado, puede usar yum install python -y para instalar

Requisitos de la plataforma

Supervisor puede ejecutarse en la mayoría de los sistemas Unix, pero no admite la ejecución en sistemas Windows.

Supervisor requiere Python 2.4 y superior, pero no es compatible con ninguna versión de Python 3.

Instalar el servicio de supervisor

Instalar easy_install

[root @ nginx ~] # yum instalar python-setuptools-devel -y

Instalar supervisor

supervisor de easy_install

Una vez instalado el supervisor, se generarán tres programas de ejecución:

supervisado

# servicio demonio del supervisor (utilizado para recibir comandos de gestión de procesos)

supervisorctl

#Cliente (utilizado para comunicarse con el demonio y enviar instrucciones para el proceso de gestión)

echo_supervisord_conf

#Generar programa de archivo de configuración inicial

Crea un archivo de configuración

Generalmente, el archivo de configuración de inicialización del supervisor se puede generar ejecutando el programa echo_supervisord_conf

mkdir / etc / supervisor

echo_supervisord_conf> /etc/supervisor/supervisord.conf

[root @ ~] # ll /etc/supervisor/supervisord.conf 

-rw-r - r-- 1 raíz raíz 9710 24 de enero 15:10 /etc/supervisor/supervisord.conf

Introducción a los parámetros del archivo de configuración

[unix_http_server]

file = / tmp / supervisor.sock; archivo de socket UNIX, supervisorctl usará

; chmod = 0700; El modo del archivo de socket, el predeterminado es 0700

; chown = nadie: nogroup; El propietario del archivo de socket, formato: uid: gid

; [inet_http_server]; servidor HTTP, que proporciona una interfaz de gestión web

; puerto = 127.0.0.1: 9001 

; La IP y el puerto que se ejecutan en el fondo de la administración web, si están abiertos a la red pública, debe prestar atención a la seguridad

; username = user; El nombre de usuario para iniciar sesión en el fondo de administración

; contraseña = 123; La contraseña para iniciar sesión en el fondo de administración

[supervisor]

logfile = / tmp / supervisord.log

; Archivo de registro, el valor predeterminado es $ CWD / supervisord.log

logfile_maxbytes = 50 MB 

; El tamaño del archivo de registro se rotará si supera, el valor predeterminado es 50 MB, si se establece en 0, significa que el tamaño no está limitado

logfile_backups = 10; el número predeterminado de copias de seguridad de archivos de registro es 10, establecido en 0 significa que no hay copia de seguridad

loglevel = info; nivel de registro, información predeterminada, otros: depurar, advertir, rastrear

pidfile = / tmp / supervisord.pid; pid 文件

nodaemon = false; si se debe comenzar en primer plano, el valor predeterminado es falso, es decir, comenzar en modo demonio

minfds = 1024; El valor mínimo de descriptores de archivo que se pueden abrir, el valor predeterminado es 1024

minprocs = 200; El número mínimo de procesos que se pueden abrir, el valor predeterminado es 200

[supervisorctl]

serverurl = unix: ///tmp/supervisor.sock

; Conecte el supervisor a través del socket UNIX, la ruta es consistente con el archivo en la parte unix_http_server

; serverurl = http: //127.0.0.1: 9001

; Conectar supervisor a través de HTTP

[programa: xx] 

; [programa: xx] es el parámetro de configuración del proceso administrado, xx es el nombre del proceso

comando = / opt / tomcat / bin / catalina.sh ejecutar 

; Comando de inicio del programa

autostart = true; Se inicia automáticamente cuando se inicia el supervisor

startsecs = 10; No hay una salida anormal después de 10 segundos de inicio, significa que el proceso se inició normalmente, el valor predeterminado es 1 segundo

autorestart = true; reinicia automáticamente después de que el programa sale, valores opcionales: [inesperado, verdadero, falso], el valor predeterminado es inesperado, lo que significa que el proceso se reinicia después de ser eliminado inesperadamente

startretries = 3; el número de reintentos automáticos después de un error de inicio, el valor predeterminado es 3

user = tomcat; Qué usuario iniciar el proceso, el valor predeterminado es root

prioridad = 999; La prioridad de inicio del proceso, el valor predeterminado es 999, el valor es pequeño y la prioridad se inicia

redirect_stderr = true; redirige stderr a stdout, por defecto es falso

stdout_logfile_maxbytes = 20 MB; tamaño del archivo de registro de salida estándar, 50 MB predeterminado

stdout_logfile_backups = 20; El número de copias de seguridad del archivo de registro de stdout, el valor predeterminado es 10

; archivo de registro stdout, debe tenerse en cuenta que cuando el directorio especificado no existe, no puede iniciarse normalmente, por lo que debe crear el directorio manualmente (supervisord creará automáticamente el archivo de registro)

stdout_logfile = / opt / apache-tomcat-8.0.35 / logs / catalina.out

stopasgroup=false 

; El valor predeterminado es falso, cuando se mata el proceso, si se debe enviar una señal de detención a este grupo de procesos, incluidos los procesos secundarios

killasgroup = falso     

; El valor predeterminado es falso, envía una señal de interrupción al grupo de procesos, incluidos los procesos secundarios

[incluir] ; incluir otros archivos de configuración

archivos = relativo / directorio / *. ini   

; Puede especificar uno o más archivos de configuración que terminen en .ini

Nota: en el archivo de configuración; es un comentario

Introducción a los comandos de uso común

Una vez que supervisord se inicia correctamente, puede controlar el proceso a través del cliente supervisorctl para iniciar, detener y reiniciar. Ejecute el comando supervisorctl sin agregar parámetros, ingresará al terminal interactivo del cliente supervisor y enumerará todos los procesos actualmente administrados. 

[root @ java-test ~] # supervisorctl 

supervisor> ayuda

comandos predeterminados (escriba ayuda <tema>):

=====================================

agregar borrar fg abrir salir quitar reiniciar iniciar detener actualización 

disponibilidad salir mantener pid recargar volver a leer estado de apagado versión final

imagen

Puede ver el uso y los parámetros de los comandos relacionados a través del comando de ayuda

Proceso de gestión de la configuración

El siguiente es un ejemplo de configuración del proceso de Tomcat:

[programa: tomcat]

comando = / usr / local / tomcat / bin / catalina.sh ejecutar

stdout_logfile = / usr / local / tomcat / logs / catalina.out

inicio automático = verdadero

autorestart = true

startsecs = 5

prioridad = 1

stopasgroup = verdadero

killasgroup = verdadero

Una vez completada la configuración, inicie el servicio

supervisor -c /etc/supervisor/supervisord.conf

Después del inicio, debe realizar las siguientes operaciones para actualizar el archivo de configuración

[root @ ~] # actualización de supervisorctl

[root @ ~] # estado supervisorctl

tomcat RUNNING pid 12223, tiempo de actividad 0:06:31

Comandos de terminal

estado supervisorctl

supervisorctl detener tomcat

supervisorctl start tomcat

supervisorctl reiniciar tomcat

imagen

Hasta ahora, la instalación relacionada y la introducción a la configuración ha terminado. Generalmente, en la producción real, no se recomienda escribir todas las configuraciones en el mismo archivo de configuración, pero se pueden escribir por separado.


Supongo que te gusta

Origin blog.51cto.com/15127557/2668502
Recomendado
Clasificación