简体   繁体   中英

Image Name, Container Name in Docker Syslog Tag in Docker-Compose

The logs generated by Docker containers, created by Docker Compose using the Syslog driver, uses the following format "docker/Container_ID" .

May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]: 1:C 03 May 00:53:21.313 # Warning: no config file specified, using the default config. In order to specify a config file
use redis-server /path/to/redis.conf
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]:                _._
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]:           _.-``__ ''-._
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]:      _.-``    `.  `_.  ''-._           Redis 3.0.7 (00000000/0) 64 bit
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]:  .-`` .-```.  ```\/    _.,_ ''-._
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]: (    '      ,       .-`  | `,    )     Running in standalone mode
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]: |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]: |    `-._   `._    /     _.-'    |     PID: 1
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]:  `-._    `-._  `-./  _.-'    _.-'
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]: |`-._`-._    `-.__.-'    _.-'_.-'|
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]: |    `-._`-._        _.-'_.-'    |           http://redis.io
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]:  `-._    `-._`-.__.-'_.-'    _.-'
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]: |`-._`-._    `-.__.-'    _.-'_.-'|
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]: |    `-._`-._        _.-'_.-'    |
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]:  `-._    `-._`-.__.-'_.-'    _.-'
May  2 17:53:21 pe2enpmas300 docker/addfbda94974[1359]:      `-._    `-.__.-'    _.-'

This is just too bad if you are taking those logs to a log server such as Splunk.

How can we change the name of the tag?

  • Image name, including version
  • Container name based on the Service name
  • Container Id

That should be something like:

May  2 17:53:21 pe2enpmas300 docker/redis/redisservice/addfbda94974[1359]: 

As documented at https://docs.docker.com/engine/admin/logging/log_tags/ , the way to change the name of the log tag can be using the variables defined there... So, you can use the following:

  log_driver: syslog
  log_opt:
    tag: "{{.ImageName}}/{{.Name}}/{{.ID}}"

The output on /var/log/messages is as follows (or wherever your syslog outputs logs to)

May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]: 1:C 03 May 18:40:47.818 # Warning: no config file specified, using the default config. In order
 to specify a config file use redis-server /path/to/redis.conf
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]:                _._
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]:           _.-``__ ''-._
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]:      _.-``    `.  `_.  ''-._           Redis 3.0.7 (00000000/0) 64 bit
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]:  .-`` .-```.  ```\/    _.,_ ''-._
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]: (    '      ,       .-`  | `,    )     Running in standalone mode
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]: |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]: |    `-._   `._    /     _.-'    |     PID: 1
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]:  `-._    `-._  `-./  _.-'    _.-'
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]: |`-._`-._    `-.__.-'    _.-'_.-'|
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]: |    `-._`-._        _.-'_.-'    |           http://redis.io
May  3 11:40:47 pe2enpmas300 docker/redis/npmoserver_redis_1/d14fd2ad2666[44739]:  `-._    `-._`-.__.-'_.-'    _.-'

The other answer is out of date for the current docker-compose (1.24.1) syntax. To get the necessary logging set up, you'll want to use the following for the service in your docker-compose.yaml file:

logging:
  driver: syslog
  options:
    tag: "{{.ImageName}}/{{.Name}}/{{.ID}}"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM