Tarea programada Corte de sondeo de registros de Nginx
Este entorno se basa en el sistema Centos 7.8 para crear el entorno de aprendizaje de Nginx. Para
una construcción específica, consulte Implementación del entorno Nginx-1.18.0
Nginx sirve como un servidor web muy poderoso y un servidor proxy inverso. Implemente en negocios en línea, especialmente sitios web que han experimentado un aumento en el volumen de negocios en línea. El volumen de acceso al servidor Nginx es muy grande, y el enorme volumen de acceso también ha provocado el aumento de archivos de registro, especialmente el registro de acceso del servicio Nginx. Todo lo que necesitamos para planificar el sondeo de registros y el corte de los registros de acceso de Nginx.
El servicio Nginx yum se implementa en línea y el corte de registro se implementó automáticamente, pero la instalación del código fuente requiere una configuración manual por parte del administrador.
1. Registro de corte de sondeo en modo yum
Ver el archivo de corte de registro predeterminado del servicio nginx
[root@node01 ~]# vim /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
2. Registro de corte de sondeo en modo de código fuente
1. Método uno (archivo de configuración)
logrotate en sí se ejecuta como una tarea programada
[root@node02 ~]# vim /etc/logrotate.d/nginx
/usr/local/nginx/logs/*.log {
dateext
daily
missingok
rotate 30
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /usr/local/nginx/logs/nginx.pid ]; then
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`
fi
endscript
}
prueba
[root@node02 ~]# logrotate -f /etc/logrotate.d/nginx
[root@node02 ~]# ll /usr/local/nginx/logs/
total 12
-rw-r----- 1 nginx adm 0 Feb 21 20:44 access_2021-02-21.log
-rw-r--r-- 1 nginx root 0 Feb 21 19:45 access.log
-rw-r----- 1 nginx adm 0 Feb 21 20:44 error.log
-rw-r--r-- 1 root root 620 Feb 21 19:45 error.log-20210221
-rw-r--r-- 1 root root 5 Feb 21 19:31 nginx.pid
2. Método dos (secuencia de comandos de servicio + tarea programada)
Proporcionar guion
[root@node02 ~]# mkdir /scripts
[root@node02 ~]# cd /scripts
[root@node02 scripts]# vim cut_nginx_access_logs.sh
#!/bin/bash
# def var
date_format=$(date +%F)
log_dir=/usr/local/nginx/logs
log_name=access
# main program
[ -d ${log_dir} ] && cd ${log_dir} || exit 1
[ -f ${log_dir}/${log_name}.log ] || exit 1
mv ${log_dir}/${log_name}.log ${log_dir}/${log_name}_${date_format}.log
/usr/local/nginx/sbin/nginx -s reload
[root@node02 scripts]# chmod +x cut_nginx_access_logs.sh
[root@node02 scripts]# sh -n cut_nginx_access_logs.sh
[root@node02 scripts]# ./cut_nginx_access_logs.sh
[root@node02 scripts]# ll /usr/local/nginx/logs/
total 12
-rw-r--r-- 1 root root 614 Feb 21 16:41 access_2021-02-21.log
-rw-r--r-- 1 root root 0 Feb 21 19:45 access.log
-rw-r--r-- 1 root root 620 Feb 21 19:45 error.log
-rw-r--r-- 1 root root 5 Feb 21 19:31 nginx.pid
Configurar tareas programadas
[root@node02 scripts]# crontab -e
# cut nginx access logs by wan
00 03 * * * /bin/bash /scripts/cut_nginx_access_logs.sh &> /dev/null