Autocicatrización con Apigee Monit

Apigee Edge para la nube privada incluye apigee-monit, una herramienta basada en la infraestructura utilidad monit. apigee-monit periódicamente Servicios perimetrales de encuestas; Si un servicio no está disponible, apigee-monit intentará reiniciarlo.

Para usar apigee-monit, debes instalarlo de forma manual. No forma parte del instalación estándar.

De forma predeterminada, apigee-monit verifica el estado de los servicios perimetrales cada 60 segundos.

Inicio rápido

En esta sección, se muestra cómo comenzar a usar apigee-monit rápidamente.

Si usas Amazon Linux u Oracle-Linux-7.X, primero instalar monit mediante Fedora. De lo contrario, omitir este paso.

sudo yum install -y https://kojipkgs.fedoraproject.org/packages/monit/5.25.1/1.el6/x86_64/monit-5.25.1-1.el6.x86_64.rpm

Para instalar apigee-monit, sigue estos pasos:

  Instalar apigee-monit
/opt/apigee/apigee-service/bin/apigee-service apigee-monit install
/opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

Esto instala apigee-monit y comienza a supervisar todos los componentes del nodo de forma predeterminada.

  Detén los componentes de supervisión
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
  Comenzar a supervisar los componentes
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all
  Cómo obtener información resumida sobre el estado
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
  Observa los archivos de registro apigee-monit.
cat /opt/apigee/var/log/apigee-monit/apigee-monit.log

Cada uno de estos y otros temas se describen en detalle en las siguientes secciones.

Acerca de Apigee-monit

apigee-monit ayuda a garantizar que todos los componentes de un nodo se mantengan en funcionamiento. Para ello, Proporcionar una variedad de servicios, como los siguientes:

  • Reinicia los servicios con errores
  • Mostrando información de resumen
  • Estado de supervisión del registro
  • Envío de notificaciones
  • Supervisa servicios no perimetrales

Apigee recomienda que supervises apigee-monit para asegurarte de que se esté ejecutando. Para obtener más información, consulta Supervisa apigee-monit.

arquitectura de Apigee-monit

Durante la instalación y configuración de Apigee Edge para la nube privada, tienes la opción de instalar una instancia separada de apigee-monit en cada nodo del clúster. Estas instancias de apigee-monit separadas operan de manera independiente de una a otro, no comunican el estado de sus componentes a los otros nodos, ni comunicar fallas de la propia utilidad de supervisión a cualquier servicio central.

En la siguiente imagen, se muestra la arquitectura de apigee-monit en un clúster de 5 nodos:

Arquitectura
  de Apigee en un clúster de 5 nodos
Figura 1: Una instancia separada de apigee-monit se ejecuta de forma aislada en cada nodo de un clúster

Parámetros de configuración de los componentes

apigee-monit usa parámetros de configuración de los componentes para determinar qué componentes supervisar, cuáles del componente que se debe comprobar y qué medidas tomar en caso de que falle.

De forma predeterminada, apigee-monit supervisa todos los componentes de Edge en un nodo mediante su componente predefinido parámetros de configuración. Para ver la configuración predeterminada, puedes consultar la configuración del componente apigee-monit archivos. No puedes cambiar la configuración predeterminada de los componentes.

apigee-monit verifica diferentes aspectos de un componente, según el que esté comprobando. El En la siguiente tabla, se indica lo que apigee-monit verifica para cada componente y se muestra dónde lo hace configuración de cada componente. Ten en cuenta que algunos componentes se definen en una sola configuración de Terraform, que otros tienen sus propias configuraciones.

Componente Ubicación de la configuración Qué se supervisa
Servidor de administración /opt/apigee/edge-management-server/monit/default.conf Verificaciones de apigee-monit:
  • Los puertos especificados están abiertos y aceptan solicitudes
  • Se admiten los protocolos especificados
  • Estado de la respuesta

Además, para estos componentes, apigee-monit:

  • Se requieren varias fallas en una cantidad determinada de ciclos antes de tomar medidas
  • Establece una ruta de solicitud personalizada.
Message Processor /opt/apigee/edge-message-processor/monit/default.conf
Servidor de Postgres /opt/apigee/edge-postgres-server/monit/default.conf
Servidor Qpid /opt/apigee/edge-qpid-server/monit/default.conf
Router /opt/apigee/edge-router/monit/default.conf
Cassandra
IU de Edge
OpenLDAP
Postgres
Qpid
Arquitecto
/opt/apigee/data/apigee-monit/monit.conf Verificaciones de apigee-monit:
  • El servicio se está ejecutando

En el siguiente ejemplo, se muestra la configuración predeterminada de los componentes para edge-router. componente:

check host edge-router with address localhost
  restart program = "/opt/apigee/apigee-service/bin/apigee-service edge-router monitrestart"
  if failed host 10.1.1.0 port 8081 and protocol http
    and request "/v1/servers/self/uuid"
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

  if failed port 15999 and protocol http
    and request "/v1/servers/self"
    and status < 600
    with timeout 15 seconds
    for 2 times within 3 cycles
  then restart

En el siguiente ejemplo, se muestra la configuración predeterminada de la IU clásica (edge-ui). componente:

check process edge-ui
 with pidfile /opt/apigee/var/run/edge-ui/edge-ui.pid
 start program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui start" with timeout 55 seconds
 stop program = "/opt/apigee/apigee-service/bin/apigee-service edge-ui stop"

Esto se aplica a la IU clásica, no a la nueva IU de Edge cuyo nombre de componente sea edge-management-ui

No puedes cambiar la configuración predeterminada de los componentes de ningún componente de Apigee Edge para la nube privada. Puedes hacer lo siguiente: sin embargo, agrega tus propias configuraciones de componentes para servicios externos, como tu extremo de destino o el servicio httpd. Para obtener más información, consulta Configuraciones de componentes que no son de Apigee.

De forma predeterminada, apigee-monit supervisa todos los componentes de un nodo en el que se ejecuta. Puedes habilitar o inhabilitarla para todos los componentes o para componentes individuales. Para obtener más información, consulta:

Instala apigee-monit

apigee-monit no está instalado de forma predeterminada. puedes instalarlo manualmente después de actualizar o instalar versión 4.19.01 o posterior de Apigee Edge para la nube privada.

En esta sección, se describe cómo instalar apigee-monit.

Para obtener información sobre cómo desinstalar apigee-monit, consulta Desinstala apigee-monit.

Instala apigee-monit

En esta sección, se describe cómo instalar apigee-monit.

Para instalar apigee-monit, haz lo siguiente:

  1. Instala apigee-monit con el siguiente comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit install
  2. Configura apigee-monit con el siguiente comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
  3. Inicia apigee-monit con el siguiente comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit start
  4. Repite este procedimiento con cada nodo del clúster.

Detén y comienza a supervisar componentes

Cuando se detiene un servicio por cualquier motivo, apigee-monit intenta reiniciarlo.

Esto puede causar un problema si quieres detener deliberadamente un componente. Por ejemplo, podrías detener un componente cuando necesita crear una copia de seguridad o actualizarlo. Si apigee-monit reinicia el servicio durante la copia de seguridad o la actualización, el procedimiento de mantenimiento puede y puede causar errores.

En las siguientes secciones, se muestran las opciones para detener la supervisión de componentes.

Detén un componente y deja de supervisarlo

Para detener un componente y dejar de supervisarlo, ejecuta el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop-component -c component_name
component_name puede ser una de las siguientes opciones:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (base de datos de PostgreSQL)
  • apigee-qpidd (trinquete)
  • apigee-sso (SSO de Edge)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (servidor de administración)
  • edge-management-ui (nueva IU de Edge)
  • edge-message-processor (Procesador de mensajes)
  • edge-postgres-server (servidor de Postgres)
  • edge-qpid-server (servidor Qpid)
  • edge-router (router perimetral)
  • edge-ui (IU clásica)

Ten en cuenta que “todas” no es una opción válida para stop-component. Puedes detenerte y no supervisas solo un componente a la vez con stop-component.

Para reiniciar el componente y reanudar la supervisión, ejecuta el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start-component -c component_name

Ten en cuenta que “todas” no es una opción válida para start-component.

Para obtener instrucciones sobre cómo detener y desactivar la supervisión de todos los componentes, consulta Detén todos los componentes y anula la supervisión.

Cómo quitar la supervisión de un componente (pero no detenerlo)

Para dejar de supervisar un componente (pero no detenerlo), ejecuta el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
component_name puede ser una de las siguientes opciones:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (base de datos de PostgreSQL)
  • apigee-qpidd (trinquete)
  • apigee-sso (SSO de Edge)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (servidor de administración)
  • edge-management-ui (nueva IU de Edge)
  • edge-message-processor (Procesador de mensajes)
  • edge-postgres-server (servidor de Postgres)
  • edge-qpid-server (servidor Qpid)
  • edge-router (router perimetral)
  • edge-ui (IU clásica)

Para reanudar la supervisión del componente, ejecuta el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c component_name

Anular la supervisión de todos los componentes (pero no detenerlos)

Para quitar la supervisión de todos los componentes (pero no detenerlos), ejecuta el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

Para reanudar la supervisión de todos los componentes, ejecuta el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

Detén todos los componentes y anula la supervisión

Para detener todos los componentes y dejar de supervisarlos, ejecuta los siguientes comandos:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all
/opt/apigee/apigee-service/bin/apigee-all stop

Para reiniciar todos los componentes y reanudar la supervisión, ejecuta los siguientes comandos:

/opt/apigee/apigee-service/bin/apigee-all start
/opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor -c all

Para dejar de supervisar todos los componentes, también puedes inhabilitar apigee-monit, como se describe en Detén, inicia y, también, inhabilita apigee-monit.

Inhabilita, inicia y detén Apigee-monit

Al igual que con cualquier servicio, puedes iniciar y detener apigee-monit con apigee-service. kubectl. Además, apigee-monit admite el comando unmonitor, que te permite dejar de supervisar componentes de forma temporal.

Detén apigee-monit

Para detener apigee-monit, usa el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop

Inicia Apigee-monit

Para iniciar apigee-monit, usa el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit start

Inhabilita apigee-monit

Puedes suspender la supervisión de todos los componentes del nodo con el siguiente comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c all

Como alternativa, puedes inhabilitar apigee-monit de forma permanente si lo desinstalas del nodo, como se describe. en Desinstalar apigee-monit.

Desinstala apigee-monit

Para desinstalar apigee-monit, haz lo siguiente:

    conf_monit_httpd_port El puerto del daemon httpd. apigee-monit usa httpd para su panel y para habilitar los informes y resúmenes. El valor predeterminado es 2,812. conf_monit_httpd_allow Restricciones de las solicitudes al daemon httpd apigee-monit usos httpd para ejecutar su app de panel y habilitar los informes o resúmenes. Este valor debe apuntan al localhost (el host en el que se ejecuta httpd.

    Para exigir que las solicitudes incluyan un nombre de usuario y una contraseña, usa la siguiente sintaxis:

    conf_monit_httpd_allow=allow username:"password"\nallow 127.0.0.1

    Cuando agregues un nombre de usuario y una contraseña, inserta "\n" entre cada restricción. Qué no debes hacer insertar saltos de línea o retornos de carro reales en el valor.

    conf_monit_monit_datadir El directorio en el que se almacenan los detalles del evento. conf_monit_monit_delay_time La cantidad de tiempo que espera apigee-monit luego de que se cargue por primera vez en la memoria antes de o en cualquier plataforma que ejecute Knative. Esto afecta a apigee-monit solo la primera verificación de proceso. conf_monit_monit_logdir La ubicación del archivo de registro apigee-monit. conf_monit_monit_retry_time La frecuencia con la que apigee-monit intenta verificar cada proceso el valor predeterminado es 60 segundos. conf_monit_monit_rundir La ubicación del PID y de los archivos de estado, que apigee-monit usa para verificar los procesos.

    Para personalizar la configuración predeterminada de los controles de apigee-monit, haz lo siguiente:

    1. Edita el siguiente archivo:
      /opt/apigee/customer/application/monit.properties

      Si el archivo no existe, créalo y configura el propietario como “apigee”. usuario:

      chown apigee:apigee /opt/apigee/customer/application/monit.properties

      Ten en cuenta que, si el archivo ya existe, puede haber propiedades de configuración adicionales definidas más allá de lo que se indica en la tabla anterior. No debes modificar propiedades que no sean las mencionadas anteriormente.

    2. Establece o reemplaza los valores de propiedad por tus valores nuevos.

      Por ejemplo, para cambiar la ubicación del archivo de registro a /tmp, agrega o edita el archivo siguiente propiedad:

      conf_monit_monit_logdir=/tmp/apigee-monit.log
    3. Guarda los cambios en el archivo monit.properties.
    4. Vuelve a cargar apigee-monit con el siguiente comando:
      /opt/apigee/apigee-service/bin/apigee-service apigee-monit reload

      Si apigee-monit no se reinicia, comprueba si hay errores en el archivo de registro, como se describe en Accede a los archivos de registro de apigee-monit.

    5. Repite este procedimiento con cada nodo de tu clúster.

    Ten en cuenta que esto es solo para componentes que no son de Edge. No puedes personalizar la configuración de los componentes para los componentes de Edge.

    Accede a los archivos de registro de Apigee-monit

    apigee-monit registra toda la actividad en un registro, incluidos eventos, reinicios, cambios de configuración y alertas. .

    La ubicación predeterminada del archivo de registro es la siguiente:

    /opt/apigee/var/log/apigee-monit/apigee-monit.log

    Puedes cambiar la ubicación predeterminada si personalizas el control apigee-monit del usuario.

    Las entradas del archivo de registro tienen el siguiente formato:

    'edge-message-processor' trying to restart
    [UTC Dec 14 16:20:42] info     : 'edge-message-processor' trying to restart
    'edge-message-processor' restart: '/opt/apigee/apigee-service/bin/apigee-service edge-message-processor monitrestart'

    No puedes personalizar el formato de las entradas del archivo de registro apigee-monit.

    Ver el estado agregado con apigee-monit

    apigee-monit incluye los siguientes comandos que te proporcionan información de estado agregada sobre el componentes en un nodo:

    Comando Uso
    report
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    summary
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    Cada uno de estos comandos se explica con más detalle en las siguientes secciones.

    informe

    El comando report te ofrece un resumen completo de cuántos componentes hay. está inactiva, se está inicializando o actualmente no está supervisada en un nodo. El El siguiente ejemplo invoca el comando report:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report

    En el siguiente ejemplo, se muestra la salida de report en un AIO (todo en uno) actual:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    up:            11 (100.0%)
    down:           0 (0.0%)
    initialising:   0 (0.0%)
    unmonitored:    1 (8.3%)
    total:         12 services

    En este ejemplo, apigee-monit informa 11 de los 12 servicios como activos. Un servicio no es que se supervisa actualmente.

    Es posible que recibas un error Connection refused cuando ejecutes el comando por primera vez Comando report. En este caso, espera a que finalice el conf_monit_monit_delay_time y vuelve a intentarlo.

    resumen

    El comando summary enumera cada componente y proporciona su estado. Lo siguiente En este ejemplo, se invoca el comando summary:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    En el siguiente ejemplo, se muestra la salida de summary en un AIO (todo en uno) actual:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
    Monit 5.25.1 uptime: 4h 20m
     Service Name                     Status                      Type
     host_name                        OK                          System
     apigee-zookeeper                 OK                          Process
     apigee-cassandra                 OK                          Process
     apigee-openldap                  OK                          Process
     apigee-qpidd                     OK                          Process
     apigee-postgresql                OK                          Process
     edge-ui                          OK                          Process
     edge-qpid-server                 OK                          Remote Host
     edge-postgres-server             OK                          Remote Host
     edge-management-server           OK                          Remote Host
     edge-router                      OK                          Remote Host
     edge-message-processor           OK                          Remote Host

    Si recibes un error Connection refused cuando ejecutas el comando por primera vez Comando summary, intenta esperar la duración de conf_monit_monit_delay_time y, luego, vuelve a intentarlo.

    Supervisa Apigee-monit

    Se recomienda verificar con regularidad que apigee-monit se ejecute en cada nodo.

    Para comprobar que apigee-monit se esté ejecutando, usa el siguiente comando:

    /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

    Apigee recomienda que emitas este comando de forma periódica en cada nodo que ejecute apigee-monit. Una forma de hacerlo es con una utilidad, como cron, que ejecuta tareas programadas en intervalos predefinidos.

    Si quieres usar cron para supervisar apigee-monit, haz lo siguiente:

    1. Para agregar asistencia cron, copia el archivo apigee-monit.cron. al directorio /etc/cron.d, como se muestra en el siguiente ejemplo:
      cp /opt/apigee/apigee-monit/cron/apigee-monit.cron /etc/cron.d/
    2. Abre el archivo apigee-monit.cron para editarlo.

      El archivo apigee-monit.cron define el trabajo cron que se ejecutará y la frecuencia con la que ejecuta el trabajo. En el siguiente ejemplo, se muestra valores:

      # Cron entry to check if monit process is running. If not start it
      */2 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit

      Este archivo usa la siguiente sintaxis, en la que los primeros cinco campos definen la hora en que apigee-monit ejecuta su acción:

      min hour day_of_month month day_of_week task_to_execute

      Por ejemplo, el tiempo de ejecución predeterminado es */2 * * * *, lo que indica cron para verificar el proceso apigee-monit cada 2 minutos.

      No puedes ejecutar un trabajo cron con mayor frecuencia que una vez por minuto.

      Para obtener más información sobre el uso de cron, consulta la documentación del SO de tu servidor o el manual páginas.

    3. Cambia la configuración de cron para que coincida con las políticas de tu organización. Por ejemplo, para cambia la frecuencia de ejecución a cada 5 minutos, establece la definición del trabajo de la siguiente manera:
      */5 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
    4. Guarda el archivo apigee-monit.cron.
    5. Repite este procedimiento con cada nodo de tu clúster.

    Si cron no comienza a mirar apigee-monit, comprueba lo siguiente:

    • Hay una línea en blanco después de la definición del trabajo cron.
    • Solo hay un trabajo cron definido en el archivo. (Las líneas comentadas no count.)

    Si quieres detener o inhabilitar apigee-monit de forma temporal, debes inhabilitar este trabajo de cron. también, de lo contrario, cron reiniciará apigee-monit.

    Para inhabilitar cron, realiza una de las siguientes acciones:

    • Borra el archivo /etc/cron.d/apigee-monit.cron:
      sudo rm /etc/cron.d/apigee-monit.cron

      Tendrás que volver a copiarla si más adelante quieren volver a habilitar cron para mirar apigee-monit.

      OR

    • Edita el archivo /etc/cron.d/apigee-monit.cron y marca como comentario el trabajo definición agregando "#" al principio de la línea; por ejemplo:
      # 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit