Apache Web Server (httpd)

Apache Web Server (httpd) es un servidor web muy popular para una variedad de sistemas operativos. Para obtener más información, visita http://httpd.apache.org/.

Requisitos previos

Para recopilar la telemetría de Apache Web Server, debes instalar el agente de operaciones versión 2.7.0 o posterior.

Este receptor es compatible con la versión 2.4 de Apache Web Server.

Configura tu instancia de Apache Web Server

Para recopilar la telemetría de Apache Web Server, debes configurar el archivo httpd.conf del servidor a fin de habilitar el complemento mod_status.

Muchas instalaciones de Apache habilitan este complemento de forma predeterminada. Para ver si el complemento está habilitado en tu instancia de VM, ejecuta lo siguiente:

curl localhost:80/server-status?auto

Si el complemento está habilitado, el resultado incluirá líneas similares a las siguientes:

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

Si, en cambio, obtienes una página 404 Not Found, el complemento mod_status no está habilitado.

Configura el agente de operaciones para Apache Web Server

Sigue la guía para configurar el agente de operaciones y agregar los elementos necesarios a fin de recopilar registros de instancias de Apache Web Server y reiniciar el agente.

Configuración de ejemplo

Mediante el siguiente comando, se crea la configuración a fin de recopilar y transferir registros y métricas para Apache Web Server y reiniciar el agente de operaciones en 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
      server_status_url: http://localhost:80/server-status?auto
      collection_interval: 30s
  service:
    pipelines:
      apache:
        receivers:
        - apache
EOF
sudo service google-cloud-ops-agent restart

Configura la recopilación de registros

A fin de transferir registros desde Apache Web Server, debes crear receptores para los registros que produce servidor web de Apache y, luego, crear una canalización para los receptores nuevos. A fin de configurar un receptor para tus registros, especifica los siguientes campos:

A fin de configurar un receptor para tus registros apache_access, especifica los siguientes campos:

Campo Predeterminada Descripción
type Este valor debe ser apache_access.
include_paths [/var/log/apache2/access.log,/var/log/apache2/access_log,/var/log/httpd/access_log] Una lista de rutas de acceso del sistema de archivos que se leerán mediante la visualización del final de cada archivo. Se puede usar un comodín (*) en las rutas. Por ejemplo, /var/log/apache*/*.log.
exclude_paths [] Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths.

A fin de configurar un receptor para tus registros apache_error, especifica los siguientes campos:

Campo Predeterminada Descripción
type Este valor debe ser apache_error.
include_paths [/var/log/apache2/error.log,/var/log/apache2/error_log,/var/log/httpd/error_log] Una lista de rutas de acceso del sistema de archivos que se leerán mediante la visualización del final de cada archivo. Se puede usar un comodín (*) en las rutas. Por ejemplo, /var/log/apache*/*.log.
exclude_paths [] Una lista de patrones de ruta de acceso del sistema de archivos que se excluirán del conjunto que coincide con include_paths.

¿Qué se registra?

El logName de los registros apache_access y apache_error se deriva de los ID de receptor especificados en la configuración. Los campos detallados dentro de LogEntry son los siguientes.

Los registros apache_access contienen el campo httpRequest:

Campo Tipo Descripción
httpRequest.protocol string Protocolo que se usa para la solicitud
httpRequest.referer string Contenido del encabezado Referer
httpRequest.requestMethod string Método HTTP
httpRequest.requestUrl string URL de la solicitud (por lo general, es solo la parte de la ruta de acceso de la URL)
httpRequest.responseSize string (int64) Tamaño de la respuesta
httpRequest.status número Código de estado HTTP
httpRequest.userAgent string Contenido del encabezado User-Agent
jsonPayload.host string Contenido del encabezado Host
jsonPayload.user string Nombre de usuario autenticado para la solicitud
timestamp string (Timestamp) Hora en que se recibió la solicitud

Las entradas de registro no contienen ningún campo en blanco o faltante.


Los registros apache_error contienen los siguientes campos en LogEntry:

Campo Tipo Descripción
jsonPayload.errorCode string Código de error de Apache
jsonPayload.level string Nivel de entrada de registro
jsonPayload.module string Módulo apache en el que se originó el registro
jsonPayload.pid número ID de proceso
jsonPayload.tid número ID de subproceso
jsonPayload.message string Mensaje del registro
jsonPayload.client string Dirección IP de cliente (opcional)
severity string (LogSeverity) Nivel de entrada de registro (traducido)
timestamp string (Timestamp) Hora en la que se registró la entrada

Configura la recopilación de métricas

Si deseas recopilar métricas de Apache Web Server, debes crear un receptor para las métricas de Apache y, luego, crear una canalización para el receptor nuevo. A fin de configurar un receptor para las métricas de Apache, especifica los siguientes campos:

Campo Predeterminada Descripción
type Este valor debe ser apache.
server_status_url http://localhost:8080/server-status?auto La URL que expone el módulo mod_status.
collection_interval 60s Un valor time.Duration, como 30s o 5m.

Qué se supervisa

En la siguiente tabla, se proporciona una lista de las métricas que el agente de operaciones recopila desde la instancia de Apache Web Server.

Tipo de métrica 
Categoría, tipo
Recursos supervisados
Etiquetas
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
GAUGEINT64
gce_instance
state
server_name

Verifica la configuración

Puedes usar el explorador de registros y el explorador de métricas para verificar que hayas configurado correctamente el receptor de Apache Web Server. El agente de operaciones puede tardar uno o dos minutos en comenzar a recopilar los registros y las métricas.

Para verificar que se hayan transferido los registros, ve al Explorador de registros y ejecuta la siguiente consulta a fin de ver los registros de Apache Web Server:

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


Para verificar que las métricas se transfieran, ve a Explorador de métricas y ejecuta la siguiente consulta en la pestaña MQL.

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