Docker 中的映像名称、容器名称 Docker 中的 Syslog 标记-Compose

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

Docker 容器生成的日志,由 Docker Compose 使用 Syslog 驱动程序创建,使用以下格式 "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]:      `-._    `-.__.-'    _.-'

如果您将这些日志传送到 Splunk 等日志服务器,那就太糟糕了。

如何更改标签的名称?

应该是这样的:

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

https://docs.docker.com/engine/admin/logging/log_tags/ 所述,更改日志标签名称的方法可以使用此处定义的变量...因此,您可以使用以下内容:

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

/var/log/messages 上的输出如下(或者你的 syslog 输出日志到的任何地方)

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]:  `-._    `-._`-.__.-'_.-'    _.-'

另一个答案对于当前的 docker-compose (1.24.1) 语法来说已经过时了。要设置必要的日志记录,您需要在 docker-compose.yaml 文件中为服务使用以下内容:

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