Docker logging driver that forwards container logs to Tencent CLS.
# Install plugin docker plugin install k8scat/docker-log-driver-tencent-cls:latest \ --alias tencent-cls \ --grant-all-permissions # Run container with the driver docker run --log-driver=tencent-cls \ --log-opt endpoint="<endpoint>" \ --log-opt secret_id="<secret_id>" \ --log-opt secret_key="<secret_key>" \ --log-opt topic_id="<topic_id>" \ your_image# Install docker plugin install k8scat/docker-log-driver-tencent-cls:latest \ --alias tencent-cls \ --grant-all-permissions # Upgrade docker plugin disable tencent-cls --force docker plugin upgrade tencent-cls k8scat/docker-log-driver-tencent-cls:latest \ --grant-all-permissions docker plugin enable tencent-cls systemctl restart docker # Uninstall docker plugin disable tencent-cls --force docker plugin rm tencent-clsUse with docker run:
docker run --log-driver=tencent-cls \ --log-opt endpoint="<endpoint>" \ --log-opt secret_id="<secret_id>" \ --log-opt secret_key="<secret_key>" \ --log-opt topic_id="<topic_id>" \ --log-opt template="{container_name}: {log}" \ your_imageUse with docker-compose.yml:
version: '3.8' services: app: image: your/image logging: driver: tencent-cls options: endpoint: "<endpoint>" secret_id: "<secret_id>" secret_key: "<secret_key>" topic_id: "<topic_id>" template: "{container_name}: {log}"Edit /etc/docker/daemon.json:
{ "log-driver": "tencent-cls", "log-opts": { "endpoint": "<endpoint>", "secret_id": "<secret_id>", "secret_key": "<secret_key>", "topic_id": "<topic_id>" } }Restart Docker after changes: systemctl restart docker
| Option | Required | Default | Description |
|---|---|---|---|
| endpoint | Yes | Tencent CLS Endpoint | |
| secret_id | Yes | Tencent CLS Secret ID | |
| secret_key | Yes | Tencent CLS Secret Key | |
| topic_id | Yes | Tencent CLS Topic ID | |
| template | No | {log} | Message format template |
| filter-regex | No | Regex to filter logs | |
| retries | No | 10 | Max retry attempts (0 = infinite) |
| timeout | No | 10s | API request timeout (units: ns, us/µs, ms, s, m, h) |
| no-file | No | false | Disable log files (disables docker logs) |
| keep-file | No | true | Keep log files after container stop |
| mode | No | blocking | Log processing mode: blocking/non-blocking |
| instance_info | No | Instance info in JSON format | |
| append_container_details_keys | No | Append container details keys, separated by comma. Available keys: container_id, container_name, container_image_id, container_image_name |
To customize the log message format using the template option, you can use the following tags:
| Tag | Description |
|---|---|
| {log} | Log message |
| {timestamp} | Log timestamp |
| {container_id} | Short container ID |
| {container_full_id} | Full container ID |
| {container_name} | Container name |
| {image_id} | Short image ID |
| {image_full_id} | Full image ID |
| {image_name} | Image name |
| {daemon_name} | Docker daemon name |