Nginx日志定期清理設(shè)置實(shí)現(xiàn)
1. 日志輪轉(zhuǎn)配置
① 創(chuàng)建 logrotate 配置文件
a. 按天自動(dòng)滾動(dòng)清理
sudo tee /etc/logrotate.d/docker-nginx <<'EOF'
/path/to/your/mount_data/nginx/logs/*.log {
daily # 每天輪轉(zhuǎn)
rotate 30 # 保留30天日志
compress # 壓縮舊日志
delaycompress # 延遲壓縮(僅壓縮上一個(gè)輪轉(zhuǎn)文件)
missingok # 日志不存在時(shí)不報(bào)錯(cuò)
notifempty # 空文件不輪轉(zhuǎn)
create 0640 101 101 # 權(quán)限和用戶(Nginx容器默認(rèn)UID=101)或使用用戶 root root
sharedscripts # 所有日志處理完后執(zhí)行腳本
postrotate
# 向容器發(fā)送USR1信號(hào),通知Nginx重新打開日志文件
docker kill -s USR1 disys-frontend-dev 2>/dev/null || true
endscript
}
EOF
b. 按文件大小自動(dòng)滾動(dòng)清理
sudo tee /etc/logrotate.d/docker-nginx <<'EOF'
/var/ai_disys/microservice-backend/mount_data/nginx/logs/*.log {
size 100M # 關(guān)鍵參數(shù):日志達(dá)到100MB時(shí)觸發(fā)輪轉(zhuǎn)
rotate 10 # 保留10個(gè)歸檔版本
compress # 啟用gzip壓縮
delaycompress # 延遲壓縮上一個(gè)輪轉(zhuǎn)文件
missingok # 日志不存在時(shí)不報(bào)錯(cuò)
notifempty # 空文件不輪轉(zhuǎn)
create 0640 101 101 # 權(quán)限和用戶(Nginx容器默認(rèn)UID=101)
sharedscripts # 所有日志處理完后執(zhí)行腳本
postrotate
# 向容器發(fā)送USR1信號(hào),通知Nginx重新打開日志文件
docker kill -s USR1 disys-frontend-dev 2>/dev/null || true
endscript
}
EOF
關(guān)鍵參數(shù)說(shuō)明:
size 100M:可替換daily實(shí)現(xiàn)按大小輪轉(zhuǎn)(如size 100M+rotate 10)dateext:添加日期后綴(如access.log-20230915.gz)compress:使用gzip壓縮舊日志
② 設(shè)置目錄權(quán)限
sudo chown -R 101:101 /path/to/mount_data/nginx/logs/ sudo chmod -R 755 /path/to/mount_data/nginx/logs/
③ 手動(dòng)測(cè)試配置
# 生成測(cè)試日志(100MB) dd if=/dev/zero bs=1M count=100 >> /path/to/mount_data/nginx/logs/access.log # 強(qiáng)制觸發(fā)輪轉(zhuǎn) sudo logrotate -vf /etc/logrotate.d/docker-nginx # 驗(yàn)證結(jié)果 ls -lh /var/ai_disys/microservice-backend/mount_data/nginx/logs/
2. 日志備份方案
① 定期壓縮備份到其他目錄
sudo tee /usr/local/bin/nginx-log-backup <<'EOF'
#!/bin/bash
BACKUP_DIR="/var/backups/nginx_logs"
mkdir -p $BACKUP_DIR
find /path/to/mount_data/nginx/logs/ -name "*.log.*" -mtime +7 -exec gzip {} \;
rsync -avz /path/to/mount_data/nginx/logs/*.gz $BACKUP_DIR/
EOF
sudo chmod +x /usr/local/bin/nginx-log-backup
② 添加定時(shí)任務(wù)(每天凌晨執(zhí)行)
(crontab -l 2>/dev/null; echo "0 3 * * * /usr/local/bin/nginx-log-backup") | crontab -
3. 高級(jí)功能擴(kuò)展
① 按小時(shí)輪轉(zhuǎn)(高頻日志場(chǎng)景)
# 修改/etc/logrotate.d/docker-nginx hourly rotate 168 # 保留7天(24*7)
② 日志上傳到云存儲(chǔ)
# 在備份腳本中添加(示例:AWS S3) aws s3 sync $BACKUP_DIR s3://your-bucket/nginx_logs/$(date +%Y%m%d)/
③ 日志分析報(bào)警
# 示例:檢測(cè)錯(cuò)誤日志并報(bào)警 grep -i "error" /path/to/mount_data/nginx/logs/error.log | mail -s "Nginx Error Alert" admin@example.com
常見(jiàn)問(wèn)題解決方案
| 問(wèn)題現(xiàn)象 | 原因 | 修復(fù)命令 |
|---|---|---|
| 輪轉(zhuǎn)后無(wú)新日志 | Nginx未接收USR1信號(hào) | docker kill -s USR1 disys-frontend-dev |
| 權(quán)限錯(cuò)誤 | 目錄屬主錯(cuò)誤 | sudo chown -R 101:101 /path/to/logs |
| 日志未壓縮 | gzip未安裝 | sudo apt-get install gzip |
| 備份失敗 | 磁盤空間不足 | df -h && rsync --delete-during |
到此這篇關(guān)于Nginx日志定期清理設(shè)置實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Nginx日志定期清理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx實(shí)現(xiàn)一個(gè)域名配置多個(gè)laravel項(xiàng)目的方法示例
這篇文章主要介紹了nginx實(shí)現(xiàn)一個(gè)域名配置多個(gè)laravel項(xiàng)目的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
nginx部署多個(gè)前端項(xiàng)目詳細(xì)步驟
最近一臺(tái)服務(wù)器要配置多個(gè)前端項(xiàng)目,當(dāng)然前后端分離就需要nginx來(lái)配置了,下面這篇文章主要給大家介紹了關(guān)于nginx部署多個(gè)前端項(xiàng)目的詳細(xì)步驟,需要的朋友可以參考下2023-10-10
nginx訪問(wèn)控制的實(shí)現(xiàn)示例
這篇文章主要介紹了nginx訪問(wèn)控制的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Nginx IP封禁及自動(dòng)封禁IP的實(shí)現(xiàn)
本文主要介紹了Nginx IP封禁及自動(dòng)封禁IP的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
nginx-proxy-manager初次登錄報(bào)錯(cuò)502?bad?gateway解決
這篇文章主要給大家介紹了關(guān)于nginx-proxy-manager初次登錄報(bào)錯(cuò)502?bad?gateway的解決辦法,502?Bad?Gateway服務(wù)器作為網(wǎng)關(guān)或者代理時(shí),為了完成請(qǐng)求訪問(wèn)下一個(gè)服務(wù)器,但該服務(wù)器返回了非法的應(yīng)答,需要的朋友可以參考下2024-04-04
filebeat同時(shí)收集錯(cuò)誤日志與普通日志并存詳解
這篇文章主要為大家介紹了filebeat同時(shí)收集錯(cuò)誤日志與普通日志并存詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

