全部产品
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
容器服务

通过阿里云日志服务采集 Kubernetes 集群日志

更新时间:2018-02-12 15:43:39

日志服务支持通过 Logtail 采集 Kubernetes 集群日志,本文主要介绍 Logtail 的 DaemonSet 部署步骤。

配置流程

66654

步骤一 部署 Logtail的 DaemonSet

步骤二 配置 Logtail 机器组

在日志服务控制台创建自定义标识机器组,后续该 Kubernetes 集群伸缩无需额外运维。

步骤三 创建服务端采集配置

在日志服务控制台创建采集配置,所有采集均为服务端配置,无需本地配置。

视频教程

步骤一 部署 Kubernetes DaemonSet

  1. 连接到您的 Kubernetes 集群。

    参见 通过 kubectl 连接到集群

  2. 配置参数。

    1. 单击下载 日志服务 YAML 文件模板,用 vi 编辑器打开。
    2. env 环境变量一节中所有的 ${your_xxxx} 替换成您的真实值。
      参数 参数说明
      ${your_region_name} 地域名称。请替换为您创建的日志服务 project 所在的地域。地域名称请参考 Logtail 安装所选 region 名
      ${your_aliyun_user_id} 用户标识,请替换为您的阿里云主账号用户 ID。主账号用户 ID 为字符串形式。有关如何查看 ID,参见 用户标识配置
      ${your_machine_group_name} 您集群的机器组标识,此部分由您自己命名,取值范围为 [0-9a-zA-Z-_],具体请参考 自定义机器组

    注意事项

    • 您的主账号需要开启 AccessKey,参见 创建密钥对
    • 请您不要修改模板中的 volumeMountsvolumes 部分,否则会造成 Logtail 无法正常工作。
    • 您可以自定义配置 Logtail 容器的启动参数,只需保证如下几点即可:
      • 启动时,必须具备 3 个环境变量:ALIYUN_LOGTAIL_USER_DEFINED_IDALIYUN_LOGTAIL_USER_IDALIYUN_LOGTAIL_CONFIG
      • 必须将 Docker 的 Domain Socket 挂载到 /var/run/docker.sock
      • 如果您需要采集其他容器或宿主机文件,需要将根目录挂载到 Logtail 容器的/logtail_host 目录。
  3. 部署 Logtail 的 DaemonSet。

    示例:

    1. [root@iZu kubernetes]# curl http://logtail-release.oss-cn-hangzhou.aliyuncs.com/docker/k8s/logtail-daemonset.yaml > logtail-daemonset.yaml
    2. [root@iZu kubernetes]# vi logtail-daemonset.yaml
    3. ...
    4. env:
    5. - name: "ALIYUN_LOGTAIL_CONFIG"
    6. value: "/etc/ilogtail/conf/cn_hangzhou/ilogtail_config.json"
    7. - name: "ALIYUN_LOGTAIL_USER_ID"
    8. value: "16542189653****"
    9. - name: "ALIYUN_LOGTAIL_USER_DEFINED_ID"
    10. value: "k8s-logtail"
    11. ...
    12. [root@iZu kubernetes]# kubectl apply -f logtail-daemonset.yaml

    您可以通过 kubectl get ds -n kube-system 查看您的 Logtail agent 的运行状态。

步骤二 配置机器组

  1. 开通日志服务并创建 Project

  2. 在日志服务控制台的机器组列表页面单击 创建机器组

  3. 选择 用户自定义标识,将您上一步配置的 ALIYUN_LOGTAIL_USER_DEFINED_ID填入 用户自定义标识 内容框中。

    image.png

    配置完成一分钟后,在机器组列表页面单击右侧的 查看状态 按钮,即可看到已经部署 Logtail DaemonSet 节点的心跳状态。具体参见 机器组配置 中的 查看状态

步骤三 创建采集配置

请根据您的需求在控制台创建 Logtail 采集配置,采集配置步骤请参考:

其他操作

查看 Kubernetes 集群中 Logtail DaemonSet 状态

您可以执行命令 kubectl get ds -n kube-system 查看 Logtail 运行状态。

注意: Logtail 默认的 namespace 为 kube-system

如何调整 Logtail 资源限制

默认 Logtail 最多占用单核 40% CPU 和 200M 的内存,如需提升处理速度,需调整两部分参数:

  • yaml 模板中 resources 下的 limitsrequests
  • Logtail 启动配置文件,文件路径为 yaml 模板中的 ALIYUN_LOGTAIL_CONFIG 环境变量,修改方式参见 启动参数修改

强制更新 Logtail DaemonSet

修改 logtail-daemonset.yaml 文件后,执行如下命令进行更新:

  1. kubectl --namespace=kube-system delete ds logtail
  2. kubectl apply -f ./logtail-daemonset.yaml

注意: 强制更新期间可能会出现数据重复。

查看 Logtail DaemonSet 的配置信息

kubectl describe ds logtail -n kube-system

查看 Logtail 的版本号信息、IP、启动时间等

示例如下:

  1. [root@iZbp1dsu6v77zfb40qfbiaZ ~]# kubectl get po -n kube-system -l k8s-app=logtail
  2. NAME READY STATUS RESTARTS AGE
  3. logtail-gb92k 1/1 Running 0 2h
  4. logtail-wm7lw 1/1 Running 0 4d
  5. [root@iZbp1dsu6v77zfb40qfbiaZ ~]# kubectl exec logtail-gb92k -n kube-system cat /usr/local/ilogtail/app_info.json
  6. {
  7. "UUID" : "",
  8. "hostname" : "logtail-gb92k",
  9. "instance_id" : "0EBB2B0E-0A3B-11E8-B0CE-0A58AC140402_172.20.4.2_1517810940",
  10. "ip" : "172.20.4.2",
  11. "logtail_version" : "0.16.2",
  12. "os" : "Linux; 3.10.0-693.2.2.el7.x86_64; #1 SMP Tue Sep 12 22:26:13 UTC 2017; x86_64",
  13. "update_time" : "2018-02-05 06:09:01"
  14. }

查看 Logtail 的运行日志

Logtail 运行日志保存在 /usr/local/ilogtail/ 目录下,文件名为 ilogtail.LOG,轮转文件会压缩存储为 ilogtail.LOG.x.gz

示例如下:

  1. [root@iZbp1dsu6v77zfb40qfbiaZ ~]# kubectl exec logtail-gb92k -n kube-system tail /usr/local/ilogtail/ilogtail.LOG
  2. [2018-02-05 06:09:02.168693] [INFO] [9] [build/release64/sls/ilogtail/LogtailPlugin.cpp:104] logtail plugin Resume:start
  3. [2018-02-05 06:09:02.168807] [INFO] [9] [build/release64/sls/ilogtail/LogtailPlugin.cpp:106] logtail plugin Resume:success
  4. [2018-02-05 06:09:02.168822] [INFO] [9] [build/release64/sls/ilogtail/EventDispatcher.cpp:369] start add existed check point events, size:0
  5. [2018-02-05 06:09:02.168827] [INFO] [9] [build/release64/sls/ilogtail/EventDispatcher.cpp:511] add existed check point events, size:0 cache size:0 event size:0 success count:0

重启某个 Pod 的 Logtail

示例如下:

  1. [root@iZbp1dsu6v77zfb40qfbiaZ ~]# kubectl exec logtail-gb92k -n kube-system /etc/init.d/ilogtaild stop
  2. kill process Name: ilogtail pid: 7
  3. kill process Name: ilogtail pid: 9
  4. stop success
  5. [root@iZbp1dsu6v77zfb40qfbiaZ ~]# kubectl exec logtail-gb92k -n kube-system /etc/init.d/ilogtaild start
  6. ilogtail is running
本文导读目录