Nextcloudには標準で監査ログ機能があります。インターネットから接続出来る状態で運用するなら、監理者の責任としてログぐらいは残して起きたいところです。Docker上で動作させているNextCloudのログ設定をおこないます。
監査ログ出力のための設定
「Auditing / Logging」プラグインが有効になっていることを確認して下さい。標準で有効になっているはずです。
以下のコマンドを実行してログの設定をログレベル:1、タイムズーんを日本に変更します。現時点(バージョン23.0.0)では–rotate-sizeの設定は機能しません。明示的にNextcloudのLog Rotateを無効にしておき、別にlogrotateを設定する事にします。
$ sudo docker-compose exec --user www-data nextcloud php occ log:manage --level=info --timezone Asia/Tokyo Enabled logging backend: file Log level: Info (1) Log timezone: Asia/Tokyo $ sudo docker-compose exec --user www-data nextcloud php occ log:file --rotate-size=0 Log backend file: enabled Log file: /var/www/html/data/nextcloud.log Rotate at: disabled
これで./html/data/audit.logに監査ログが出力されるようになるはずです。
Log Rotateの設定
/etc/logrotate.d/nextcloudを以下の通り作成します。パス名の/var/docker-nextcloudは自信の環境に置き換えて下さい。
/var/docker-nextcloud/html/data/nextcloud.log { monthly rotate 12 missingok notifempty compress delaycompress postrotate touch /var/docker-nextcloud/html/data/nextcloud.log chown www-data:www-data /var/docker-nextcloud/html/data/nextcloud.log chmod 640 /var/docker-nextcloud/html/data/nextcloud.log endscript }
/etc/logrotate.d/nextcloudauditを以下の通り作成します。
/var/docker-nextcloud/html/data/audit.log { monthly rotate 12 missingok notifempty compress delaycompress postrotate touch /var/docker-nextcloud/html/data/audit.log chown www-data:www-data /var/docker-nextcloud/html/data/audit.log chmod 640 /var/docker-nextcloud/html/data/audit.log endscript }
以下の通りlogrotateデーモンを再起動します。
$ sudo service logrotate restart
以上で毎月ログが圧縮されて別ファイルとなり、12ヶ月でローテーションされます。