MENU
    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
    Plain text
    $ cat > /etc/docker/daemon.json <<EOF
    > {
    > "live-restore": true,
    > "log-driver": "json-file",
    > "log-opts": {
    > "max-size": "10m",
    > "max-file": "3"
    > }
    > }
    > EOF
    Plain text

    Restarting Docker

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

    $ sudo systemctl restart docker
    Plain text

    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
    Plain text
    $ sudo docker stop <container id>
    Plain text
    $ sudo docker rm <container id>
    Plain text

    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
    Plain text

    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>
    Plain text

    Was this article helpful?