全部产品
容器服务

集成日志服务

更新时间:2017-08-29 15:03:31   分享:   

日志服务(Log Service,简称Log)是针对日志场景的平台化服务。无需开发就可以快速完成日志收集、分发、投递与查询, 适用于日志中转、监控、性能诊断、日志分析、审计等场景。容器服务提供了集成日志服务的能力,可以方便地将应用日志发送到日志服务里。

注意:阿里云日志服务已经开始收费,按照下面的方式进行配置,将会产生费用,收费标准参见 日志服务计费规则。请务必了解您的日志量,以免产生大量非预期的费用。

开启日志服务

  1. 登录 容器服务管理控制台

  2. 单击左侧导航栏中的 集群

  3. 选择目标集群并单击 管理

    集群

  4. 单击页面右上角的 开启日志服务

    开启

  5. 在弹出的确认对话框中,单击 确定

    开通容器服务的日志服务之前,您需要先开通阿里云访问控制(RAM)和阿里云日志服务。如果您还未开通,请单击 去开通 开通访问控制(RAM)和阿里云日志服务。

    确认

查看 acslogging 服务安装结果

第一次启用日志服务时,容器服务会在您的机器安装日志服务所需的 Agent。您可以在应用列表中找到该应用。安装成功后,您就可以使用日志服务了。

  1. 容器服务管理控制台,单击左侧导航栏中的 应用

  2. 选择目标集群并取消勾选 隐藏系统应用

    可以看到 acslogging 应用已安装成功。

    log

同时,系统会在阿里云日志服务上创建一个对应的 project,您可以在 日志服务管理控制台 上进行查看。project 的名字里包含了容器服务集群的 ID。

在编排文件里使用日志服务

大多数的 Docker 应用会直接将日志写到 Stdout,现在您依然可以这样做(对于日志写到文件的场景,可以参考下边的 使用日志文件)。在开通日志管理功能后,Stdout 的日志可以自动收集并且发送到阿里云日志服务。

下面的例子创建了一个 WordPress 应用。该应用包含 WordPress 和 MySQL 两个服务,日志会收集到阿里云日志服务。

MySQL:

  1. image: mysql
  2. ports:
  3. - 80
  4. labels:
  5. aliyun.scale: "1"
  6. environment:
  7. - MYSQL_ROOT_PASSWORD=password

WordPress:

  1. image: registry.aliyuncs.com/jiangjizhong/wordpress
  2. ports:
  3. - 80
  4. labels:
  5. aliyun.routing.port_80: wordpress-with-log
  6. aliyun.log_store_dbstdout: stdout #注意这里
  7. links:
  8. - mysql

在上边的编排文件中,标签 aliyun.log_store_dbstdout: stdout表示将容器的标准写入 logstore acslog-wordpress-dbstdout里。这个标签的格式为 aliyun.log_store_{name}: {logpath}。其中 name 为阿里云日志服务 logstore 的名字,实际创建的 logstore 的名字为acslog-${app}-${name}app 为应用名称;logpath为容器中日志的路径;stdout 是一个特殊的 logpath,表示标准输出。

用上面的编排文件,您可以在容器服务管理控制台上创建一个名为 wordpress 的应用。在应用启动完成后,可以在阿里云日志管理控制台上找到 logstore acslog-wordpress-dbstdout,其中存储了 wordpress 的日志。

在日志服务管理控制台上查看日志

使用上面的编排文件部署应用之后,您可以在阿里云日志服务控制台查看收集到的日志。登录 日志服务管理控制台,找到集群对应的日志服务 project,单击进入。您可以看到编排文件里使用的 logstore acs-wordpress-dbstdout

日志索引 列中单击 查询 查看日志。

使用文件日志

如果您不希望日志直接写到 stdout 中,而需要将日志直接写到文件中,比如/var/log/app.log,可以进行如下配置。

  1. aliyun.log_store_name: /var/log/app.log

其中name为 logstore 的名字,/var/log/app.log为容器内日志的路径。

如果您需要输出多个日志文件到日志服务,可以进行如下配置将文件放在多个目录下。

  1. aliyun.log_store_s1: /data/logs/access/access.log
  2. aliyun.log_store_s2: /data/logs/error/error.log

注意:暂不支持多个logstore对应同一个日志目录。上面的例子中有两个logstore s1和s2,对应的日志文件必须在两个目录下。

开启 timestamp

Docker 在收集日志的时候可以选择是否添加 timestamp。您可以在容器服务中通过aliyun.log.timestamp 标签进行配置。默认会添加 timestamp。

  • 添加 timestamp

    aliyun.log.timestamp: "true"

  • 去除 timestamp

    aliyun.log.timestamp: "false"

本文导读目录
本文导读目录
以上内容是否对您有帮助?