Enabling log-rotations for existing on-premise Connector Host container
  • 18 Sep 2022
  • 2 Minutes to read
  • Contributors

Enabling log-rotations for existing on-premise Connector Host container


Article Summary

Purpose

This guide is highly technical in nature and should be reviewed with your organization's IT department.

This document will list steps for customers to enable log-rotations for their existing docker containers that are not using log-rotations.

If you are running Tulip's on-premise Connector Host in a docker container, and already have log-rotations enabled for docker on the VM, you can ignore this article or if you need more information on installing Tulip's on-premise connector host, please refer to this article.

What is Log-rotations in Docker?

Tulip's on-premise connector host runs in a docker container that uses a json-logging driver for storing log files locally on the VM. These files can use a substantial amount of disk-space if log-rotations for docker is not enabled. Log-rotation allows restricting the size of a log file & the number of such files for each container.

Implementation

The following steps will highlight how to enable log-rotations for docker, restart docker, delete the existing container & create a new container for Tulip's on-premise connector host.

This procedure will cause a small amount of downtime on the connector host, so it's advised to run the following commands during scheduled downtime, or when the connector host is not in use.

Log-Rotations

Log rotations can be enabled by running the following commands on a Linux VM

$ sudo su  
$ touch /etc/docker/daemon.json
$ cat > /etc/docker/daemon.json <<EOF  
> {  
> "live-restore": true,  
> "log-driver": "json-file",  
> "log-opts": {  
> "max-size": "10m",  
> "max-file": "3"  
> }  
> }  
> EOF

Restarting Docker

In order for docker to use the log-rotations configuration, please restart docker by running the following command

$ sudo systemctl restart docker

Deleting existing container

$ sudo docker ps 

##This will list the details of the existing container, you can copy the container id which will be used in the next step
$ sudo docker stop <container id>
$ sudo docker rm <container id>

Creating a new container

Re-run the following docker run command which was executed the first time Tulip's on-premise connector host was setup

$ docker run -d \  
--name tulip-connector-host \  
-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

If the above credentials are not available, please reach out to Tulip.

The container running Tulip's on-premise Connector Host should be set up now along with log-rotations enabled.

To confirm, if the container is back up, you can check the logs of the new container by running the following command

$ docker logs <name of the container>

Was this article helpful?