- 印刷する
目的
本ガイドは高度に技術的なものであるため、お客様の組織の IT 部門と検討する必要があります。
この文書では、ログローテーションを使用していない既存の docker コンテナに対して、お客様がログローテーションを有効にするための手順をリストアップします。
Tulipのオンプレミスコネクターホストをdockerコンテナで実行しており、VM上のdockerに対して既にlog-rotationsが有効になっている場合、この記事を無視しても構いませんし、Tulipのオンプレミスコネクターホストのインストールに関する詳細情報が必要な場合は、この記事を参照してください。
DockerのLog-rotationsとは何ですか?
Tulipのオンプレミスコネクターホストは、VM上のローカルにログファイルを保存するためにjson-loggingドライバを使用するDockerコンテナで実行されます。これらのファイルは、dockerのlog-rotationsが有効でない場合、かなりの量のディスクスペースを使用する可能性があります。Log-rotationは、コンテナごとにログファイルのサイズとその数を制限することができます。
実装
以下の手順で、dockerのlog-rotationを有効にし、dockerを再起動し、既存のコンテナを削除して、Tulipのオンプレミスコネクターホスト用に新しいコンテナを作成する方法を説明します。
この手順では、コネクタホストにわずかなダウンタイムが発生するため、スケジュールされたダウンタイムまたはコネクタホストが使用されていないときに、次のコマンドを実行することをお勧めします。
ログ・ローテート
Linux VM 上で以下のコマンドを実行することにより、ログローテーションを有効にすることができます。
$ sudo su $ touch /etc/docker/daemon.json
$ cat > /etc/docker/daemon.json <<EOF
>
> {
>
> "live-restore": true,
>
> "ログドライバ":"json-file"。
>
> "log-opts"。{
>
> "max-size":"10m",
>
> "max-file":"3"
>
> }
>
> }
>
> EOF
> ```
>
>
>
### Dockerを再起動する
dockerがlog-rotationsの設定を使用するために、以下のコマンドを実行してdockerを再起動してください。
`sudo systemctl restart docker`
### 既存のコンテナを削除する
$ sudo docker ps
既存のコンテナの詳細が表示されますので、次のステップで使用するコンテナIDをコピーしてください。
`$ sudo docker stop <コンテナID>.`
`$ sudo docker rm <コンテナID> をコピーします。`
### 新規コンテナの作成
Tulipのオンプレミスコネクターホストの初回セットアップ時に実行した以下のdocker runコマンドを再実行します。
`$ docker run -d \
--name tulip-connector-host ㊧ -e TULIP_FACTORY
-e TULIP_FACTORY='https://<FACTORY>.tulip.co' ୧-͈ᴗ-͈
-e TULIP_UUID='<UUID>' ୧-͈ᴗ-͈
-e TULIP_MACHINE_SECRET='<SECRET>' ୧୧-͈ᴗ-͈
-e TULIP_DEVICE_TYPE=onprem
-e HTTP_PROXY=''\
-e HTTPS_PROXY=''\
-e EXIT_ON_DISCONNECT=true \.
--restart=unless-stopped \
--net=host ୧-͈ᴗ-͈
--mount type=volume,source=tuliplog,target=/log \.
bckca2dh98.execute-api.us-east-1.amazonaws.com/public/connector-host:prod`
上記の認証情報が利用できない場合は、[Tulipに](mailto:support@tulip.co)連絡してください。
Tulip のオンプレミス コネクタ ホストを実行するコンテナは、ログ ローテーションを有効にしてセットアップされている必要があります。
確認するために、コンテナがバックアップされている場合、次のコマンドを実行して、新しいコンテナのログを確認することができます。
`$ docker logs <コンテナ名> { docker logs <コンテナ名> { docker logs <コンテナ名> { docker logs #1`