はじめに
NextcloudにはCLI環境としてocc
というものがあり、さまざまな設定、管理を行うことができます。 ここではoccで使える様々なコマンド群のうち、ログ管理に関するコマンド群についてまとめてみます。
※occ の使い方については、 【techblog】Nextcloudの管理用CLI「occ」コマンドについての記事を参照ください。
※occ の共通オプションについては、【techblog】Nextcloudの管理用CLI「occ」詳細: Nextcloud自体に対するコマンド群、共通オプション設定の記事を参照ください。
環境について
ここで記載するoccを実行するNextcloudのバージョンは、2019年3月30日現在で最新の15.0.5
を利用します。
WebサーバはNginxを利用した環境で実施しております。ApacheをWebサーバとして利用している場合は、sudo -u
のユーザIDをapache
に読み替えてください。
ログ管理に関するコマンド群
ログ管理に関するコマンドは以下のようなものがあります。
- log:file
- log:manage
log:file
Nextcloudログの出力に関する設定を行います。オプションを何も指定しない場合はログ出力設定情報を出力します。
使い方
log:file [オプション]
オプション
--enable
Nextcloudログの出力を有効にします。
# ログ出力はデフォルトで有効になっており無効にする手段が見つからないので利用することはないと思われます。--file=FILE
Nextcloudログの出力先ファイルを絶対パスで指定します。出力先ディレクトリはあらかじめ作成しておく必要があり、このディレクトリに対してNextcloud実行ユーザ(=occ実行ユーザ)が読み書きできるように権限設定をする必要があります。--rotate-size=ROTATE-SIZE
Nextcloudログファイルをローテートするファイルサイズを指定します。ファイルサイズはバイト単位で指定しますが、"k(K)"
(キロバイト)、"m(M)"
(メガバイト)、"t(T)"
(テラバイト)の単位も指定できます。--rotate-size=0
とするとログローテートは行われません。ローテートした古いファイルは"[ログファイル名].[数字]"
というファイル名になります。
ログローテート処理はバックグラウンド処理で行われるため厳密にここに示したサイズジャストでローテートされず、若干大きいファイルサイズとなります。
※logrotate
によるログローテーションの運用もあわせて検討しましょう。
使用例
①現在のログ出力設定情報を出力する。
$ sudo -u nginx php /var/www/html/nextcloud/occ log:file
Log backend file: enabled
Log file: /var/www/html/nextcloud/data/nextcloud.log
Rotate at: 100 MB
②ログファイルの出力先を/var/log/nextcloud/nextcloud.log
にする。
$ sudo -u nginx php /var/www/html/nextcloud/occ log:file --file=/var/log/nextcloud/nextcloud.log
Log backend file: enabled
Log file: /var/log/nextcloud/nextcloud.log
Rotate at: 100 MB
③ログファイルサイズが1GBを超えたらローテートする。
$ sudo -u nginx php /var/www/html/nextcloud/occ log:file --rotate-size=1g
Log backend file: enabled
Log file: /var/log/nextcloud/nextcloud.log
Rotate at: 1 GB
log:manage
Nextcloudログの出力に関する詳細な設定を行います。オプションを何も指定しない場合はログ出力詳細設定情報を出力します。
使い方
log:manage [オプション]
オプション
--backend=BACKEND
Nextcloudログ出力のバックエンド処理方法を設定します。設定可能なパラメータは以下のとおりです。file
syslog
errorlog
systemd
--level=LEVEL
Nextcloudログの出力レベルを指定します。設定可能なレベルは以下のとおりです(キーワード/数字のどちらでも指定できます)。debug (0)
(すべてのアクション、最も詳細なロギング)info (1)
(ユーザーログインやファイルアクティビティなどのアクティビティに加えて、警告、エラーをロギング)warning (2)
(警告(=処理が成功したものの潜在的な問題があるもの)、エラーをロギング)error (3)
(エラーをロギング)
--timezone=TIMEZONE
Nextcloudログに記録する日時のタイムゾーンを指定します。タイムゾーンは PHPのタイムゾーン指定 と同じとなります。
使用例
①現在のログ出力詳細設定情報を出力する。
$ sudo -u nginx php /var/www/html/nextcloud/occ log:manage
Enabled logging backend: file
Log level: Warning (2)
Log timezone: UTC
②ログをsyslogとして出力する。
$ sudo -u nginx php /var/www/html/nextcloud/occ log:manage --backend=syslog
Enabled logging backend: syslog
Log level: Warning (2)
Log timezone: UTC
③ログ出力レベルをinfo
にし、タイムゾーンを日本時間にする。
# sudo -u nginx php /var/www/html/nextcloud/occ log:manage --level=info --timezone Asia/Tokyo
Enabled logging backend: file
Log level: Info (1)
Log timezone: Asia/Tokyo