Mod-Security

ModSecurity 不寫入新的輪換日誌文件?

  • August 12, 2021

我在作業系統中為 nginx 和 modsec 的日誌設置了以下日誌輪換,它適用於 nginx 的日誌,但不適用於 modsec 的日誌。modsec 的結果是,它為日誌文件製作了一個副本,但它繼續寫入舊文件,如下所示:

-rw-r--r-- 1 root root 26996998524 Apr 30 12:00 modsec_debug.log.1
drwxr-xr-x 3 root root        4096 Apr 29 10:31 .
-rw-r--r-- 1 root root           0 Apr 29 10:31 modsec_debug.log

有人可以告訴我我錯過了什麼嗎?除了’kill -USR1 cat /var/run/nginx.pid’,我應該執行其他東西嗎?請注意,nginx 在容器內執行,我有這個卷映射:/var/log/nginx:/usr/local/openresty/nginx/logs

其他資訊:openresty:1.13.6.2 Modsec:3.0.3 作業系統版本:Ubuntu 18.04.3 LTS

/var/log/nginx/*.log {
       daily
       missingok
       rotate 14
       compress
       delaycompress
       notifempty
       create 0640 root root
       maxsize 500M
       minsize 500M
       sharedscripts
       prerotate
               if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                       run-parts /etc/logrotate.d/httpd-prerotate; \
               fi \
       endscript
       postrotate
               docker exec www-proxy /bin/sh -c 'kill -USR1 `cat /var/run/nginx.pid`'
       endscript
}

/var/log/nginx/modsec/*.log {
       daily
       missingok
       rotate 14
       compress
       delaycompress
       notifempty
       create 0640 root root
       maxsize 500M
       minsize 500M
       sharedscripts
       prerotate
               if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                       run-parts /etc/logrotate.d/httpd-prerotate; \
               fi \
       endscript
       postrotate
               docker exec www-proxy /bin/sh -c 'kill -USR1 `cat /var/run/nginx.pid`'
       endscript
}

謝謝。

正如這裡所說

你必須重新載入配置。為此,您可以對 Web 伺服器使用重新啟動/重新載入,也可以使用

複製截斷

logrotate 中的選項而不是 create

引用自:https://serverfault.com/questions/1015049