ECI支持采集租户容器日志(标准输出+文件)并上传到租户的云日志服务。
接入方式
在容器环境变量里带上日志参数,每个容器分别设置,ECI会根据环境变量自动创建或校验日志资源并拉起日志采集器上传日志到租户的云日志服务:如果不存在则会调用云日志OpenAPI创建对应资源,如果资源存在不进行任何修改直接使用。
环境变量命令统一格式为:Ctyun_logs_eci_{key},key为云日志采集规则名称,只能包含小写字母、数字和短划线(-),每组采集规则支持的环境变量如下:
环境变量 | 说明 | 是否必须 | 示例 |
---|---|---|---|
Ctyun_logs_eci_{key} | key为采集规则名称,若不存在会创建。值为日志采集路径: 1.采集标准输出时:值必须为stdout 2.采集文件日志时:值为文件路径 | 是 | Ctyun_logs_eci_my-rule:stdout Ctyun_logs_eci_other-rule:/tmp/1.l |
Ctyun_logs_eci_{key}_project | 日志项目名称,若不存在会创建 注:取值服从云日志OpenAPI要求 | 否 默认日志项目:eci-als-default-log-project | Ctyun_logs_eci_my-rule_project: my-project |
Ctyun_logs_eci_{key}_unit | 日志单元名称,若不存在会创建 注:取值服从云日志OpenAPI要求 | 否 默认日志单元:eci-als-default-log-unit | Ctyun_logs_eci_my-rule_unit: my-unit |
Ctyun_logs_eci_{key}_ttl | 日志单元TTL。默认值: 生产:365 开发:7 | 否 | 10 |
Ctyun_logs_eci_{key}_hostgroup | 主机组。若主机组不存在,ECI会创建类型为自定义标签的主机组,包含的标签名同主机组名称。若主机组存在,ECI直接将该主机组名称传给采集器,不进行其他校验,请确保主机组名称和内容标签一致 | 否 默认主机组:eci-als-default-log-host-group | Ctyun_logs_eci_my-rule_hostgroup: my-host-group |
说明
若租户需要接入日志服务(传入了日志参数),ECI会通过ITIAM创建名为eciAgentAlsDelegate的委托,拿到临时AKSK,并持续续约,直至该租户在该资源池所有ECI实例都退订。
若用户需要接入日志服务(传入了日志参数),ECI会检查该租户在该资源池是否订购了云日志服务,若没有订购,ECI会替租户订购该资源池的云日志服务。
每个容器可以有多组 Ctyun_logs_eci_{key},对应不同的日志采集路径。
若租户传入的 Ctyun_logs_eci_{key} 中的key在云日志已经存在,ECI不会再创建采集规则,请确保采集规则内容正确。
ECI创建的日志资源在退订ECI实例时不会回收,请租户自行回收避免额外日志计费。
若传入的环境变量命名不符合上述规范,ECI将忽略该环境变量创建对应的默认日志资源。
任何不提供Ctyun_logs_eci_{key}的输入组都会被忽略,比如提供了Ctyun_logs_eci_{key}_project 但没有提供Ctyun_logs_eci_{key},ECI将会忽略该组值,因为ECI不知道采集路径。
示例
容器container1采集标准输出日志。
containers:
- env:
- name: Ctyun_logs_eci_eci-als-default-log-rule-stdout-yfgw9480
value: stdout
image: registry-test.crs-internal.ctyun.cn/open-source/tomcat:9.0-jdk8-corretto
name: container1
容器container2采集标准输出日志并指定日志项目、日志单元。
containers:
- env:
- name: Ctyun_logs_eci_eci-als-default-log-rule-stdout-yfgw9480
value: stdout
- name: Ctyun_logs_eci_eci-als-default-log-rule-stdout-yfgw9480_project
value: my-project
- name: Ctyun_logs_eci_eci-als-default-log-rule-stdout-yfgw9480_unit
value: my-unit
image: registry-test.crs-internal.ctyun.cn/open-source/tomcat:9.0-jdk8-corretto
name: container2
容器container3采集容器内指定文件日志。
containers:
- env:
- name: Ctyun_logs_eci_eci-als-default-log-rule-file-svba7129
value: /var/log/*.log
image: registry-test.crs-internal.ctyun.cn/open-source/tomcat:9.0-jdk8-corretto
name: container3
容器container4采集容器内指定文件日志并指定日志项目、日志单元。
containers:
- env:
- name: Ctyun_logs_eci_eci-als-default-log-rule-file-svba7129
value: /var/log/*.log
- name: Ctyun_logs_eci_eci-als-default-log-rule-file-svba7129_project
value: some-project
- name: Ctyun_logs_eci_eci-als-default-log-rule-file-svba7129_unit
value: some-unit
image: registry-test.crs-internal.ctyun.cn/open-source/tomcat:9.0-jdk8-corretto
name: container4
容器container5同时采集标准输出日志和指定文件日志。
containers:
- env:
- name: Ctyun_logs_eci_eci-als-default-log-rule-stdout-yxrw9035
value: stdout
- name: Ctyun_logs_eci_eci-als-default-log-rule-file-yxrw9035
value: /var/log/*.log
image: registry-test.crs-internal.ctyun.cn/open-source/tomcat:9.0-jdk8-corretto
name: container5