Monitoree el rendimiento del servidor web Apache

El servidor HTTP de Apache, también conocido como Apache HTTPd, es un software de servidor web que se utiliza comúnmente. Su amplio uso se debe a la función fácil de personalizar y su código abierto.

Si ha estado utilizando Apache, es fundamental monitorear su rendimiento para estar al tanto de los problemas de degradación y los obstáculos. Utilice nuestro complemento y vea tendencias de rendimiento en tiempo real y métricas históricas, todo en un solo panel. Detalles en este documento:

Métricas de monitoreo del rendimiento

Solicitudes por segundo

req_per_sec records the total number of HTTP requests the web server is processing per second.

Trabajadores ocupados

Use the metric busy_workers to get the total number of processes actively processing an HTTP request

Trabajadores inactivos

idle_workers is the total number of idle workers/idle processes waiting for an HTTP request. If you have very few or no idle processes, it means your server is using up all the processes and new requests have to be on hold until the older requests are completed.

Tiempo de actividad

The metric tiempo de actividad gets the total amount of time the server has been up and running.

Bytes por segundo

bytes_per_sec records the total amount of data the web server is transferring per second.

Carga de CPU

Use the metric cpu_load and get the total percentage of CPU used by the web server.

Bytes por solicitud

The average number of bytes being transferred per HTTP request is obtained using the metric bytes_per_req.

Accesos totales

The total number of accesses on the server is monitored using the metric total_accessess.

Requisitos previos

  • This is a Python-based plugin supported from Python versions 2.7 and above. For version 2.7, we use urllib2 module and for version 3.0 and above, we use urllib module for monitoring the web server.

Configuración de Apache

Siga los pasos que aparecen a continuación para configurar su servidor web a fin de supervisar el rendimiento. Independientemente del sistema que esté utilizando, asegúrese de guardar una copia de seguridad del archivo de configuración antes de realizar cambios, en caso de que necesite volver a una versión anterior.

  • Edite el archivo de configuración del módulo de estado: /etc/apache2/mods-enabled/status.load
  • Find the below line and make sure it is uncommented
    LoadModule status_module /usr/lib/apache2/modules/mod_status.so
  • Edite el archivo de configuración del módulo de estado: /etc/apache2/mods-enabled/status.conf
  • The below line allows access to the Status page from localhost using the URI /server-status
    <Location /server-status>
    SetHandler server-status
    Require local
    </Location>
  • To restrict access to authenticated users and to specific IP addresses:
    <server-status>
    SetHandler server-status
    AuthUserFile /passwordlocation
    AuthType Basic
    AuthName
    Se requiere usuario
  • Make sure the ExtendedStatus is enabled to track additional data about the currently executing requests per worker.
    ExtendedStatus On
  • Reinicie el servidor
  • Edit the ports configuration file:
    Para Ubuntu/Debian: Edit /etc/apache2/ports.conf
    Para CentOS/Red Hat: Edit /etc/httpd/conf/httpd.conf
  • Check for the line Listen 80. Change port from 80 to the desired port.
  • To make the server accept connections on the port for only specific interfaces, change Listen 90 to Listen domain.com:90
  • Guarde el archivo y reinicie el servidor
  • Enable SSL support on Apache default virtual host file, found in the following location:
    Para Ubuntu/Debian: sudo vi /etc/apache2/sites-enable/000-default.conf
    Para CentOS/Red Hat: sudo vi /etc/httpd/conf.d/ssl.conf
  • Edit the virtual host file to support SSL in port 443
    Para Ubuntu/Debian:
    <VirtualHost *:443>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    SSLEngine on
    SSLCertificateFile <File Name>
    SSLCertificateKeyFile <Key>
    </VirtualHost>

    Para CentOS/Red Hat:
    <VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    # SSLProtocol all -SSLv2
    # SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
    SSLCertificateFile <File Name>
    SSLCertificateKeyFile <Key>
    </VirtualHost>
  • Run the below commands to enable SSL mode
    Para Ubuntu/Debian: sudo a2enmod ssl
    Para CentOS/Red Hat: sudo yum install mod_ssl
  • Reinicie el servidor

Instalación de complemento

  • Configure Apache como se mencionó anteriormente para monitorear sus atributos de rendimiento.
  • Descargue e instale la versión más reciente del agente de Linux de Site24x7 en el servidor en el cual planea ejecutar el complemento. Si se instala correctamente, verá un monitor de servidor Linux en el panel de control de Site24x7. Esto confirma que el agente puede comunicarse con nuestro centro de datos.
  • Download the "“apache_monitoring.py”" and the "apache_monitoring.cfg" file from our Repositorio de GitHub
    wget https://raw.githubusercontent.com/site24x7/plugins/master/apache_monitoring/apache_monitoring.py && sed -i "1s|^.*|#! $(which python3)|" apache_monitoring.py
    wget https://raw.githubusercontent.com/site24x7/plugins/master/apache_monitoring/apache_monitoring.cfg
  • Update the file with your Status URL for monitoring apache. By default, we have enabled it to be: http://localhost:80/server-status?auto
  • Cree una carpeta con el nombre “apache_monitoring” en el directorio de complementos de agentes de Linux de Site24x7 “/opt/site24x7/monagent/plugins/” y coloque “apache_monitoring.py” en “/opt/site24x7/monagent/plugins/apache_monitoring/”

El agente ejecutará automáticamente el complemento en un plazo de cinco minutos y enviará datos de rendimiento al centro de datos de Site24x7.

Consejo

Manually execute the plugin script using the following command and verify its output:

python apache_monitoring.py

Vea datos en el cliente web de Site24x7

  1. Inicie sesión y vaya a Servidor > Complementos; luego, haga clic en el nombre del monitor del complemento.
  2. Podrá ver los gráficos de rendimiento sobre las diversas métricas de su servidor.

Manejo de errores

N.° de serie Mensaje de error Motivo
1 Código_de_error: URL Error [Errno -2] Name or service not known Nombre de host no válido
2 Código_de_error: URL Error [Errno 1] _ssl.c:510: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol Si la URL de estado de Apache no está configurada como HTTPS
3 Código_de_error: HTTP Error 404 URL de estado no válida
4 Código_de_error: HTTP Error 400 Número de puerto no válido

Contribución de complementos

No dude en contribuir a nuestro complemento existente y compartir sugerencias o comentarios en nuestra comunidad.

Artículos relacionados

  • Complementos listos para usar: monitoree toda la pila de aplicaciones con nuestra amplia lista de integraciones
  • Monitoreo del servidor: manténgase al tanto de las interrupciones del servidor y de los problemas de rendimiento
  • Redis: monitoree las métricas de rendimiento de sus bases de datos de Redis
  • MySQL: monitoree las métricas de rendimiento de sus bases de datos de MySQL
  • Proceso zombi: analice el rendimiento de su servidor de procesos zombi
  • Nagios: ejecute miles de complementos de Nagios en Site24x7 sin necesidad de ejecutar un servidor de Nagios
  • Monitoreo de script personalizado: cree plugins personalizados de Linux y Windows, y monitoree los atributos que necesita
  • Repositorio de GitHub: revise nuestras más de 50 integraciones de complementos