Autoréparation avec apigee-monit

Apigee Edge pour Private Cloud inclut apigee-monit, un outil basé sur l'Open Source utilitaire monit. apigee-monit régulièrement interroge les services Edge ; Si un service est indisponible, apigee-monit tente de le redémarrer.

Pour utiliser apigee-monit, vous devez l'installer manuellement. Il ne fait pas partie du l'installation standard.

Par défaut, apigee-monit vérifie l'état des services Edge toutes les 60 secondes.

Démarrage rapide

Cette section vous explique comment être rapidement opérationnel avec apigee-monit.

Si vous utilisez Amazon Linux ou Oracle-Linux-7.X, commencez par install monit via Fedora. Sinon, ignorer cette étape.

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

Pour installer apigee-monit, procédez comme suit:

  Installer 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

Cette action installe apigee-monit et commence à surveiller tous les composants du nœud par défaut.

  Arrêter la surveillance des composants
/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
  Commencer à surveiller les composants
/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
  Obtenir des informations récapitulatives sur l'état
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
  Consulter les fichiers journaux apigee-monit
cat /opt/apigee/var/log/apigee-monit/apigee-monit.log

Chacun de ces sujets et d'autres sont décrits en détail dans les sections suivantes.

À propos de apigee-monit

apigee-monit permet de s'assurer que tous les composants d'un nœud restent opérationnels. Pour ce faire, Fournir divers services, y compris:

  • Redémarrer les services défaillants
  • Afficher des informations récapitulatives
  • État de la surveillance de la journalisation
  • Envoi de notifications
  • Surveiller les services non-Edge

Apigee vous recommande de surveiller apigee-monit pour vous assurer qu'il fonctionne. Pour plus d'informations, consultez la section Surveiller apigee-monit.

architecture apigee-monit

Lors de l'installation et de la configuration d'Apigee Edge pour Private Cloud, vous pouvez installer une instance distincte de apigee-monit sur chaque nœud de votre cluster. Ces instances apigee-monit distinctes fonctionnent indépendamment d'une instance un autre: ils ne communiquent pas l'état de leurs composants aux autres nœuds, communiquer les défaillances de l'utilitaire de surveillance lui-même à tout service central.

L'image suivante illustre l'architecture apigee-monit dans un cluster à cinq nœuds:

<ph type="x-smartling-placeholder">
</ph> L&#39;architecture
  d&#39;Apigee Monit dans un cluster à cinq nœuds
Figure 1: Une instance distincte de apigee-monit s'exécute de manière isolée sur chaque nœud d'une cluster

Configurations de composants

apigee-monit utilise des configurations de composants pour déterminer les composants à surveiller, les composants aspects du composant à vérifier et les mesures à prendre en cas de défaillance.

Par défaut, apigee-monit surveille tous les composants Edge d'un nœud à l'aide de leur composant prédéfini de configuration. Pour afficher les paramètres par défaut, vous pouvez consulter la configuration du composant apigee-monit . Vous ne pouvez pas modifier la configuration par défaut des composants.

apigee-monit vérifie différents aspects d'un composant, selon celui qu'il vérifie. La Le tableau suivant liste ce que apigee-monit vérifie pour chaque composant et indique où celui-ci pour chaque composant. Notez que certains composants sont définis dans une configuration unique dont d'autres ont leurs propres configurations.

Composant Emplacement de la configuration Métriques surveillées
Serveur de gestion /opt/apigee/edge-management-server/monit/default.conf Vérifications apigee-monit: <ph type="x-smartling-placeholder">
    </ph>
  • Le ou les ports spécifiés sont ouverts et acceptent les requêtes
  • Le ou les protocoles spécifiés sont acceptés
  • État de la réponse

De plus, pour ces composants apigee-monit:

  • Nécessite plusieurs défaillances dans un certain nombre de cycles avant de prendre des mesures
  • Définit un chemin de requête personnalisé
Processeur de messages /opt/apigee/edge-message-processor/monit/default.conf
Serveur Postgres /opt/apigee/edge-postgres-server/monit/default.conf
Serveur Qpid /opt/apigee/edge-qpid-server/monit/default.conf
Routeur /opt/apigee/edge-router/monit/default.conf
Cassandra
Interface utilisateur périphérique
OpenLDAP
Postgres
Qpid
ZooKeeper
/opt/apigee/data/apigee-monit/monit.conf Vérifications apigee-monit: <ph type="x-smartling-placeholder">
    </ph>
  • Service en cours d'exécution

L'exemple suivant montre la configuration de composant par défaut pour edge-router composant:

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

L'exemple suivant présente la configuration par défaut de l'interface utilisateur classique (edge-ui) composant:

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"

Cela s'applique à l'interface utilisateur classique, et non à la nouvelle interface utilisateur Edge dont le nom de composant est edge-management-ui

Vous ne pouvez pas modifier les configurations de composant par défaut d'un composant Apigee Edge for Private Cloud. Vous pouvez mais ajoutez vos propres configurations de composants pour les services externes, comme votre point de terminaison cible ou le service httpd. Pour en savoir plus, consultez Configurations de composants autres qu'Apigee.

Par défaut, apigee-monit surveille tous les composants d'un nœud sur lequel il s'exécute. Vous pouvez activer ou le désactiver pour tous les composants ou pour des composants individuels. Pour en savoir plus, consultez les pages suivantes :

Installer apigee-monit

apigee-monit n'est pas installé par défaut. vous pouvez l'installer manuellement après l'installation version 4.19.01 ou ultérieure d'Apigee Edge pour Private Cloud.

Cette section explique comment installer apigee-monit.

Pour en savoir plus sur la désinstallation de apigee-monit, consultez Désinstallez apigee-monit.

Installer apigee-monit

Cette section explique comment installer apigee-monit.

Pour installer apigee-monit:

  1. Installez apigee-monit à l'aide de la commande suivante :
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit install
  2. Configurez apigee-monit à l'aide de la commande suivante:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
  3. Démarrez apigee-monit à l'aide de la commande suivante:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit start
  4. Répétez cette procédure sur chaque nœud de votre cluster.

Arrêter et démarrer la surveillance des composants

Lorsqu'un service s'arrête pour une raison quelconque, apigee-monit tente de le redémarrer.

Cela peut poser un problème si vous souhaitez arrêter délibérément un composant. Par exemple, vous pouvez arrêter un composant lorsque vous devez le sauvegarder ou le mettre à niveau. Si apigee-monit redémarre le service pendant la sauvegarde ou la mise à niveau, votre procédure de maintenance peut être et peut entraîner sa défaillance.

Les sections suivantes présentent les options permettant d'arrêter la surveillance des composants.

Arrêter un composant et annuler sa surveillance

Pour arrêter un composant et l'annuler, exécutez la commande suivante:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop-component -c component_name
component_name peut être l'un des éléments suivants:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (base de données PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (authentification unique Edge)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (serveur de gestion)
  • edge-management-ui (nouvelle interface utilisateur de périphérie)
  • edge-message-processor (processeur de messages)
  • edge-postgres-server (serveur Postgres)
  • edge-qpid-server (serveur Qpid)
  • edge-router (routeur périphérique)
  • edge-ui (interface utilisateur classique)

Notez que "tous" n'est pas une option valide pour stop-component. Vous pouvez arrêter et désactiver la surveillance d'un seul composant à la fois avec stop-component.

Pour redémarrer le composant et reprendre la surveillance, exécutez la commande suivante:

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

Notez que "tous" n'est pas une option valide pour start-component.

Pour savoir comment arrêter ou désactiver la surveillance de tous les composants, consultez Arrêtez tous les composants et annulez leur surveillance.

Annuler la surveillance d'un composant (sans l'arrêter)

Pour désactiver la surveillance d'un composant (sans l'arrêter), exécutez la commande suivante:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
component_name peut être l'un des éléments suivants:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (base de données PostgreSQL)
  • apigee-qpidd (Qpidd)
  • apigee-sso (authentification unique Edge)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (serveur de gestion)
  • edge-management-ui (nouvelle interface utilisateur de périphérie)
  • edge-message-processor (processeur de messages)
  • edge-postgres-server (serveur Postgres)
  • edge-qpid-server (serveur Qpid)
  • edge-router (routeur périphérique)
  • edge-ui (interface utilisateur classique)

Pour reprendre la surveillance du composant, exécutez la commande suivante:

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

Annuler la surveillance de tous les composants (sans les arrêter)

Pour désactiver la surveillance de tous les composants (sans les arrêter), exécutez la commande suivante:

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

Pour reprendre la surveillance de tous les composants, exécutez la commande suivante:

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

Arrêter tous les composants et annuler leur surveillance

Pour arrêter tous les composants et annuler leur surveillance, exécutez les commandes suivantes:

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

Pour redémarrer tous les composants et reprendre la surveillance, exécutez les commandes suivantes:

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

Pour arrêter de surveiller tous les composants, vous pouvez également désactiver apigee-monit, comme décrit dans la section Arrêter, démarrer et désactiver apigee-monit.

Arrêter, démarrer et désactiver apigee-monit

Comme pour tout service, vous pouvez arrêter et démarrer apigee-monit à l'aide de apigee-service . De plus, apigee-monit est compatible avec la commande unmonitor, qui vous permet arrêter temporairement les composants de surveillance.

Arrêter apigee-monit

Pour arrêter apigee-monit, utilisez la commande suivante:

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

Démarrer apigee-monit

Pour démarrer apigee-monit, utilisez la commande suivante:

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

Désactiver apigee-monit

Vous pouvez suspendre la surveillance de tous les composants du nœud à l'aide de la commande suivante:

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

Vous pouvez également désactiver définitivement apigee-monit en le désinstallant du nœud, comme décrit dans Désinstaller apigee-monit.

Désinstaller apigee-monit

Pour désinstaller apigee-monit:

<ph type="x-smartling-placeholder">
    </ph> conf_monit_httpd_port Port du daemon httpd. apigee-monit utilise httpd pour son tableau de bord l'application et pour activer les rapports/résumés. La valeur par défaut est 2812. conf_monit_httpd_allow Contraintes sur les requêtes envoyées au daemon httpd. apigee-monit utilisations httpd pour exécuter son application de tableau de bord et activer les rapports/résumés. Cette valeur doit pointez vers l'hôte local (l'hôte sur lequel httpd s'exécute.

    Pour exiger que les requêtes incluent un nom d'utilisateur et un mot de passe, utilisez la syntaxe suivante:

    conf_monit_httpd_allow=allow username:"password"\nallow 127.0.0.1

    Lorsque vous ajoutez un nom d'utilisateur et un mot de passe, insérez un "\n" entre chaque contrainte. À ne pas faire insérera des sauts de ligne ou des retours chariot réels dans la valeur.

    conf_monit_monit_datadir Répertoire dans lequel les détails de l'événement sont stockés. conf_monit_monit_delay_time Temps d'attente de apigee-monit après son premier chargement en mémoire avant d'être s'exécute. Cela n'affecte apigee-monit que la première vérification du processus. conf_monit_monit_logdir Emplacement du fichier journal apigee-monit. conf_monit_monit_retry_time Fréquence à laquelle apigee-monit tente de vérifier chaque processus. la valeur par défaut est 60 secondes. conf_monit_monit_rundir Emplacement des fichiers PID et d'état, que apigee-monit utilise pour vérifier les processus.

    Pour personnaliser les paramètres de commande apigee-monit par défaut:

    1. Modifiez le fichier suivant :
      /opt/apigee/customer/application/monit.properties

      Si le fichier n'existe pas, créez-le et définissez le propriétaire sur "apigee" utilisateur:

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

      Notez que si le fichier existe déjà, d'autres propriétés de configuration peuvent être définies. au-delà de ce qui est répertorié dans le tableau ci-dessus. Vous ne devez pas modifier les propriétés autres que celles énumérées ci-dessus.

    2. Définissez ou remplacez les valeurs de propriété par vos nouvelles valeurs.

      Par exemple, pour remplacer l'emplacement du fichier journal par /tmp, ajoutez ou modifiez le paramètre la propriété suivante:

      conf_monit_monit_logdir=/tmp/apigee-monit.log
    3. Enregistrez les modifications apportées au fichier monit.properties.
    4. Actualisez apigee-monit avec la commande suivante:
      /opt/apigee/apigee-service/bin/apigee-service apigee-monit reload

      Si apigee-monit ne redémarre pas, recherchez les erreurs dans le fichier journal, comme décrit dans la section Accédez aux fichiers journaux apigee-monit.

    5. Répétez cette procédure pour chaque nœud de votre cluster.

    Notez que cette procédure ne concerne que les composants autres que Edge. Vous ne pouvez pas personnaliser les configurations des composants pour les composants Edge.

    Accéder aux fichiers journaux apigee-monit

    apigee-monit consigne dans un journal toutes les activités, y compris les événements, les redémarrages, les modifications de configuration et les alertes. .

    L'emplacement par défaut du fichier journal est:

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

    Vous pouvez modifier l'emplacement par défaut en personnalisant la commande apigee-monit. paramètres.

    Les entrées des fichiers journaux se présentent sous la forme suivante:

    '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'

    Vous ne pouvez pas personnaliser le format des entrées du fichier journal apigee-monit.

    Afficher l'état agrégé avec apigee-monit

    apigee-monit inclut les commandes suivantes qui vous fournissent des informations d'état agrégées sur le composants sur un nœud:

    Commande Utilisation
    report
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit report
    summary
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit summary

    Chacune de ces commandes est expliquée plus en détail dans les sections suivantes.

    rapport

    La commande report fournit un récapitulatif cumulé du nombre de composants utilisés. arrêtés, en cours d'initialisation ou non surveillés sur un nœud. La L'exemple suivant appelle la commande report:

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

    L'exemple suivant montre la sortie report sur un AIO (tout-en-un) configuration:

    /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

    Dans cet exemple, 11 des 12 services sont signalés par apigee-monit comme étant opérationnels. Un service n'est pas en cours de surveillance.

    Vous pouvez obtenir une erreur Connection refused lorsque vous exécutez pour la première fois la report. Dans ce cas, attendez la durée de l'événement conf_monit_monit_delay_time, puis réessayez.

    résumé

    La commande summary liste chaque composant et indique son état. Les éléments suivants : appelle la commande summary:

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

    L'exemple suivant montre la sortie summary sur un AIO (tout-en-un) configuration:

    /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 vous obtenez une erreur Connection refused lorsque vous exécutez la commande summary, attendez la durée de la commande conf_monit_monit_delay_time, puis réessayez.

    Surveiller apigee-monit

    Il est recommandé de vérifier régulièrement que apigee-monit s'exécute sur chaque nœud.

    Pour vérifier que apigee-monit est en cours d'exécution, utilisez la commande suivante:

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

    Apigee vous recommande d'exécuter cette commande régulièrement sur chaque nœud qui exécute apigee-monit. Pour ce faire, vous pouvez utiliser un utilitaire tel que cron qui exécute les tâches planifiées à à intervalles prédéfinis.

    Pour utiliser cron afin de surveiller apigee-monit:

    1. Ajoutez la prise en charge de cron en copiant apigee-monit.cron. vers le répertoire /etc/cron.d, comme le montre l'exemple suivant:
      cp /opt/apigee/apigee-monit/cron/apigee-monit.cron /etc/cron.d/
    2. Ouvrez le fichier apigee-monit.cron pour le modifier.

      Le fichier apigee-monit.cron définit la tâche cron à exécuter ainsi que la fréquence d'exécution de ce job. L'exemple suivant montre :

      # 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

      Ce fichier utilise la syntaxe suivante, dans laquelle les cinq premiers champs définissent l'heure à laquelle apigee-monit exécute son action:

      min hour day_of_month month day_of_week task_to_execute

      Par exemple, le temps d'exécution par défaut est */2 * * * *, ce qui indique cron pour vérifier le processus apigee-monit toutes les deux minutes.

      Vous ne pouvez pas exécuter une tâche cron plus d'une fois par minute.

      Pour plus d'informations sur l'utilisation de cron, consultez la documentation de l'OS de votre serveur ou le manuel .

    3. Modifiez les paramètres cron pour qu'ils correspondent aux règles de votre organisation. Par exemple, pour modifiez la fréquence d'exécution sur toutes les 5 minutes, définissez la définition du job comme suit:
      */5 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
    4. Enregistrez le fichier apigee-monit.cron.
    5. Répétez cette procédure pour chaque nœud de votre cluster.

    Si cron ne commence pas à regarder apigee-monit, vérifiez les points suivants:

    • Une ligne vide s'affiche après la définition de la tâche cron.
    • Une seule tâche cron est définie dans le fichier. Notez que les lignes de commentaire ne count.)

    Si vous souhaitez arrêter ou désactiver temporairement apigee-monit, vous devez désactiver ce job cron. aussi, sinon cron redémarrera apigee-monit.

    Pour désactiver cron, effectuez l'une des opérations suivantes:

    • Supprimez le fichier /etc/cron.d/apigee-monit.cron:
      sudo rm /etc/cron.d/apigee-monit.cron

      Vous devrez le copier à nouveau réactiver cron pour regarder apigee-monit par la suite.

      OR

    • Modifier le fichier /etc/cron.d/apigee-monit.cron et mettre en commentaire le job en ajoutant un "#" au début de la ligne ; Par exemple:
      # 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit