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
|
|
GAUGE , INT64 gce_instance |
server_name
|
workload.googleapis.com/apache.requests
|
|
CUMULATIVE , INT64 gce_instance |
server_name
|
workload.googleapis.com/apache.scoreboard
|
|
GAUGE , INT64 gce_instance |
state
server_name
|
workload.googleapis.com/apache.traffic
|
|
CUMULATIVE , INT64 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