Apache Web Server (httpd)

L'integrazione di Apache Web Server raccoglie metriche relative al traffico, come il numero di connessioni aperte o richieste in entrata. L'integrazione raccoglie anche i log degli accessi e degli errori. I log degli accessi vengono analizzati in un payload JSON incentrato sui dettagli delle richieste, mentre i log degli errori vengono analizzati per individuare il messaggio e il codice di errore.

Per ulteriori informazioni su Apache Web Server, visita http://httpd.apache.org/.

Prerequisiti

Per raccogliere la telemetria di Apache Web Server, devi installare Ops Agent versione 2.7.0 o successive.

Questo ricevitore supporta Apache Web Server versione 2.4.

Configura la tua istanza di Apache Web Server

Per raccogliere la telemetria dal tuo server web Apache, devi configurare il file httpd.conf del server per abilitare il plug-in mod_status.

Molte installazioni di Apache abilitano questo plug-in per impostazione predefinita. Per verificare se il plug-in è abilitato nell'istanza VM, esegui:

curl localhost:80/server-status?auto

Se il plug-in è attivato, l'output include righe simili alle seguenti:

Total Accesses: 2
Total kBytes: 1
BusyWorkers: 1
IdleWorkers: 4

Se ricevi invece una pagina 404 Not Found, il plug-in mod_status non è abilitato.

Configurazione dell'agente operativo per il server web Apache

Segui la guida per configurare l'agente operativo, aggiungi gli elementi necessari per raccogliere i log dalle istanze del server web Apache e riavvia l'agente.

Configurazione di esempio

Il comando seguente crea la configurazione per raccogliere e importare log e metriche per Apache Web Server e riavvia l'agente operativo su Linux.

sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
logging:
  receivers:
    apache_access:
      type: apache_access
    apache_error:
      type: apache_error
  service:
    pipelines:
      apache:
        receivers:
        - apache_access
        - apache_error
metrics:
  receivers:
    apache:
      type: apache
  service:
    pipelines:
      apache:
        receivers:
        - apache
EOF
sudo service google-cloud-ops-agent restart

Configura la raccolta dei log

Per importare i log da Apache Web Server, devi creare dei destinatari per i log prodotti da Apache Web Server, quindi creare una pipeline per i nuovi destinatari. Per configurare un ricevitore per i log, specifica i seguenti campi:

Per configurare un ricevitore per i log apache_access, specifica i seguenti campi:

Campo predefinita Descrizione
type Questo valore deve essere apache_access.
include_paths [/var/log/apache2/access.log,/var/log/apache2/access_log,/var/log/httpd/access_log] Un elenco di percorsi di filesystem da leggere mettendo in coda ogni file. Nei percorsi è possibile utilizzare un carattere jolly (*), ad esempio /var/log/apache*/*.log.
exclude_paths [] Un elenco di pattern di file system da escludere dall'insieme corrispondente da include_paths.
wildcard_refresh_interval 60s L'intervallo a cui vengono aggiornati i percorsi dei file con caratteri jolly in include_paths. È indicato come durata, ad esempio 30s o 2m. Questa proprietà potrebbe essere utile in presenza di velocità effettiva di logging elevate, in cui i file di log vengono ruotati più rapidamente rispetto all'intervallo predefinito.

Per configurare un ricevitore per i log apache_error, specifica i seguenti campi:

Campo predefinita Descrizione
type Questo valore deve essere apache_error.
include_paths [/var/log/apache2/error.log,/var/log/apache2/error_log,/var/log/httpd/error_log] Un elenco di percorsi di filesystem da leggere mettendo in coda ogni file. Nei percorsi è possibile utilizzare un carattere jolly (*), ad esempio /var/log/apache*/*.log.
exclude_paths [] Un elenco di pattern di file system da escludere dall'insieme corrispondente da include_paths.
wildcard_refresh_interval 60s L'intervallo a cui vengono aggiornati i percorsi dei file con caratteri jolly in include_paths. Dato il tempo trascorso, ad esempio 30s, 2m. Questa proprietà potrebbe essere utile in presenza di velocità effettiva di logging elevate, in cui i file di log vengono ruotati più rapidamente rispetto all'intervallo predefinito.

Che cosa viene registrato

I logName dei log apache_access e apache_error sono ricavati dagli ID destinatario specificati nella configurazione. Di seguito sono riportati i campi dettagliati all'interno di LogEntry.

I log apache_access contengono il campo httpRequest:

Campo Tipo Descrizione
httpRequest.protocol string Protocollo utilizzato per la richiesta
httpRequest.referer string Contenuto dell'intestazione Referer
httpRequest.requestMethod string Metodo HTTP
httpRequest.requestUrl string URL richiesta (in genere solo la parte del percorso dell'URL)
httpRequest.responseSize stringa (int64) Dimensione della risposta
httpRequest.status number Codice di stato HTTP
httpRequest.userAgent string Contenuto dell'intestazione User-Agent
jsonPayload.host string Contenuto dell'intestazione Host
jsonPayload.user string Nome utente autenticato per la richiesta
timestamp stringa (Timestamp) Ora in cui è stata ricevuta la richiesta

Le voci dei log non contengono campi vuoti o mancanti.


I log apache_error contengono i seguenti campi in LogEntry:

Campo Tipo Descrizione
jsonPayload.errorCode string Codice di errore Apache
jsonPayload.level string Livello di voce di log
jsonPayload.module string modulo apache da cui ha avuto origine il log
jsonPayload.pid number ID processo
jsonPayload.tid number ID thread
jsonPayload.message string Messaggio di log
jsonPayload.client string Indirizzo IP client (facoltativo)
severity stringa (LogSeverity) Livello di voce di log (tradotto)
timestamp stringa (Timestamp) L'ora in cui la voce è stata registrata

Configurazione della raccolta di metriche

Per raccogliere metriche da Apache Web Server, devi creare un ricevitore per le metriche Apache e quindi creare una pipeline per il nuovo destinatario. Per configurare un ricevitore per le metriche Apache, specifica i seguenti campi:

Campo predefinita Descrizione
type Questo valore deve essere apache.
server_status_url http://localhost:80/server-status?auto L'URL esposto dal modulo mod_status.
collection_interval 60s Un valore time.Duration, ad esempio 30s o 5m.

Che cosa viene monitorato

La seguente tabella fornisce l'elenco delle metriche raccolte dall'agente operativo per l'istanza del server web Apache.

Tipo di metrica
Tipo, tipo
Risorse monitorate
Etichette
workload.googleapis.com/apache.current_connections
GAUGEINT64
gce_instance
server_name
workload.googleapis.com/apache.requests
CUMULATIVEINT64
gce_instance
server_name
workload.googleapis.com/apache.scoreboard
GAUGEINT64
gce_instance
state
server_name
workload.googleapis.com/apache.traffic
CUMULATIVEINT64
gce_instance
server_name
workload.googleapis.com/apache.workers
GAUGE, INT64
gce_instance
state
server_name

Dashboard di esempio

Puoi visualizzare le metriche di questa integrazione utilizzando una dashboard di Cloud Monitoring di esempio. Completa le procedure relative all'installazione di dashboard di esempio per importare la dashboard Apache GCE Overview dalla libreria di esempio e visualizza i grafici che mostrano le metriche di Apache Web Server.

Verificare la configurazione

Puoi utilizzare Esplora log e Metrics Explorer per verificare di avere configurato correttamente il ricevitore Apache Web Server. L'avvio della raccolta di log e metriche da parte dell'agente operativo potrebbe richiedere uno o due minuti.

Per verificare che i log vengano importati, vai a Esplora log ed esegui la query seguente per visualizzare i log del server web Apache:

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


Per verificare l'importazione delle metriche, accedi a Metrics Explorer ed esegui la query seguente nella scheda MQL.

fetch gce_instance
| metric 'workload.googleapis.com/apache.requests'
| align rate(1m)
| every 1m

Passaggi successivi

Per una panoramica su come utilizzare Ansible per installare l'agente operativo, configurare un'applicazione di terze parti e installare una dashboard di esempio, guarda il video dedicato a l'agente operativo per risolvere i problemi delle applicazioni di terze parti.