サーバーの再起動時にログファイルを保持し続ける方法

通常、Exploratoryサーバーをを再起動したときには、Docker システムによって古いログファイルはクリーンアップされます。

そこでこのノートでは、docker-compose.ymlの設定ファイルを更新し、ログの保存先をカスタマイズすることで、サーバーを再起動してもログファイルを保持しつづける方法を紹介します。

なおこのノートでは、Unixログシステム (syslog) を使用する方法を紹介します。

1. システムログが利用可能かを確認する

一般的な 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

2. docker-compose.ymlを更新する

Edit the docker-compose.yml configuration file to send the log to the system logging.

docker-compose.ymlを編集して、ログをシステムロギングに送信します。

  1. Exploratory サーバーのインストールフォルダにあるdocker-compose.yml を開きます。
  2. exploratory: というセクションを探します。
  3. 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"
  1. (オプション) スケジュールログも継続して保持したい場合は、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"

3. (オプション) システムログの設定を更新する

通常、システムログではログが数日間しか保存されません。ログシステムの設定を変更することで、ログをより長期間に渡って保存することも可能です。

例えば、rsyslogの場合、/etc/logrotate.d/rsyslogファイル内のrotateオプションを更新して、ログを保存する日数を更新できます。

詳細は、システムのマニュアルを参照してください。

/etc/logrotate.d/rsyslogの例

/var/log/syslog
{
        rotate 40
        daily
            :
            :

5. Exploratory サーバーを再起動する

変更が完了したら、サーバーを再起動して変更を有効にします。

$ docker-compose down
$ docker-compose up -d

サーバーを再起動したら、ブラウザからExploratoryサーバーにアクセスし、アクセスログがUnixシステム・ログファイルに表示されることを確認してください。

通常、ファイルは/var/log/syslogにあります。

ご不明な点がありました際はサポートまでご連絡ください。ございましたら、サポートまでご連絡ください。

参考情報

詳細はDockerのサポートドキュメントの Configure Logging Drivers セクションをご参考ください。

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio