GNU/Linux >> Tutoriales Linux >  >> Cent OS

Instale Nginx Amplify en CentOS 8/RHEL 8 para monitorear el rendimiento de LEMP

Nginx Amplify es una forma gratuita, flexible y potente de analizar la carga y el rendimiento de los servidores web Nginx y Nginx Plus. Es fácil de configurar y usar. Nginx Amplify también viene con complementos MySQL/MariaDB, PHP-FPM para que pueda monitorear una aplicación de pila LEMP completa. (LEMP significa Linux, Nginx, MySQL/MariaDB, PHP).

Nginx Amplify es desarrollado por Nginx, Inc, la compañía detrás del servidor web Nginx. Es una solución basada en SaaS. Instala el agente Nginx Amplify en su servidor y recopilará y enviará métricas al servicio SaaS. El agente Nginx Amplify es de código abierto y liviano. Recopila muchas métricas, que incluyen:

  • Métricas del sistema (CPU, uso de RAM, tráfico de red, uso de disco, E/S de disco, latencia de disco, etc.)
  • Métricas de Nginx (conexiones, solicitudes, estado HTTP, tiempo de respuesta, tráfico y más)
  • Métricas de MySQL/MariaDB (conexiones, consultas de selección, consultas de inserción, consultas de actualización, consultas lentas, etc.)
  • Métricas de PHP-FPM (conexiones, cola de conexiones, solicitudes lentas, etc.)

Nginx Amplify también puede

  • Utilice el analizador estático para mejorar la configuración de Nginx.
  • Alertarle de un comportamiento anormal

Instalación de Nginx Amplify en su servidor CentOS 8/RHEL8 Linux

El agente de Nginx Amplify es de código abierto y hay un script de instalación que puede usar para instalar Nginx Amplify en las siguientes distribuciones de Linux:

  • Debian 9, Debian 10,
  • Ubuntu 16.04, Ubuntu 18.04
  • CentOS/RHEL 6, CentOS/RHEL 7, CentOS/RHEL 8

Primero, registre una cuenta en https://amplify.nginx.com

Verifique su dirección de correo electrónico. A continuación, deberá instalar Nginx Amplify Agent en su servidor Linux. SSH en su servidor e inicie sesión como root. El sitio web de Nginx Amplify es muy bueno para dar los comandos que necesita ejecutar para instalar Nginx Amplify, así que simplemente copie y ejecute estos comandos en su servidor.

Tenga en cuenta que debe ejecutar estos comandos como root.

Nginx Amplify requiere Python2. Instálelo desde el repositorio predeterminado de CentOS.

sudo dnf install python2

Descargue el script de instalación.

Luego ejecute el script de instalación. (Cada cuenta de Amplify tiene una clave API única).

Una vez instalado, el agente se iniciará automáticamente. Puede comprobar su estado con:

systemctl status amplify-agent

Salida de muestra:

● amplify-agent.service - NGINX Amplify Agent
   Loaded: loaded (/usr/lib/systemd/system/amplify-agent.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-06-12 02:38:09 EDT; 2min 49s ago
     Docs: https://amplify.nginx.com/docs/
  Process: 13768 ExecStart=/etc/init.d/amplify-agent start (code=exited, status=0/SUCCESS)
 Main PID: 13820 (amplify-agent)
    Tasks: 2 (limit: 5059)
   Memory: 48.0M
   CGroup: /system.slice/amplify-agent.service
           └─13820 amplify-agent

Sugerencia:si el comando anterior no se cierra de inmediato, presione Q para recuperar el control de la terminal.

Para habilitar el inicio automático en el momento del arranque, ejecute

sudo systemctl enable amplify-agent

Configuración de Stub_status en Nginx

El agente de Amplify puede recopilar métricas del sistema listas para usar. Para recopilar métricas de Nginx, debe configurar Nginx stub_status. Cree un archivo de configuración.

sudo nano /etc/nginx/conf.d/stub_status.conf

Agregue el siguiente bloque de servidor en el http {...} contexto.

server {
     listen 127.0.0.1:80;
     server_name 127.0.0.1;
     location /nginx_status {
        stub_status on;
	allow 127.0.0.1;
	deny all;
     }
}

Guarde y cierre el archivo. Luego, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Ahora el agente de Amplify puede comenzar a recopilar métricas de Nginx.

Creación de un formato de registro de Nginx personalizado

El agente de Nginx Amplify también puede recopilar información de los archivos de registro de Nginx. Sin embargo, el formato de registro predeterminado nos brinda información limitada. Si realmente le importa el rendimiento de la aplicación, debe crear un formato de registro personalizado para mostrar el tiempo de solicitud, el tiempo de respuesta ascendente, las coincidencias de caché, etc.

Abra el nginx.conf archivo.

sudo nano /etc/nginx/nginx.conf

Agregue las siguientes líneas en el http {...} contexto, encima de include directivas. Aquí estamos creando un formato de registro de Nginx personalizado llamado apm (supervisión del rendimiento de la aplicación) que incluye información sobre request_time , upstream_response_time , upstream_connect_time y upstream_header_time . Todos se miden en segundos con resolución de milisegundos.

log_format apm '"$time_local" client=$remote_addr '
               'method=$request_method request="$request" '
               'request_length=$request_length '
               'status=$status bytes_sent=$bytes_sent '
               'body_bytes_sent=$body_bytes_sent '
               'referer=$http_referer '
               'user_agent="$http_user_agent" '
               'upstream_addr=$upstream_addr '
               'upstream_status=$upstream_status '
               'request_time=$request_time '
               'upstream_cache_status="$upstream_cache_status" '
               'upstream_response_time=$upstream_response_time '
               'upstream_connect_time=$upstream_connect_time '
               'upstream_header_time=$upstream_header_time';

Guardar y cerrar archivo. Luego abra su archivo de configuración de host virtual Nginx. Por ejemplo,

sudo nano /etc/nginx/conf.d/linuxbabe.com.conf

En el server {...} context, agregue las siguientes dos líneas para habilitar el registro de acceso y el registro de errores. El registro de acceso está usando apm el formato y el registro de errores utiliza warn nivel de registro.

access_log /var/log/nginx/linuxbabe.com.access.log apm;
error_log /var/log/nginx/linuxbabe.com.error.log warn;

Guarde y cierre el archivo. Luego recarga Nginx.

sudo systemctl reload nginx

Ahora puedo ver el tiempo de respuesta ascendente y otras métricas relacionadas con el rendimiento en los gráficos de Amplify. Un buen tiempo de respuesta ascendente es inferior a 0,5 segundos. De lo contrario, sus visitantes pueden sentir que su sitio web es lento. Si puede ajustar su servidor para obtener un tiempo de respuesta ascendente por debajo de 0,2 segundos, su sitio web será muy rápido.

Si el agente de Amplify no informa las métricas de Nginx, verifique que el agente de Amplify se ejecute como el mismo usuario que el proceso de trabajo de Nginx. También puede consultar el registro del agente de Amplify (/var/log/amplify-agent/agent.log ).

Cómo excluir su propia dirección IP en el registro de acceso de Nginx

A veces, su actividad puede sesgar las métricas de Nginx. Puede excluir su propia dirección IP en el registro de acceso para evitar eso. Primero, agregue las siguientes líneas en el http contexto del archivo de configuración de Nginx. Reemplace 12.34.56.78 con su propia dirección IP. Si la solicitud HTTP proviene de su propia dirección IP, Nginx establecerá el valor de $log_ip variable a 0 .

map $remote_addr $log_ip {
    "12.34.56.78" 0;
    default 1;
}

Luego cambie el access_log directiva de la siguiente manera.

access_log /var/log/nginx/linuxbabe.com.access.log apm if=$log_ip;

Guarde y cierre el archivo. Luego envíe un mensaje de texto con la configuración de nginx y vuelva a cargar.

sudo nginx -t
sudo systemctl reload nginx

Cómo monitorear el servidor de base de datos MariaDB/MySQL

Primero, necesitamos crear un usuario en MariaDB/MySQL para recopilar métricas. Inicie sesión en el monitor MariaDB/MySQL.

mysql -u root -p

Cree un nuevo usuario para el agente de Amplify. Reemplace your_password con tu contraseña preferida. (Se recomienda elegir una contraseña que sea diferente de la contraseña raíz de MariaDB/MySQL).

create user 'amplify-agent'@'localhost' identified by 'your_password';

Salga del servidor MariaDB/MySQL.

exit;

A continuación, debemos habilitar el complemento Amplify MariaDB/MySQL en el archivo de configuración de Amplify.

sudo nano /etc/amplify-agent/agent.conf

En el [extensions] sección, puede ver que el complemento mysql está deshabilitado de forma predeterminada.

[extensions]
phpfpm = True
mysql = False

Cambiar False a True para habilitar este complemento.

[extensions]
phpfpm = True
mysql = True

Luego en [mysql] sección, busque la siguiente línea.

unix_socket = /var/run/mysqld/mysqld.sock
password = amplify-agent

El paquete MariaDB en CentOS escucha en /var/lib/mysql/mysql.sock Unix socket, así que cambie el valor de unix_socket a

unix_socket = /var/lib/mysql/mysql.sock

Luego reemplace la contraseña predeterminada con la contraseña que configuró para el amplify-agent usuario. Guarde y cierre el archivo. Luego reinicie el agente de Amplify para que los cambios surtan efecto.

sudo systemctl restart amplify-agent

Ahora el agente de Amplify comienza a recopilar métricas de MariaDB/MySQL. (Es posible que deba esperar unos minutos).

Cómo habilitar el registro de consultas lentas de MariaDB

El registro de consultas lentas puede mostrarle qué consultas tardan más en dar una respuesta. Es una herramienta importante para optimizar el rendimiento de MariaDB. Para habilitar el registro de consultas lentas de MariaDB, edite el archivo de configuración del servidor.

sudo nano /etc/my.cnf.d/mariadb-server.cnf

Agregue las siguientes líneas en el [mysqld] sección.

slow_query_log = 1
slow_query_log_file     = /var/log/mariadb/mariadb-slow.log
long_query_time = 1
log_slow_rate_limit    = 1000
log_slow_verbosity     = query_plan
log-queries-not-using-indexes

Establecí el long_query_time a un número bajo 1 segundo. También puede especificar un valor más pequeño como 0,5 segundos. Guarde y cierre el archivo. Reinicie MariaDB para que los cambios surtan efecto.

sudo systemctl restart mariadb

Ahora Nginx Amplify puede mostrarle consultas lentas en los gráficos.

Cómo monitorear PHP-FPM

El complemento PHP-FPM del agente Amplify está habilitado de forma predeterminada, pero debemos habilitar el estado de PHP-FPM para recopilar métricas. Edite el archivo de configuración del grupo PHP-FPM.

sudo nano /etc/php-fpm.d/www.conf

Busque la siguiente línea y elimine el punto y coma para habilitar el estado de PHP-FPM.

;pm.status_path = /status

El registro lento de PHP está habilitado de forma predeterminada, como se indica en la siguiente línea.

slowlog = /var/log/php-fpm/www-slow.log

Luego busque la siguiente línea.

;request_slowlog_timeout = 0

Elimine el punto y coma y configure los segundos de tiempo de espera como 1s.

request_slowlog_timeout = 1s

Guarde y cierre el archivo. Cree un directorio para los registros de PHP-FPM.

sudo mkdir -p /var/log/php-fpm/

Reinicie PHP-FPM para que los cambios surtan efecto.

sudo systemctl restart php-fpm

Ahora el agente de Amplify comienza a recopilar métricas de PHP-FPM, incluido el registro de solicitudes lentas.

La página de descripción general de Amplify

En la página de descripción general, puede ver el puntaje de salud general de la aplicación y 5 métricas clave para su sistema.

  • Solicitudes totales
  • Errores HTTP 5xx
  • Tiempo de solicitud (debe crear un formato de registro personalizado como se describe anteriormente para mostrar esta métrica).
  • Cuánto ancho de banda usa Nginx
  • Uso de la CPU

La puntuación del estado de la aplicación se ve afectada por la cantidad de errores HTTP 5xx. Si no hay errores HTTP 5xx, la puntuación será del 100%.

Gráficos

En la página de Gráficos, puede ver las métricas predefinidas del sistema, Nginx, MariaDB/MySQL y PHP-FPM.

Paneles de control de Nginx Amplify

Los tableros de Amplify le permiten crear gráficos y cuadros personalizados y agruparlos en una página. Por ejemplo, puede ensamblar todos los gráficos relacionados con el rendimiento en una página, o tal vez quiera mostrar todas las métricas para una URL en particular.

Si configuró la memoria caché Nginx FastCGI, también puede crear gráficos para la tasa de aciertos de la memoria caché Nginx y la caducidad de la memoria caché en el tablero.

Analizador

Una de las herramientas útiles del analizador es el análisis estático. Amplify puede analizar su archivo de configuración de Nginx y hacer recomendaciones de rendimiento, seguridad y confiabilidad. Puede usarlo para identificar errores y mejorar configuraciones.

Como puede ver, hay 5 advertencias para mi servidor Nginx, así que hago clic en el enlace Abrir para ver cómo ajustar mis configuraciones Nginx.

Después de realizar los ajustes, espere unos minutos y la advertencia desaparecerá.

Alertas

De forma predeterminada, si el agente de Amplify deja de funcionar, se enviará una alerta a su dirección de correo electrónico. En la página de alertas, puede configurar varias alertas para su servidor. Por ejemplo, puedo decirle a Amplify que me envíe un correo electrónico si el tiempo de respuesta ascendente es superior a 1 segundo durante los últimos 2 minutos.

Si su servidor se queda sin RAM, entonces podría matar el proceso MySQL/MariaDB. Puede crear una regla de alerta para monitorear el tiempo de actividad de MySQL/MariaDB como se muestra a continuación. Si el tiempo de actividad es inferior a 120 segundos durante los últimos 2 minutos, envíe una notificación por correo electrónico.

Amplify Agent deja de funcionar

A menudo descubrí que el agente de Amplify deja de enviar métricas de rendimiento por razones desconocidas. Creo un trabajo Cron para reiniciar Amplify-agent una vez al día para resolver este problema.

sudo crontab -e

Agregue la siguiente línea en el archivo crontab.

@daily systemctl restart amplify-agent

Guarde y cierre el archivo.


Cent OS
  1. Cómo instalar LEMP Stack (Nginx, MySQL, PHP v7) en CentOS 7

  2. Cómo instalar phpMyAdmin con Nginx en CentOS 7 / RHEL 7

  3. Cómo instalar Linux, Nginx, MariaDB, PHP (LEMP Stack) en CentOS 7 / RHEL 7

  4. Cómo instalar Puppet en RHEL 8/CentOS 8

  5. Cómo instalar LEMP Stack en CentOS 7

Instale Roundcube Webmail en CentOS 8/RHEL 8 con Apache/Nginx

Cómo instalar LEMP en CentOS 6

Cómo instalar LEMP en CentOS 7

Cómo instalar Nginx Amplify Agent en CentOS 7

Cómo instalar el servidor LEMP en CentOS 8

Cómo instalar PHP 8 en CentOS/RHEL 8/7