Raccogli i log da Apache con Ops Agent

Scopri come raccogliere e visualizzare i log syslog raccolti da un server web Apache installato su un'istanza di macchina virtuale (VM) Compute Engine utilizzando Ops Agent. Puoi utilizzare una procedura simile a quella descritta in questa guida introduttiva per monitorare altre applicazioni di terze parti.

In questa guida rapida imparerai a:

  1. Creare un'istanza VM di Compute Engine e installare Ops Agent.
  2. Installare un server web Apache.
  3. Configurare Ops Agent per il server web Apache.
  4. Visualizzare i log in Esplora log.
  5. Creare un avviso basato su log.
  6. Verificare il tuo avviso.
  7. Eseguire la pulizia.

Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:

Procedura guidata


Prima di iniziare

  1. I vincoli di sicurezza definiti dalla tua organizzazione potrebbero impedirti di completare i passaggi seguenti. Per informazioni sulla risoluzione dei problemi, vedi Sviluppare applicazioni in un ambiente Google Cloud vincolato.

  2. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  3. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  4. Make sure that billing is enabled for your Google Cloud project.

  5. Enable the Compute Engine, Cloud Monitoring, and Cloud Logging APIs.

    Enable the APIs

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Enable the Compute Engine, Cloud Monitoring, and Cloud Logging APIs.

    Enable the APIs

Crea un'istanza VM

  1. Nella console Google Cloud, vai alla pagina Istanze VM:

    Vai a Istanze VM

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

  2. Crea una VM facendo clic su Crea istanza.

  3. Nel campo Nome, inserisci un nome univoco.
  4. Nel campo Tipo di macchina, seleziona e2-small.
  5. Nella sezione Disco di avvio, mantieni l'impostazione predefinita di Debian GNU/Linux.
  6. Nella sezione Firewall, seleziona entrambe le opzioni Consenti traffico HTTP e Consenti traffico HTTPS.
  7. Nella sezione Osservabilità - Ops Agent, seleziona Installa Ops Agent per il monitoraggio e il logging.
  8. Fai clic su Crea.

Installare un server web Apache

Per installare un server web Apache sull'istanza VM Compute Engine, svolgi i seguenti passaggi:

  1. Nella pagina Istanze VM, individua la nuova VM, vai alla colonna Connetti e fai clic su SSH.

    Hai problemi con la connessione? Fai riferimento all'articolo Risoluzione dei problemi relativi a SSH.

  2. Per aggiornare gli elenchi di pacchetti, copia il seguente comando negli appunti, incollalo nel terminale SSH e premi Invio:

    sudo apt-get update
    
  3. Quando viene visualizzato il messaggio "Lettura degli elenchi dei pacchetti in corso... Fine", nel terminale SSH, esegui questo comando per installare un server web Apache2:

    sudo apt-get install apache2 php7.0
    

    Quando ti viene chiesto di continuare l'installazione, inserisci Y. Se il comando di installazione non va a buon fine, utilizza: sudo apt-get install apache2 php.

  4. Quando viene restituito il prompt dei comandi, vai alla pagina Istanze VM e copia l'indirizzo IP esterno della VM nel seguente URL:

    http://EXTERNAL_IP
    
  5. Per connetterti al server web Apache, apri una nuova scheda del browser e inserisci l'URL dal passaggio precedente.

    Una volta installato correttamente il server web, nella scheda del browser viene visualizzata la pagina predefinita di Apache2 Debian.

    Visualizza la pagina predefinita di Apache2.

Raccogli i log e le metriche del server web Apache

In questi passaggi, configuri Ops Agent per raccogliere i log e le metriche dal server web Apache:
  1. Vai al terminale SSH per l'istanza VM. Se non hai un terminale aperto, procedi nel seguente modo:

    1. Nella console Google Cloud, vai alla pagina Istanze VM:

      Vai a Istanze VM

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

    2. Individua la nuova VM e fai clic su SSH.

  2. Copia il seguente comando, poi incollalo nel terminale per la tua istanza, quindi premi Invio:

    # Configures Ops Agent to collect telemetry from the app and restart Ops Agent.
    
    set -e
    
    # Create a back up of the existing file so existing configurations are not lost.
    sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak
    
    # Configure the Ops Agent.
    sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
    metrics:
      receivers:
        apache:
          type: apache
      service:
        pipelines:
          apache:
            receivers:
              - apache
    logging:
      receivers:
        apache_access:
          type: apache_access
        apache_error:
          type: apache_error
      service:
        pipelines:
          apache:
            receivers:
              - apache_access
              - apache_error
    EOF
    
    sudo service google-cloud-ops-agent restart
    sleep 60
    

    Il comando precedente crea la configurazione per raccogliere e importare log e metriche dal server web Apache. Per maggiori informazioni, vedi Configura Ops Agent per il server web Apache.

  3. Attendi che venga visualizzato il prompt dei comandi. Questa operazione richiederà almeno 60 secondi.

Visualizzare i log del server web Apache

Per visualizzare i log nella console Google Cloud, utilizza Esplora log:

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

    I log più recenti vengono visualizzati nel riquadro Risultati query.

  2. Nella barra degli strumenti, assicurati che l'opzione Mostra query sia attivata.

  3. Per visualizzare i log del server web Apache, crea ed esegui una query:

    1. Espandi l'elenco dei progetti Google Cloud dal selettore dei progetti Google Cloud e poi copia l'ID del progetto Google Cloud negli appunti.

    2. Nella seguente espressione, incolla l'ID copiato nel campo PROJECT_ID, quindi copia l'espressione nell'Editor di query:

      resource.type="gce_instance"
      logName=("projects/PROJECT_ID/logs/apache_access" OR "projects/PROJECT_ID/logs/apache_error")
      

      Quando viene eseguita la query precedente, vengono mostrate solo le voci di log apache_access e apache_error.

    3. Fai clic su Esegui query.

      I risultati della query vengono visualizzati nel riquadro Risultati query.

Hai configurato Ops Agent per raccogliere log e metriche dal tuo server web Apache e hai visualizzato i log. Il passaggio successivo consiste nel creare un criterio di avviso in modo da ricevere una notifica quando viene visualizzato un pattern specifico in un log.

Crea un canale di notifica via email

Prima di creare un criterio di avviso, configura i canali di notifica che vuoi che vengano utilizzati. Cloud Monitoring supporta molti tipi diversi di canali di notifica, tra cui email, Slack, PagerDuty e Pub/Sub. Per saperne di più, consulta la pagina Creare e gestire i canali di notifica. Per ricevere le notifiche via email:
  1. Nella console Google Cloud, vai alla pagina  Avvisi:

    Vai ad Avvisi

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

  2. Nella barra degli strumenti, fai clic su Modifica canali di notifica.
  3. Nella pagina Canali di notifica, scorri fino a Email e fai clic su Aggiungi nuovo.
  4. Inserisci il tuo indirizzo email e un nome visualizzato come My email, quindi fai clic su Salva.

Crea un avviso basato su log

Per ricevere una notifica quando viene visualizzato un messaggio specifico nelle voci di log, crea un avviso basato su log. In questa sezione, crei un avviso basato su log per ricevere una notifica quando viene visualizzato un messaggio 404 Not Found nelle voci del log.

  1. Nella console Google Cloud, vai alla pagina Esplora log:

    Vai a Esplora log

    Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

  2. Nella barra degli strumenti Risultati delle query, fai clic su Crea avviso. Viene visualizzato il riquadro dei criteri di avviso basati su log.

  3. In Dettagli avviso, nel campo Nome criterio di avviso, inserisci 404 Not Found.

  4. In Scegli i log da includere in questo avviso, procedi nel seguente modo:

    1. Rimuovi tutti i contenuti presenti nella casella di testo del filtro di log.
    2. Copia la seguente query e incollala nella casella di testo del filtro di log:

      severity>=DEFAULT /help httpRequest.status=404
      

      Il filtro di log precedente cerca voci di log con un livello severity di almeno DEFAULT, che contengono il testo /help e uno stato httpRequest pari a 404.

  5. Nella sezione Imposta la frequenza delle notifiche e la durata della chiusura automatica, procedi nel seguente modo:

    1. Imposta il campo Tempo tra le notifiche su 5 min.
    2. Imposta il campo Durata chiusura automatica incidenti su 30 min.
  6. In Chi dovrebbe ricevere le notifiche?, seleziona l'email dal menu Canali di notifica, quindi fai clic su Salva.

Esegui il test del criterio di avviso

Per testare il criterio di avviso, segui questi passaggi:

  1. Vai al terminale SSH per l'istanza VM. Se non hai un terminale aperto, procedi nel seguente modo:

    1. Nella console Google Cloud, vai alla pagina Istanze VM:

      Vai a Istanze VM

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Compute Engine.

    2. Individua la nuova VM e fai clic su SSH.
  2. Per cercare sul server la pagina falsa localhost/help, esegui questo comando:

    curl localhost/help
    

    Dopo aver visto il messaggio 404 Not Found nel terminale, viene inviata una notifica via email. Il completamento di questo processo richiede vari minuti.

    La notifica via email che ricevi è simile alla seguente:

    L&#39;avviso basato su log di esempio genera una notifica via email.

  3. Per visualizzare le nuove voci di log:

    1. Nella console Google Cloud, vai alla pagina Esplora log:

      Vai a Esplora log

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Logging.

    2. Nella barra degli strumenti, fai clic su Vai a più recenti.

Hai configurato Ops Agent per raccogliere log e metriche dal tuo server web Apache, ma hai visualizzato solo i log. Per informazioni su come visualizzare le metriche del server web Apache, consulta Raccogliere le metriche del server web Apache con Ops Agent: generare traffico.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Se hai creato un nuovo progetto, ma non ne hai più bisogno, eliminalo.

Se hai utilizzato un progetto esistente:

  1. Se hai creato una VM, eliminala:

    1. In the Google Cloud console, go to the VM instances page.

      Go to VM instances

    2. Select the checkbox for the instance that you want to delete.
    3. To delete the instance, click More actions, click Delete, and then follow the instructions.
  2. Elimina il criterio di avviso che hai creato:

    1. Nella console Google Cloud, vai alla pagina  Avvisi:

      Vai ad Avvisi

      Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.

    2. Seleziona il criterio di avviso che hai creato, quindi fai clic su Elimina.

Passaggi successivi