通常、Exploratoryサーバーをを再起動したときには、Docker システムによって古いログファイルはクリーンアップされます。
そこでこのノートでは、docker-compose.yml
の設定ファイルを更新し、ログの保存先をカスタマイズすることで、サーバーを再起動してもログファイルを保持しつづける方法を紹介します。
なおこのノートでは、Unixログシステム (syslog) を使用する方法を紹介します。
一般的な Linux システムではほとんどの場合、rsyslog
がシステム ログに利用されます。
Exploratoryサーバーが実行されているサーバーに接続されているターミナルを開き、次のコマンドを実行します。
ps -ef|grep rsyslog
出力結果は以下のようになります。/usr/sbin/rsyslogd
のような行が表示された場合、システムログの利用が可能です。
$ ps -ef|grep rsyslog
syslog 60924 1 0 May25 ? 00:01:13 /usr/sbin/rsyslogd -n -iNONE
ubuntu 1646090 1646021 0 22:39 pts/0 00:00:00 grep --color=auto rsyslog
Edit the docker-compose.yml
configuration file to send the log to the system logging.
docker-compose.yml
を編集して、ログをシステムロギングに送信します。
docker-compose.yml
を開きます。exploratory:
というセクションを探します。logging:
行の先頭に「#」記号を追加して、既存の行をコメントアウトして、以下の新しい設定を追加します。 exploratory:
:
:
logging:
driver: json-file
options:
max-size: "10m"
max-file: "8"
exploratory:
:
:
logging:
#driver: json-file
#options:
# max-size: "10m"
# max-file: "8"
driver: "syslog"
options:
tag: "exploratory"
scheduler
セクションの下に同じ設定を追加します。tag
パラメーターに異なる値を設定して、スケジューラーログを他のログと区別することが可能です。 scheduler:
:
:
logging:
driver: json-file
options:
max-size: "10m"
max-file: "8"
scheduler:
:
:
logging:
#driver: json-file
#options:
# max-size: "10m"
# max-file: "8"
driver: "syslog"
options:
tag: "exploratory-scheduler"
通常、システムログではログが数日間しか保存されません。ログシステムの設定を変更することで、ログをより長期間に渡って保存することも可能です。
例えば、rsyslog
の場合、/etc/logrotate.d/rsyslog
ファイル内のrotate
オプションを更新して、ログを保存する日数を更新できます。
詳細は、システムのマニュアルを参照してください。
/var/log/syslog
{
rotate 40
daily
:
:
変更が完了したら、サーバーを再起動して変更を有効にします。
$ docker-compose down
$ docker-compose up -d
サーバーを再起動したら、ブラウザからExploratoryサーバーにアクセスし、アクセスログがUnixシステム・ログファイルに表示されることを確認してください。
通常、ファイルは/var/log/syslog
にあります。
ご不明な点がありました際はサポートまでご連絡ください。ございましたら、サポートまでご連絡ください。
詳細はDockerのサポートドキュメントの Configure Logging Drivers セクションをご参考ください。