Riparazione automatica con Apigee-monit

Apigee Edge per il cloud privato include apigee-monit, uno strumento basato sull'open source utilità di monitoraggio. apigee-monit periodicamente eseguire il polling dei servizi perimetrali; se un servizio non è disponibile, apigee-monit tenta di riavviarlo.

Per utilizzare apigee-monit, devi installarlo manualmente. Non fa parte del dell'installazione standard.

Per impostazione predefinita, apigee-monit controlla lo stato dei servizi Edge ogni 60 secondi.

Avvio rapido

Questa sezione ti mostra come iniziare a usare apigee-monit in tempi rapidi.

Se utilizzi Amazon Linux, prima install monit tramite Fedora. Altrimenti, saltare questo passaggio.

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

Per installare apigee-monit, svolgi i seguenti passaggi:

  Installa 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

Questa operazione installa apigee-monit e avvia il monitoraggio di tutti i componenti sul nodo per impostazione predefinita.

  Interrompere i componenti di monitoraggio
/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
  Avvia i componenti di monitoraggio
/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
  Ottenere informazioni di riepilogo sullo stato
/opt/apigee/apigee-service/bin/apigee-service apigee-monit report
/opt/apigee/apigee-service/bin/apigee-service apigee-monit summary
  Esamina i apigee-monit file di log
cat /opt/apigee/var/log/apigee-monit/apigee-monit.log

Ciascuno di questi e altri argomenti sono descritti in dettaglio nelle sezioni seguenti.

Informazioni su apigee-monit

apigee-monit aiuta a garantire che tutti i componenti su un nodo restino attivi e in esecuzione. Per farlo, la fornitura di una serie di servizi, tra cui:

  • Riavvio dei servizi non riusciti
  • Visualizzazione delle informazioni di riepilogo
  • Stato di monitoraggio del logging
  • Invio di notifiche
  • Monitoraggio dei servizi non Edge

Apigee consiglia di monitorare apigee-monit per garantirne l'esecuzione. Per ulteriori informazioni, vedi Monitor apigee-monit.

Architettura apigee-monit

Durante l'installazione e la configurazione di Apigee Edge per il cloud privato, puoi installare facoltativamente un'istanza separata di apigee-monit su ciascun nodo nel tuo cluster. Queste istanze apigee-monit separate operano in modo indipendente non comunicano lo stato dei componenti agli altri nodi né comunicare i guasti dell'utilità di monitoraggio stessa a qualsiasi servizio centrale.

L'immagine seguente mostra l'architettura apigee-monit in un cluster a 5 nodi:

Architettura
  di Apigee Monitoring in un cluster a 5 nodi
Figura 1: un'istanza separata di apigee-monit viene eseguita in modo isolato su ciascun nodo in cluster

Configurazioni dei componenti

apigee-monit utilizza le configurazioni dei componenti per determinare quali componenti monitorare, quali gli aspetti del componente da verificare e le azioni da intraprendere in caso di errore.

Per impostazione predefinita, apigee-monit monitora tutti i componenti Edge su un nodo utilizzando il componente predefinito configurazioni. Per visualizzare le impostazioni predefinite, puoi esaminare la configurazione dei componenti di apigee-monit . Non puoi modificare le configurazioni predefinite dei componenti.

apigee-monit controlla diversi aspetti di un componente, a seconda del componente che sta controllando. La la seguente tabella elenca i controlli di apigee-monit per ogni componente e mostra dove si trova per ogni componente. Alcuni componenti sono definiti in un'unica configurazione , che altri hanno le proprie configurazioni.

Componente Località di configurazione Che cosa viene monitorato
Server di gestione /opt/apigee/edge-management-server/monit/default.conf apigee-monit controlli:
  • Le porte specificate sono aperte e accettano richieste
  • I protocolli specificati sono supportati
  • Stato della risposta

Inoltre, per questi componenti apigee-monit:

  • Richiede più errori entro un determinato numero di cicli prima di intervenire
  • Imposta un percorso di richiesta personalizzato
Processore di messaggi /opt/apigee/edge-message-processor/monit/default.conf
Server Postgres /opt/apigee/edge-postgres-server/monit/default.conf
Server Qpid /opt/apigee/edge-qpid-server/monit/default.conf
Router /opt/apigee/edge-router/monit/default.conf
Cassandra
UI Edge
OpenLDAP
Postgres
Qpid
Custode zoologico
/opt/apigee/data/apigee-monit/monit.conf apigee-monit controlli:
  • Il servizio è in esecuzione

L'esempio seguente mostra la configurazione predefinita dei componenti per 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

L'esempio seguente mostra la configurazione predefinita per l'interfaccia utente classica (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"

Questo vale per la UI classica, non per la nuova UI Edge il cui nome componente è edge-management-ui.

Non puoi modificare le configurazioni predefinite dei componenti per alcun componente Apigee Edge per il cloud privato. Puoi: ma aggiungi le tue configurazioni dei componenti per i servizi esterni, ad esempio l'endpoint di destinazione o il servizio httpd. Per ulteriori informazioni, vedi Configurazioni dei componenti non Apigee.

Per impostazione predefinita, apigee-monit monitora tutti i componenti su un nodo su cui è in esecuzione. Puoi attivare o disattivarla per tutti i componenti o per singoli componenti. Per ulteriori informazioni, vedi:

Installa apigee-monit

apigee-monit non è installato per impostazione predefinita; puoi installarlo manualmente dopo aver eseguito l'upgrade o l'installazione Versione 4.19.01 o successiva di Apigee Edge per il cloud privato.

Questa sezione descrive come installare apigee-monit.

Per informazioni sulla disinstallazione di apigee-monit, consulta Disinstalla apigee-monit.

Installa apigee-monit

Questa sezione descrive come installare apigee-monit.

Per installare apigee-monit:

  1. Installa apigee-monit con il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit install
  2. Configura apigee-monit con il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit configure
  3. Avvia apigee-monit con il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service apigee-monit start
  4. Ripeti questa procedura su ciascun nodo del cluster.

Avvia e arresta i componenti di monitoraggio

Quando un servizio viene interrotto per qualsiasi motivo, apigee-monit tenta di riavviarlo.

Questo può causare problemi se vuoi interrompere intenzionalmente un componente. Ad esempio, potresti vuoi interrompere un componente quando devi eseguirne il backup o l'upgrade. Se apigee-monit riavvia il servizio durante il backup o l'upgrade, la procedura di manutenzione può essere potrebbe non funzionare correttamente.

Le sezioni seguenti mostrano le opzioni per interrompere il monitoraggio dei componenti.

Arresta un componente e annullane il monitoraggio

Per arrestare un componente e annullarne il monitoraggio, esegui questo comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit stop-component -c component_name
component_name può essere uno dei seguenti:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (database PostgreSQL)
  • apigee-qpidd (qpidd)
  • apigee-sso (SSO perimetrale)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (server di gestione)
  • edge-management-ui (nuova UI di Edge)
  • edge-message-processor (Elaboratore messaggi)
  • edge-postgres-server (server Postgres)
  • edge-qpid-server (server Qpid)
  • edge-router (router Edge)
  • edge-ui (UI classica)

Tieni presente che "tutti" non è un'opzione valida per stop-component. Puoi interrompere e non monitorare un solo componente alla volta con stop-component.

Per riavviare il componente e riprendere il monitoraggio, esegui questo comando:

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

Tieni presente che "tutti" non è un'opzione valida per start-component.

Per istruzioni su come arrestare e annullare il monitoraggio di tutti i componenti, consulta: Arresta tutti i componenti e annullane il monitoraggio.

Annullare il monitoraggio di un componente (ma non interromperlo)

Per annullare il monitoraggio di un componente (ma non arrestarlo), esegui questo comando:

/opt/apigee/apigee-service/bin/apigee-service apigee-monit unmonitor -c component_name
component_name può essere uno dei seguenti:
  • apigee-cassandra (Cassandra)
  • apigee-openldap (OpenLDAP)
  • apigee-postgresql (database PostgreSQL)
  • apigee-qpidd (qpidd)
  • apigee-sso (SSO perimetrale)
  • apigee-zookeeper (ZooKeeper)
  • edge-management-server (server di gestione)
  • edge-management-ui (nuova UI di Edge)
  • edge-message-processor (Elaboratore messaggi)
  • edge-postgres-server (server Postgres)
  • edge-qpid-server (server Qpid)
  • edge-router (router Edge)
  • edge-ui (UI classica)

Per riprendere il monitoraggio del componente, esegui questo comando:

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

Annullare il monitoraggio di tutti i componenti (ma non interromperli)

Per annullare il monitoraggio di tutti i componenti (ma non arrestarli), esegui questo comando:

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

Per riprendere il monitoraggio di tutti i componenti, esegui questo comando:

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

Interrompi tutti i componenti e annullane il monitoraggio

Per arrestare tutti i componenti e annullarne il monitoraggio, esegui questi comandi:

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

Per riavviare tutti i componenti e riprendere il monitoraggio, esegui questi comandi:

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

Per interrompere il monitoraggio di tutti i componenti, puoi anche disattivare apigee-monit, come descritto in Interrompi, avvia e disattiva apigee-monit.

Arresta, avvia e disattiva apigee-monit

Come per qualsiasi servizio, puoi interrompere e avviare apigee-monit utilizzando l'apigee-service . Inoltre, apigee-monit supporta il comando unmonitor, che consente di interrompere temporaneamente i componenti di monitoraggio.

Interrompi apigee-monit

Per arrestare apigee-monit, usa il seguente comando:

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

Avvia apigee-monit

Per avviare apigee-monit, usa il seguente comando:

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

Disattiva apigee-monit

Puoi sospendere il monitoraggio di tutti i componenti sul nodo utilizzando il seguente comando:

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

In alternativa, puoi disabilitare definitivamente apigee-monit disinstallandolo dal nodo, come descritto in Disinstalla apigee-monit.

Disinstalla apigee-monit

Per disinstallare apigee-monit:

    conf_monit_httpd_port La porta del daemon httpd. apigee-monit utilizza httpd per la propria dashboard l'app e abilitare report/riepilogo. Il valore predefinito è 2812. conf_monit_httpd_allow Vincoli sulle richieste al daemon httpd. apigee-monit usi httpd per eseguire la propria app dashboard e abilitare report/riepilogo. Questo valore deve punta al localhost (l'host su cui è in esecuzione httpd).

    Per richiedere che le richieste includano un nome utente e una password, utilizza la seguente sintassi:

    conf_monit_httpd_allow=allow username:"password"\nallow 127.0.0.1

    Quando aggiungi un nome utente e una password, inserisci "\n" tra ciascun vincolo. Azioni sconsigliate inserisci ritorni a capo o ritorni a capo effettivi nel valore.

    conf_monit_monit_datadir La directory in cui sono archiviati i dettagli degli eventi. conf_monit_monit_delay_time La quantità di tempo che apigee-monit attende dopo il primo caricamento in memoria prima di viene eseguito. Questa operazione influisce su apigee-monit solo sul primo controllo del processo. conf_monit_monit_logdir La posizione del file di log di apigee-monit. conf_monit_monit_retry_time La frequenza con cui apigee-monit tenta di controllare ogni processo; il valore predefinito è 60 secondi. conf_monit_monit_rundir La posizione del PID e dei file di stato, che apigee-monit utilizza per controllare i processi.

    Per personalizzare le impostazioni predefinite di controllo di apigee-monit:

    1. Modifica il seguente file:
      /opt/apigee/customer/application/monit.properties

      Se il file non esiste, crealo e imposta il proprietario su "apigee" utente:

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

      Tieni presente che, se il file esiste già, potrebbero essere state definite altre proprietà di configurazione. oltre a quanto indicato nella tabella precedente. Non puoi modificare proprietà diverse da quelli elencati sopra.

    2. Imposta o sostituisci i valori delle proprietà con i nuovi valori.

      Ad esempio, per cambiare la posizione del file di log in /tmp, aggiungi o modifica il seguente proprietà:

      conf_monit_monit_logdir=/tmp/apigee-monit.log
    3. Salva le modifiche apportate al file monit.properties.
    4. Ricarica apigee-monit con il seguente comando:
      /opt/apigee/apigee-service/bin/apigee-service apigee-monit reload

      Se apigee-monit non si riavvia, verifica la presenza di errori nel file di log come descritto in Accedi a apigee-monit file di log.

    5. Ripeti questa procedura per ciascun nodo nel cluster.

    Tieni presente che questo vale solo per i componenti non Edge. Non puoi personalizzare le configurazioni dei componenti. per i componenti Edge.

    Accedi ai file di log apigee-monit

    apigee-monit registra in un log tutte le attività, inclusi eventi, riavvii, modifiche alla configurazione e avvisi. .

    Il percorso predefinito del file di log è:

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

    Puoi modificare la località predefinita personalizzando il controllo apigee-monit impostazioni.

    Le voci dei file di log hanno il seguente 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'

    Non puoi personalizzare il formato delle voci del file di log apigee-monit.

    Visualizzare lo stato aggregato con apigee-monit

    apigee-monit include i seguenti comandi che forniscono informazioni sullo stato aggregate relative al componenti su un nodo:

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

    Ciascuno di questi comandi è spiegato più dettagliatamente nelle sezioni che seguono.

    report

    Il comando report fornisce un riepilogo aggregato dei componenti presenti, inattivi, in fase di inizializzazione o attualmente non monitorati su un nodo. La L'esempio seguente richiama il comando report:

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

    L'esempio seguente mostra l'output report su un AIO (all-in-one) configurazione:

    /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

    In questo esempio, apigee-monit segnala che 11 dei 12 servizi sono attivi. Un servizio non è attualmente monitorati.

    Potresti visualizzare un errore Connection refused quando esegui per la prima volta Comando report. In questo caso, attendi che la durata del processo conf_monit_monit_delay_time e riprova.

    riepilogo

    Il comando summary elenca tutti i componenti e ne indica lo stato. Le seguenti esempio richiama il comando summary:

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

    L'esempio seguente mostra l'output summary su un AIO (all-in-one) configurazione:

    /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

    Se ricevi l'errore Connection refused quando esegui per la prima volta summary, prova ad attendere per tutta la durata conf_monit_monit_delay_time e riprova.

    Monitora apigee-monit

    Come best practice, controlla regolarmente che apigee-monit sia in esecuzione su ogni nodo.

    Per verificare che apigee-monit sia in esecuzione, usa il seguente comando:

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

    Apigee consiglia di emettere periodicamente questo comando su ciascun nodo che esegue apigee-monit. Un modo per farlo è utilizzare un'utilità come cron, che esegue attività pianificate all'indirizzo a intervalli predefiniti.

    Per utilizzare cron per monitorare apigee-monit:

    1. Aggiungi l'assistenza per cron copiando il apigee-monit.cron alla directory /etc/cron.d, come mostrato nell'esempio seguente:
      cp /opt/apigee/apigee-monit/cron/apigee-monit.cron /etc/cron.d/
    2. Apri il file apigee-monit.cron per modificarlo.

      Il file apigee-monit.cron definisce il job cron da eseguire nonché la frequenza con cui esegui quel job. L'esempio seguente mostra il valore predefinito valori:

      # 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

      Questo file utilizza la seguente sintassi, in cui i primi cinque campi definiscono l'ora in cui apigee-monit esegue la sua azione:

      min hour day_of_month month day_of_week task_to_execute

      Ad esempio, il tempo di esecuzione predefinito è */2 * * * *, che indica cron per controllare il processo apigee-monit ogni 2 minuti.

      Non puoi eseguire un job cron più di una volta al minuto.

      Per ulteriori informazioni sull'utilizzo di cron, consulta la documentazione o il manuale del sistema operativo del server pagine.

    3. Modifica le impostazioni di cron in modo che corrispondano ai criteri della tua organizzazione. Ad esempio, per modifica la frequenza di esecuzione ogni 5 minuti, imposta la definizione del job come segue:
      */5 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit
    4. Salva il file apigee-monit.cron.
    5. Ripeti questa procedura per ciascun nodo nel cluster.

    Se cron non inizia a guardare apigee-monit, controlla che:

    • C'è una riga vuota dopo la definizione del job cron.
    • Nel file è definito un solo job cron. (Le righe commentate non count.)

    Se vuoi arrestare o disabilitare temporaneamente apigee-monit, devi disabilitare questo job cron, altrimenti cron riavvierà apigee-monit.

    Per disattivare cron, esegui una delle seguenti operazioni:

    • Elimina il file /etc/cron.d/apigee-monit.cron:
      sudo rm /etc/cron.d/apigee-monit.cron

      Dovrai copiarlo di nuovo se in un secondo momento vuoi riattivare cron per guardare apigee-monit.

      OPPURE

    • Modifica il file /etc/cron.d/apigee-monit.cron e commenta il job mediante l'aggiunta di un carattere "#" all'inizio della riga; Ad esempio:
      # 10 * * * * root /opt/apigee/apigee-service/bin/apigee-service apigee-monit monitor_monit