Outcold Solutions LLC

Monitoring Docker - Version 5

License Server

Starting with version 5.17 Collectord can download the license from the remote URL. Using remote URL for storing license allows you upgrade the license in just one place.

Important details about using the remote license URL for providing the license:

  • Local license server only serves the purpose of distributing the license between your clusters and nodes.
  • Collectord needs to have access to this remote URL on first start. If Collectord fails to load the license it will fail to start.
  • Collectord caches license internally, so on second start, if the URL is not available, Collectord uses license from the cache.
  • Collectord verifies every 30 minutes for the new license.
  • If Remote URL provides a new license, Collectord uses it immediately.
  • If the provided license requires internet verification, the license clients will be talking to the License Server hosted by Outcold Solutions.

Configure remote URL with the license key

Using own HTTP server to serve the license

Collectord does not have requirements for how you want to provide the license. One of the easiest way is to save the license key in the file, for example license and start a HTTP server

python3 -m http.server 9199

Verify that you can download the license from the remote servers

curl http://license-server.example.local:9199/license

Using Collectord as a license server

Collectord can be used as a license server, the benefits of using Collectord as a license server, it will count for you the license usage.

To run Collectord as a license server, please use the following command, where you need replace the license ... with your license key, and remove the line about the basicAuth or use some password in a format username:password, in the example below we use blank as a username, and password as a password.

docker run -d \
  --name collectordlicenseserver \
  --cpus=0.5 \
  --cpu-shares=102 \
  --memory=64M \
  --restart=always \
  --publish 9199:9199 \
  --env "COLLECTOR__ACCEPTLICENSE=general__acceptLicense=true" \
  --env "COLLECTOR__HTTP_BINDING=general__httpServerBinding=" \
  --env "COLLECTOR__LICENSE_KEY=general__license=..." \
  --env "COLLECTOR__LICENSESERVER_BASICAUTH=license.server__basicAuth=:password" \
  --entrypoint /collectord \
  outcoldsolutions/collectorfordocker:5.22.422 license-server

Verify with the curl that you can download the license

curl -u :password http://license-server.example.local:9199/license

License server will publish on stdout the license usage reports every hours

INFO 2021/10/15 18:36:32.205219 outcoldsolutions.com/collectord/license_server.go:71: LicenseID: C5KBS5R69NH9G, Expiration: 1642116759, Limit: 200, Count: 54

Configuring collectorfordocker using the remote license URL

Instead of configuring the license key in the docker command, now you can point it to the license URL (in the example below we also use the basic authentication :password, to be able to communicate with the license server running with the help of Collectord that we configured above)

docker run -d \
    --name collectorfordocker \
    --volume /sys/fs/cgroup:/rootfs/sys/fs/cgroup:ro \
    --volume /proc:/rootfs/proc:ro \
    --volume /var/log:/rootfs/var/log:ro \
    --volume /var/lib/docker/:/rootfs/var/lib/docker/:ro \
    --volume /var/run/docker.sock:/rootfs/var/run/docker.sock:ro \
    --volume collector_data:/data/ \
    --cpus=1 \
    --cpu-shares=204 \
    --memory=256M \
    --restart=always \
    --env "COLLECTOR__SPLUNK_URL=output.splunk__url=https://hec.example.com:8088/services/collector/event/1.0" \
    --env "COLLECTOR__SPLUNK_TOKEN=output.splunk__token=B5A79AAD-D822-46CC-80D1-819F80D7BFB0"  \
    --env "COLLECTOR__SPLUNK_INSECURE=output.splunk__insecure=true"  \
    --env "COLLECTOR__ACCEPTLICENSE=general__acceptLicense=true" \
    --env "COLLECTOR__LICENSE_URL=license.client__url=http://license-server.example.local:9199/license" \
    --env "COLLECTOR__LICENSECLIENT_BASICAUTH=license.client__basicAuth=:password" \
    --env "COLLECTOR__CLUSTER=general__fields.docker_cluster=-" \
    --privileged \

Updating the license with the License Server

To update the license for all Collectord instances that read the license from the remote URL you just need to replace the license in one place, on the License Server. Just restart the license server with the new valid License Key to update the license on all of your clusters.

About Outcold Solutions

Outcold Solutions provides solutions for monitoring Kubernetes, OpenShift and Docker clusters in Splunk Enterprise and Splunk Cloud. We offer certified Splunk applications, which give you insights across all containers environments. We are helping businesses reduce complexity related to logging and monitoring by providing easy-to-use and deploy solutions for Linux and Windows containers. We deliver applications, which help developers monitor their applications and operators to keep their clusters healthy. With the power of Splunk Enterprise and Splunk Cloud, we offer one solution to help you keep all the metrics and logs in one place, allowing you to quickly address complex questions on container performance.