Recientemente, "codiciando" una ganga, cambié el servidor a un host VPS de Alibaba Cloud International Hong Kong. La mayor sensación después de mudarse aquí no es la mejora de la velocidad, porque el VPS kdatacenter coreano utilizado originalmente también es muy rápido cuando se accede a través de la red de telecomunicaciones, sino que el rendimiento del host VPS de Alibaba Cloud es realmente bueno en comparación con otros hosts VPS que también lo son. 1 GB. Es un poco débil.
Utilicé una herramienta para escanear la carga del sistema de Alibaba Cloud Hong Kong VPS y la carga del sistema siguió aumentando. A veces descubrí que no podía abrirlo cuando estaba escribiendo un artículo en segundo plano. Abrí el registro del servidor y encontré muchas IP anormales, como escaneo de puertos, inyección SQL, archivos de respaldo del sitio web "faltantes" y pruebas de estrés AB... En resumen, hubo muchas IP anormales.
Analizar el comportamiento de IP en los registros es un trabajo agotador, especialmente cuando los registros superan los cientos de MB y es muy lento abrirlos como archivos de texto. Este artículo compartirá dos excelentes herramientas de análisis de registros del servidor: ngxtop y GoAccess. ngxtop analiza los archivos de registro de Nginx y los muestra en tiempo real utilizando una interfaz similar al comando superior.
ngxtop puede analizar archivos de registro anteriores y también puede monitorear los registros del servidor en tiempo real. Puede encontrar rápidamente las direcciones IP más visitadas en los registros, errores 403/500/404, clasificaciones de páginas solicitadas, etc. en el puerto, como si lo usara. el comando Superior. ngxtop es una herramienta liviana, mientras que GoAccess se parece más a una poderosa herramienta de estadísticas de registros.
GoAccess no solo es rico en gráficos y texto, sino también rápido, con una velocidad de análisis de registros de 8 W por segundo y websocket actualiza las estadísticas cada 10 segundos. GoAccess no solo tiene una interfaz de línea de comandos, sino que también puede generar una página web HTML, lo que le permite ver intuitivamente la cantidad de visitantes en el registro, archivos solicitados, errores 404 y otros, ubicación del usuario, navegador, sistema operativo, URL de origen, Código de estado HTTP, etc.
En resumen, ngxtop y GoAccess son dos herramientas poderosas para analizar registros de servidores como Apache y Nginx. Una vez que domine estos dos software, se pueden revelar las IP "potencialmente" peligrosas para el servidor. Como webmaster, aprender a utilizar un software más significa que puede ahorrarse otros gastos de servidor, como por ejemplo:
- Utilice Huginn para capturar actualizaciones de cuentas públicas RSS y WeChat desde cualquier sitio web: cree una plataforma de lectura de información única
- Linux VPS monta Google Drive y Dropbox: realiza la sincronización y copia de seguridad de los datos del host VPS
- Tres herramientas gratuitas para ayudarle a detectar la autenticidad de los servidores VPS: métodos de prueba de velocidad y rendimiento del host VPS
PD: Actualizado el 21 de octubre de 2017, Los amigos que estén interesados en usar Alibaba Cloud Hong Kong VPS pueden leer mi reseña primero: Alibaba Cloud International Edition Evaluación de rendimiento y velocidad de la sala de computadoras de Hong Kong: rápido pero en disco IO y Memoria Es el cuello de botella. Si también desea monitorear la estabilidad de la red del servidor VPS, puede usar esta herramienta: Instalación y configuración de Smokeping: una herramienta gratuita de monitoreo del rendimiento de la red de código abierto para la implementación visual maestro/esclavo.
1. Instalación y uso de ngxtop
1.1 instalación de ngxtop
Página de inicio del proyecto:
- HTTPS://GitHub.com/Lebinhong/Ese pequeño top
ngxtop es adecuado para los registros del servidor Nginx. ngxtop se puede instalar con el siguiente comando:
Fedora:yum install python-pip
CentOS/RHEL需先安装EPEL,安装完后:yum install python-pip
Debian/Ubuntu:apt-get install python-pip
pip install ngxtop
O puedes instalarlo directamente desde la fuente:
wget https://github.com/lebinh/ngxtop/archive/master.zip -O ngxtop-master.zip
unzip ngxtop-master.zip
cd ngxtop-master
python setup.py install
1.2 uso de ngxtop
El uso básico de ngxtop es el siguiente:
gxtop [选项]
ngxtop [选项] (print|top|avg|sum) <变量>
ngxtop info
Las opciones tienen los siguientes parámetros:
-l: especifica la ruta completa del archivo de registro (Nginx o Apache2)
-f: formato de registro
–no-follow: procesa el archivo de registro escrito actualmente en lugar de procesar los registros recién agregados al archivo de registro en tiempo real
-t: frecuencia de actualización
-n: muestra el número de línea
-o : regla de clasificación (el valor predeterminado es el recuento de acceso)
-a…, –a…: agrega expresiones (generalmente expresiones agregadas como suma, promedio, mínimo, máximo, etc.) a la salida.
-v: genera información detallada
-i: procesar solo registros que coincidan con las reglas
-c <archivo> o –config <archivo> especifica el archivo de configuración de nginx y analiza automáticamente el formato de registro
-i <expresión-filtro> o –filter <expresión-filtro> Se procesarán los filtros que cumplan la expresión
-p <expresión-filtro> o –pre-filter <expresión-filtro> expresión en el filtro para verificar en la fase de análisis previo.
Las variables de ngxtop son: remote_addr, remoto_user, time_local, request, request_path, status, body_bytes_sent, http_referer, http_user_agent
. Se utiliza principalmente para analizar la dirección IP, la ruta de solicitud, el estado HTTP, el referente, el agente_usuario, etc.
1.3 ejemplo de ngxtop
Puede usar ngxtop info para ver la dirección de registro del servidor local y la ruta del archivo de configuración. Sin embargo, solo puede mostrar algunos archivos de registro predeterminados y algunos archivos de registro personalizados no se mostrarán.
Descubra las diez URL de solicitud principales para errores 404. código de comando:
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow top request_path --filter 'status == 404'
El efecto es el siguiente:
Descubra las diez direcciones IP más visitadas. código de comando:
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --group-by remote_addr
El efecto es el siguiente:
Descubra las diez direcciones IP con mayor tráfico. código de comando:
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --order-by 'avg(bytes_sent) * count'
Descubra los códigos de error superiores a 400 y muestre la solicitud, el estado y http_referer. código de comando:
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow -i 'status >= 400' print request status http_referer
Encuentre los 10 valores promedio principales de bytes_sent con código de estado 200 y request_path que comiencen con wzfou. código de comando:
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow avg bytes_sent --filter 'status == 200 and request_path.startswith("wzfou")'
A través de los comandos anteriores, básicamente puede bloquear rápidamente las direcciones IP de algunas solicitudes anormales. De forma predeterminada, ngxtop mostrará los primeros 10 registros. Puede agregar el parámetro –n xxx para controlar el número mostrado. El comando es el siguiente:
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --no-follow --group-by remote_addr -n 20
ngxtop implementa el monitoreo de registros del servidor. Para mostrar el monitoreo de registros de Nginx en tiempo real, solo necesita el parámetro –no-follow. El comando es el siguiente:
ngxtop -l /data/wwwlogs/wzfou.com_nginx.log --group-by remote_addr
El efecto es el siguiente:
2. Instalación y uso de GoAccess
2.1 instalación de GoAccess
Sitio web oficial de GoAccess:
- HTTPS://ir a access.IO/
GoAccess admite el análisis de registros de servidores como Apache, Nginx, Amazon S3, Elastic Load Balancing y CloudFront. El comando de instalación es el siguiente:
apt-get install libncursesw5-dev libgeoip-dev
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
tar -xzvf goaccess-1.2.tar.gz
cd goaccess-1.2/
./configure --enable-utf8 --enable-geoip=legacy
make
make install
Dependiendo de sus propias necesidades, puede ajustar las opciones de configuración al instalar GoAccess. como sigue:
--enable-debug
Compile con indicadores de depuración y desactive las optimizaciones del compilador.--enable-utf8
Amplia compatibilidad con caracteres. Depende del módulo Ncursesw.--enable-geoip=<legacy|mmdb>
Soporte de geolocalización. Depende del módulo MaxMind GeoIP. El legado utilizará la base de datos GeoIP original. mmdb utilizará la base de datos GeoIP2 mejorada.--enable-tcb=<memhash|btree> Soporte de almacenamiento del gabinete de Tokio
. memhash utilizará la base de datos hash en memoria del Gabinete de Tokio. btree utilizará la base de datos B+Tree en disco del Gabinete de Tokio.
–disable-zlib Desactiva el uso de la compresión zlib en bases de datos B+Tree.--disable-bzip
Deshabilita el uso de la compresión bzip2 en bases de datos B+Tree.--with-getline hace que
utilice un búfer de línea que se extiende dinámicamente para analizar solicitudes de línea completa; de lo contrario, se utilizará un búfer de tamaño fijo (4096).--with-openssl
Permite la comunicación entre GoAccess y su servidor WebSocket para admitir OpenSSL.
2.2 uso de GoAccess
La sintaxis de GoAccess es la siguiente:
goaccess [filename] [ options ... ] [-c][-M][-H][-q][-d][...]
Los parámetros comúnmente utilizados se describen a continuación:
-f –log-file=<archivo de registro>
Especifique la ruta al archivo de registro de entrada. Si se especifica un archivo de entrada en el archivo de configuración, tiene prioridad sobre uno especificado en la línea de comando mediante el parámetro
-f
.-l –log-debug=<nombre de archivo>
Envíe toda la información de depuración al archivo especificado. Es necesario especificar las opciones de configuración
--enable-debug
-p –config-file=<archivo de configuración>
Especifica el uso de un archivo de configuración personalizado. Si se establece este parámetro, su prioridad será mayor que la del archivo de configuración global (si lo hay).
–solicitudes-inválidas=<nombre de archivo>
Registre solicitudes no válidas en el archivo especificado.
--no-global-config
Deshabilite la carga de archivos de configuración global. Los directorios posibles deben ser
/usr/etc/
,/etc/
o/usr/local/etc/
, a menos que se especifique al ejecutar ./configure--sysconfdir=/dir
.-a –lista-de-agentes
Abra la lista de UserAgent. Cuando está activado, la velocidad de análisis se reducirá.
-d –con-resolución-de-salida
Habilite la resolución IP al generar informes
HTML
oJSON
.-e –exclude-ip <IP|rango de IP>
Excluya una dirección IPv4 o IPv6. Utilice conectores para representar segmentos de IP (inicio-fin).
-H –http-protocolo=<sí|no>
Cambio de protocolo de solicitud HTTP. Se creará un campo de solicitud que contiene el protocolo de solicitud + la solicitud real.
-M –método-http=<sí|no>
Cambio de método de solicitud HTTP. Se creará un campo de solicitud que contiene el método de solicitud + la solicitud real.
-o –salida=<json|csv>
Redirija el archivo proporcionado a la salida estándar, usando el sufijo para determinar el formato de salida:
-q –sin-cadena-de-consulta
Ignore la cadena de consulta solicitada. Es decir: www.google.com/page.htm?query => www.google.com/page.htm
Nota: eliminar la cadena de consulta reducirá en gran medida el consumo de memoria, especialmente para las solicitudes de marca de tiempo.-r –resolución sin término
Deshabilite la resolución IP durante la salida del terminal.
–444-como-404
Trate el estado no estándar 444 como 404.
–4xx a recuento único
Agregue la cantidad de errores del cliente 4xx a la cantidad de visitantes únicos.
–todos los archivos estáticos
Cuente archivos estáticos que contengan cadenas de consulta.
–date-spec=<fecha|hora>
Configure el formato de visualización de la fecha, uno es el formato de fecha estándar (predeterminado) y el otro es el formato con horas agregadas a la fecha.
Solo válido en panel de invitados. Útil para analizar los datos de los visitantes a nivel horario. Ejemplo de formato de visualización:18/dic/2010:19
--doble decodificación
Decodifica un valor con doble codificación. Incluyendo UserAgent, Request y Referer.
–enable-panel=<PANEL>
Abra el panel especificado. Lista de paneles:
–hora-spec=<hora|min>
Configure el formato de visualización de la hora, uno es el formato de hora estándar (predeterminado) y el otro es el formato con minutos añadidos a la hora (cada diez minutos).
se utiliza para el panel de distribución de tiempo. Útil para analizar picos de tráfico durante períodos de tiempo específicos.–ignorar-rastreadores
Ignora a los rastreadores.
–ignorar-panel=<PANEL>
Ignora el panel especificado. Lista de paneles:
–ignore-referer=<referente>
Ignore la fuente de las estadísticas. Se admiten comodines. Por ejemplo:
*.dominio.com
ww?.dominio.*
–ignore-status=<ESTADO>
Ignore el análisis o muestre uno o más códigos de estado. Si hay varios códigos de estado, utilice este parámetro para especificar uno a la vez.
–num-pruebas=<número>
Establezca el número de líneas de prueba, es decir, pruebe el registro de acceso utilizando el formato de registro/fecha/hora proporcionado. El valor predeterminado es 10 líneas. Si se establece en 0, el analizador no realizará ninguna prueba y analizará directamente todo el archivo. Si una línea coincide con el formato de registro/fecha/hora dado antes de llegar al
número
, el analizador considerará que el archivo de registro es válido; de lo contrario, GoAccess devolveráEXIT_FAILURE
y mostrará mensajes de error relevantes.–procesar y salir
Analice el registro y no genere datos al salir. Se utiliza principalmente cuando solo desea agregar datos a la base de datos del disco sin generar informes.
–real-os
Muestra el nombre real del sistema operativo. Por ejemplo: Windows XP, Snow Leopard.
–sort-panel=<PANEL,CAMPO,ORDEN>
S clasifica los paneles durante la carga inicial. Ordena las opciones separadas por comas. Las opciones utilizan el formato: PANEL, MÉTRICO, ORDEN
–archivo-estático <extensión>
Agregue el sufijo de archivo estático. Por ejemplo:
.mp3
. Los nombres de sufijos distinguen entre mayúsculas y minúsculas.-g –std-geoip
Base de datos GeoIP estándar, uso reducido de memoria.
–geoip-database <archivogeociudad>
Establezca la ruta de la base de datos GeoIP. Por ejemplo: GeoLiteCity.dat. Debe descargarse localmente desde maxmind.com. El soporte está disponible tanto para IPv4 como para IPv6. Nota:
--geoip-city-data
es un alias para--geoip-database
.
Nota: si utiliza GeoIP2, debe descargar la base de datos de ciudad/país desde MaxMind y configurarla a través de--geoip-database
.
Formato de registro de GoAccess. GoAccess también tiene un parámetro utilizado para configurar el formato de registro del servidor: –log-format <logformat>. El formato de registro del parámetro va seguido de un carácter de espacio o un delimitador de tabulación (t
), que se utiliza para especificar el formato de la cadena de registro.
Si está utilizando el nombre de formato de registro predefinido en la siguiente tabla, se puede utilizar directamente como una variable en el formato de registro/fecha/hora de GoAccess.
COMBINED | 联合日志格式 VCOMBINED | 支持虚拟主机的联合日志格式 COMMON | 通用日志格式 VCOMMON | 支持虚拟主机的通用日志格式 W3C | W3C 扩展日志格式 SQUID | Native Squid 日志格式 CLOUDFRONT | 亚马逊 CloudFront Web 分布式系统 CLOUDSTORAGE | 谷歌云存储 AWSELB | 亚马逊弹性负载均衡 AWSS3 | 亚马逊简单存储服务 (S3)
2.3 Cómo configurar el formato de registro
Primero, observe cuál es su formato de registro. La directiva log_format es la siguiente:
Sintaxis: log_format nombre cadena…;
Valor predeterminado: log_format combinado “…”;
Sección de configuración: http
nombre representa el nombre del formato y cadena representa el formato equivalente. log_format tiene un formato de registro combinado predeterminado que no es necesario configurar, que es equivalente al formato de registro combinado de Apache, como se muestra a continuación:
log_format combined '$remote_addr - $remote_user [$time_local] '
' "$request" $status $body_bytes_sent '
' "$http_referer" "$http_user_agent" ';
Por supuesto, también puede agregar la información que el registro del servidor necesita obtener según sus propias necesidades. Se permiten las siguientes variables en el formato de registro:
remote_addr, $http_x_forwarded_for 记录客户端IP地址
remote_user 记录客户端用户名称
request 记录请求的URL和HTTP协议
status 记录请求状态
body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。
bytes_sent 发送给客户端的总字节数。
connection 连接的序列号。
connection_requests 当前通过一个连接获得的请求数量。
msec 日志写入时间。单位为秒,精度是毫秒。
pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。
http_referer 记录从哪个页面链接访问过来的
http_user_agent 记录客户端浏览器相关信息
request_length 请求的长度(包括请求行,请求头和请求正文)。
request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。
time_iso8601 ISO8601标准格式下的本地时间。
time_local 通用日志格式下的本地时间。
El siguiente es un ejemplo de configuración de log_format:
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'"$status" $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$gzip_ratio" $request_time $bytes_sent $request_length';
log_format srcache_log '$remote_addr - $remote_user [$time_local] "$request" '
'"$status" $body_bytes_sent $request_time $bytes_sent $request_length '
'[$upstream_response_time] [$srcache_fetch_status] [$srcache_store_status] [$srcache_expire]';
open_log_file_cache max=1000 inactive=60s;
server {
server_name ~^(www.)?(.+)$;
access_log logs/$2-access.log main;
error_log logs/$2-error.log;
location /srcache {
access_log logs/access-srcache.log srcache_log;
}
}
}
Esta es la correspondencia entre el formato de registro de GoAccess y el formato de registro del servidor:
%t 匹配time-format格式的时间字段
%d 匹配date-format格式的日期字段
%h host(客户端ip地址,包括ipv4和ipv6)
%r 来自客户端的请求行
%m 请求的方法
%U URL路径
%H 请求协议
%s 服务器响应的状态码
%b 服务器返回的内容大小
%R HTTP请求头的referer字段
%u 用户代理的HTTP请求报头
%D 请求所花费的时间,单位微秒
%T 请求所花费的时间,单位秒
%^ 忽略这一字段
Ejemplo de modificación del registro de GoAccess:
log_format access '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $http_x_forwarded_for $request_time $upstream_response_time';
El archivo de configuración predeterminado de GoAccess goaccess.conf
se coloca en la ruta /usr/local/etc
. El formato predeterminado es: log-format %h %^[%d: %t %^] "%r" %s %b "%R" "%u".
Observe el formato de registro del servidor anterior y descubra que hay más tiempos de respuesta $request_time
y tiempo de respuesta ascendente $upstream_response_time.
Podemos modificarlo de la siguiente manera:
原来:log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
修改:log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" %^ %^ %T
Los últimos tres elementos %^ %^ %T
, %^
significa ignorar, %T
significa "tiempo de respuesta en segundos, con una precisión de milisegundos". Al modificar el formato de GoAccess, corresponde al formato de registro de nuestro servidor.
2.4 Ejemplo de GoAccess
Si su servidor utiliza un formato de registro común, un formato de registro conjunto, incluido el host virtual, el formato W3C y Amazon CloudFront (descarga distribuida), etc., no es necesario modificar el formato de registro, simplemente utilícelo directamente. Tanto LNMP como Oneinstack utilizan el formato COMBINADO.
GoAccess analiza el comando de registro en la terminal:
goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED
En el comando anterior, -f especifica el registro /ruta/al/registro que se analizará –formato de registro en formato de registro, el formato predeterminado de LNMP es: COMBINADO. El efecto después de correr es el siguiente:
Las teclas de acceso rápido de operación son las siguientes:
F1
oh
página de ayuda principal.
F5
Vuelve a dibujar la ventana principal.
q
Salga del programa, ventana actual o módulo bloqueado.
o
oENTER
expande el módulo seleccionado o abre una ventana.
0-9
yShift + 0
activan el módulo seleccionado.
j
Desplácese hacia abajo en el módulo expandido.
k
Desplácese hacia arriba en el módulo expandido.
c
Establece o cambia la combinación de colores.
^ f
Desplazarse hacia adelante una pantalla en el módulo actual.
^ b
Desplazarse hacia atrás una pantalla en el módulo actual.
TAB
alternar módulo (adelante).
SHIFT + TAB
Cambiar módulo (hacia atrás).
s
Ordena las opciones de los módulos activos.
/
busca en todos los módulos (admite expresiones regulares).
n
Encuentre la ubicación donde ocurrirá el próximo evento.
g
Mover a la primera opción o a la parte superior de la pantalla.
G
Mover a la última opción o al final de la pantalla.
Si desea ver las diez direcciones IP más visitadas, presione la tecla numérica 5 para abrir los detalles del módulo. Como se muestra abajo:
Varios otros módulos digitales correspondientes son los siguientes:
Presione 1 para apuntar a "Visitas por día"
Presione 2 para navegar a "URL más solicitadas"
Presione 3 para navegar hasta "Archivos estáticos más solicitados"
Presione 4 para navegar a "404 más solicitados"
Presione 5 para navegar a "IP de usuario más solicitadas"
Presione 6 para navegar a "Sistema operativo del usuario"
Presione 7 para navegar al "Navegador del usuario"
Presione 8 para navegar a Estadísticas por hora
Salida de GoAccess. El comando es el siguiente:
Genere un informe HTML:
# goaccess access.log -a -o report.html
Genere un informe JSON:
# goaccess access.log -a -d -o report.json
Genere un archivo CSV:
# goaccess access.log --no-csv-summary -o report.csv
GGoAccess es muy flexible y admite análisis y filtrado en tiempo real. Por ejemplo: necesita diagnosticar problemas rápidamente mediante el monitoreo de registros en tiempo real:
# tail -f access.log | goaccess -
Aún mejor, también puedes usar tail -f para trabajar con una herramienta de coincidencia de patrones, como: grep
, awk
, sed
, etc.
# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -
O puedes analizar el archivo desde cero con la tubería abierta y aplicar un filtro al mismo tiempo:
# tail -f -n +0 access.log | grep --line-buffered 'Firefox' | goaccess -o out.html --real-time-html -
Por ejemplo:
Envíe GoAccess a HTML y luego acceda a él con un navegador. Puede utilizar el siguiente comando:
goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/howsvps.com/wzfou.html
El efecto de acceder a él con un navegador es el siguiente (haga clic para ampliar):
Los gráficos generados por GoAccess son muy hermosos y también puede ver opciones detalladas en los gráficos. Para obtener más información, también puede consultar la demostración en el sitio web oficial: https://rt.goaccess.io/
Envíe GoAccess a HTML y actualícelo en tiempo real. El comando es el siguiente:
goaccess -d -f /data/wwwlogs/howsvps.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/howsvps.com/wzfou.html --real-time-html --port=9870 --daemonize
Lo anterior muestra que después de que el demonio inicia GoAccess, utiliza Websocket para establecer una conexión larga. Escucha en el puerto 7890 de forma predeterminada. Puede especificar el número de puerto a través del parámetro --port
.
Después de especificar el número de puerto, recuerde abrirlo en el firewall de su VPS:
iptables -A INPUT -p tcp -m tcp --dport 9870 -j ACCEPT
3. Resumen
ngxtop es adecuado para necesidades de búsqueda simples, mientras que GoAccess se centra en el análisis general e incluso puede usarse como estadística. Si su sitio web utiliza SSL, cuando GoAccess genere la página HTML para monitoreo en tiempo real, recuerde configurar ssl-cert
y ssl- en el archivo de configuración
elemento.goaccess.conf
key.
Por supuesto, también podemos usar crontab para pedirle periódicamente a GoAccess que genere páginas HTML estadísticas, lo que equivale al monitoreo en línea en tiempo real de los registros del servidor. El código es el siguiente (genera la página HTML cada 5 minutos):
*/5 * * * * goaccess -d -f /data/wwwlogs/wzfou.com_nginx.log --log-format=COMBINED -a > /data/wwwroot/wzfou.com/wzfou.html
Para aquellos que no saben cómo configurar el formato de registro de GoAccess, pueden utilizar directamente la herramienta de conversión en línea : https://github.com/stockrt/nginx2goaccess. Orden:
用法: ./nginx2goaccess.sh '<log_format>' ./nginx2goaccess.sh '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"'
Los resultados de salida se pueden utilizar directamente en la configuración del formato de registro de GoAccess:
- Generated goaccess config: time-format %T date-format %d/%b/%Y log_format %h - %^ [%d:%t %^] "%r" %s %b "%R" "%u"