本文介绍如何安装Sidecar及使用控制台方式创建Logtail采集配置,完成容器文本日志的采集。
前提条件
背景信息
通过Sidecar模式采集日志,依赖于Logtail容器和业务容器共享的日志目录。业务容器将日志写入到共享目录中,Logtail通过监控共享目录中日志文件的变化并采集日志。更多信息,请参见Sidecar日志采集介绍和Sidecar模式示例。
步骤一:安装Sidecar
- 登录您的Kubernetes集群。
- 创建一个YAML文件。
sidecar.yaml为文件名,请根据实际情况替换。
vim sidecar.yaml
- 在YAML文件输入如下脚本,并根据实际情况设置其中的参数。注意 请确保配置文件中的env中的TZ(Time Zone)配置正确,否则原始日志与处理日志的时区不一致,可能会导致采集到的日志写入过去或未来的情况。例如如果是中国大陆,您可以设置时区为Asia/Shanghai。
apiVersion: batch/v1 kind: Job metadata: name: nginx-log-sidecar-demo namespace: default spec: template: metadata: name: nginx-log-sidecar-demo spec: restartPolicy: Never containers: - name: nginx-log-demo image: registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest command: ["/bin/mock_log"] args: ["--log-type=nginx", "--stdout=false", "--stderr=true", "--path=/var/log/nginx/access.log", "--total-count=1000000000", "--logs-per-sec=100"] volumeMounts: - name: nginx-log mountPath: /var/log/nginx ##### logtail sidecar container - name: logtail # more info: https://cr.console.aliyun.com/repository/cn-hangzhou/log-service/logtail/detail # this images is released for every region image: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latest # when recevie sigterm, logtail will delay 10 seconds and then stop command: - sh - -c - /usr/local/ilogtail/run_logtail.sh 10 livenessProbe: exec: command: - /etc/init.d/ilogtaild - status initialDelaySeconds: 30 periodSeconds: 30 resources: limits: memory: 512Mi requests: cpu: 10m memory: 30Mi env: ##### base config # user id - name: "ALIYUN_LOGTAIL_USER_ID" value: "${your_aliyun_user_id}" # user defined id - name: "ALIYUN_LOGTAIL_USER_DEFINED_ID" value: "${your_machine_group_user_defined_id}" # config file path in logtail's container - name: "ALIYUN_LOGTAIL_CONFIG" value: "/etc/ilogtail/conf/${your_region_config}/ilogtail_config.json" ##### env tags config - name: "ALIYUN_LOG_ENV_TAGS" value: "_pod_name_|_pod_ip_|_namespace_|_node_name_|_node_ip_" - name: "_pod_name_" valueFrom: fieldRef: fieldPath: metadata.name - name: "_pod_ip_" valueFrom: fieldRef: fieldPath: status.podIP - name: "_namespace_" valueFrom: fieldRef: fieldPath: metadata.namespace - name: "_node_name_" valueFrom: fieldRef: fieldPath: spec.nodeName - name: "_node_ip_" valueFrom: fieldRef: fieldPath: status.hostIP volumeMounts: - name: nginx-log mountPath: /var/log/nginx ##### share this volume volumes: - name: nginx-log emptyDir: {}
- 在配置脚本中找到如下内容,完成基础配置。
##### base config # user id - name: "ALIYUN_LOGTAIL_USER_ID" value: "${your_aliyun_user_id}" # user defined id - name: "ALIYUN_LOGTAIL_USER_DEFINED_ID" value: "${your_machine_group_user_defined_id}" # config file path in logtail's container - name: "ALIYUN_LOGTAIL_CONFIG" value: "/etc/ilogtail/conf/${your_region_config}/ilogtail_config.json"
变量 说明 ${your_aliyun_user_id} 配置为您的阿里云账号ID。更多信息,请参见步骤一:获取日志服务所在的阿里云账号ID。 ${your_machine_group_user_defined_id} 配置机器组的自定义标识,请确保该标识在您的Project所在地域内唯一,例如nginx-log-sidecar。更多信息,请参见创建用户自定义标识机器组。 ${your_region_config} 请根据日志服务Project所在地域和访问的网络类型填写。其中,地域信息请参见表 1。 - 如果使用公网采集日志,格式为
region-internet
,例如:华东 1(杭州)为cn-hangzhou-internet。 - 如果使用阿里云内网采集日志,格式为
region
。例如:华东 1(杭州)为cn-hangzhou。
- 如果使用公网采集日志,格式为
- 在配置脚本中找到如下内容,设置挂载路径。说明 建议使用emptyDir挂载方式。
volumeMounts: - name: nginx-log mountPath: /var/log/nginx ##### share this volume volumes: - name: nginx-log emptyDir: {}
参数 说明 name 自定义设置卷的名称。 注意 volumeMounts节点下的name参数与volumes节点下的name参数需设置为一致,即确保Logtail容器和业务容器挂载相同的卷上。mountPath 设置挂载路径,即容器文本日志所在文件的路径。 - 在配置脚本中找到如下内容,设置延迟停止采集的时间。通常情况下,延迟停止采集的时间为10秒,即Logtail容器在接收到外部停止信号后会等待10秒再退出,防止有部分数据没有采集完毕。
command: - sh - -c - /usr/local/ilogtail/run_logtail.sh 10
- 在配置脚本中找到如下内容,完成基础配置。
- 执行如下命令使sidecar.yaml文件配置生效。
sidecar.yaml为文件名,请根据实际情况替换。
kubectl apply -f sidecar.yaml
步骤二:创建机器组
- 登录日志服务控制台。
- 在Project列表中,单击您在安装Logtail组件时所使用的Project。
- 在左侧导航栏中,选择资源 > 机器组。
- 在机器组列表中,选择
图标 > 创建
- 在创建机器组面板中,配置如下信息,然后单击确定。
参数 说明 名称 机器组名称。 注意 创建后,不支持修改机器组名称,请谨慎填写。机器组标识 选择用户自定义标识。 机器组Topic 机器组Topic用于区分不同服务器产生的日志数据。更多信息,请参见日志主题。 用户自定义标识 配置为您在安装Sidecar时配置的用户自定义标识,即需与您在安装Sidecar时设置的${your_machine_group_user_defined_id}的值一致,例如nginx-log-sidecar。
步骤三:创建Logtail采集配置
- 登录日志服务控制台。
- 在接入数据区域,单击正则-文本日志。本文以采集正则-文本文件为例,其他文本文件采集请参见采集文本日志。
- 选择目标Project和Logstore,单击下一步。选择您在安装Logtail组件时所使用的Project,Logstore为您自定义创建的Logstore。
- 单击使用现有机器组。
- 选中目标机器组,将该机器组从源机器组移动到应用机器组,单击下一步。
该机器组为您在步骤二:创建机器组中创建的机器组。
- 创建Logtail采集配置,单击下一步。
- 预览数据及设置索引,单击下一步。日志服务默认开启全文索引。您也可以根据采集到的日志,手动或者自动设置字段索引。更多信息,请参见配置索引。说明 如果您要查询分析日志,那么全文索引和字段索引属性必须至少启用一种。同时启用时,以字段索引为准。