Heim > Artikel > Betrieb und Instandhaltung > Linux-Betrieb und -Wartung logrotate Protokollrotation – Nginx-Protokolle drehen
Es gibt einen sehr nützlichen Rotationsdienst auf dem Linux-System – logrotate. Über diesen Dienst können Protokolldateien im Rotationsverfahren verwaltet werden. Wenn die Protokolldatei zu groß ist, kann sie in mehrere kleine Protokolldateien geschnitten und komprimiert werden. Die Standardprotokolldateien access.log und error.log von nginx rotieren nicht von selbst. Daher wird Logrotate häufig zum Drehen von Nginx-Protokollen verwendet.
logrotate
Die Ausführung des Logrotate-Programms wird täglich in den geplanten Aufgaben des Systems ausgeführt.
# cat /etc/cron.daily/logrotate #!/bin/sh /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status ……
Als nächstes werfen wir einen Blick auf die Konfigurationsdatei von logrotate /etc/logrotate.conf.
# 通过man logrotate查看更多信息 # 下面是默认配置 weekly <=== 默认一周进行一次轮替操作 rotate 4 <=== 默认保存4份日志文件 create <==== 当轮替完成后,创建一个新的日志文件 dateext <=== 轮替的文件名前加上日期以便管理 #compress <=== 默认对轮替的文件不进行压缩,如果想压缩,就把#去掉 #将/etc/logrotate.d目录下的文件加载进来 include /etc/logrotate.d # 下面是两个日志文件轮替的规则 /var/log/wtmp { <=== 指定文件名 monthly <=== 一个月进行一次轮替 create 0664 root utmp <=== 新的日志文件权限及所有人,所属组设置 minsize 1M <=== 日志文件至少有1M时候才进行轮替 rotate 1 <=== 只保留一份日志文件 } /var/log/btmp { missingok <=== 如果日志文件不存在,则不报错,直接忽略 notifempty <=== 如果日文文件是空的则不进行轮替 monthly create 0600 root utmp rotate 1 }
Nachdem wir die Konfigurationsdatei von logrotate verstanden haben, können wir selbst ein Protokoll für die Rotationspraxis erstellen. Zuerst bereiten wir eine Protokolldatei vor
# ll logrotate_learn.log -rwx------ 1 www www 223288003 Nov 12 09:05 logrotate_learn.log
Hier fügen wir der Protokolldatei besser das Attribut -a hinzu, damit wir ihr nur neue Inhalte hinzufügen können.
# chattr +a logrotate_learn.log
Als nächstes müssen wir über die Rotationsregeln der Protokolldatei nachdenken. Hier planen wir, die rotierten Dateien einmal pro Woche zu rotieren und zu komprimieren und nur dann zu rotieren, wenn die Dateigröße 10 MB überschreitet. Darüber hinaus werden wir 7 Protokolldateien aufbewahren. Hier gibt es noch etwas zu beachten. Da die Datei über das Attribut a verfügt, muss das Attribut a vor der Drehung gelöscht und nach Abschluss der Drehung hinzugefügt werden. Jetzt müssen wir also die Konfigurationsregeln schreiben
vim /etc/logrotate.d/logrotate_learn # 轮替练习 /root/logrotate_learn.log { missingok notifempty weekly rotate 7 size=10M create 0700 www www compress sharedscripts prerotate /usr/bin/chattr -a /root/logrotate_learn.log endscript sharedscripts postrotate /usr/bin/chattr +a /root/logrotate_learn.log endscript }
Jetzt machen wir die Rotation.
# logrotate [-vf] logfile 选项与参数: -v :启动显示模式,会显示logrotate 运作的过程喔! -f :不论是否符合,强制每个日志文件都进行rotate 的动作! # logrotate -v /etc/logrotate.d/logrotate_learn reading config file /etc/logrotate.d/logrotate_learn Allocating hash table for state file, size 15360 B …… # ll logrotate_learn.log* -rwx------ 1 www www 0 Nov 12 10:15 logrotate_learn.log -rwx------ 1 www www 20974585 Nov 12 10:15 logrotate_learn.log.1.gz
Rotationsverwaltung von Nginx-Protokolldateien durchführen
Nachdem wir gelernt haben, ob Sie eine Rotationsverwaltung von Protokolldateien durchführen, werden wir nun mit der eigentlichen Praxis beginnen.
# ll /www/wwwlogs/ total 1852452 -rwx------ 1 www www 350288 Nov 12 02:50 access.log -rwx------ 1 www www 14016937 Nov 11 22:44 isunshinenet.com.error.log -rwx------ 1 www www 300416647 Nov 11 22:44 isunshinenet.com.log -rwx------ 1 www www 0 Sep 30 09:57 nginx_error.log
Wir müssen diese vier Protokolldateien abwechselnd verwalten. Erstellen Sie zunächst die Konfigurationsdatei.
# 对nginx日志文件进行呢轮替 /www/wwwlogs/access.log /www/wwwlogs/nginx_error.log /www/wwwlogs/isunshinenet.com.error.log /www/wwwlogs/isunshinenet.com.log { missingok notifempty daily rotate 7 size=1M create 0700 www www sharedscripts postrotate if [ -f /www/server/nginx/logs/nginx.pid ];then /www/server/nginx/sbin/nginx -s reload fi endscript }
Zu diesem Zeitpunkt haben wir die Rotationsverwaltung von Nginx-Protokollen abgeschlossen. Das System erkennt es selbst. Wenn eine Rotation erforderlich ist, wird die Rotationsverwaltung durchgeführt.
Das obige ist der detaillierte Inhalt vonLinux-Betrieb und -Wartung logrotate Protokollrotation – Nginx-Protokolle drehen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!