You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
安装与升级(Linux)
安装 LogCollector(DaemonSet 方式)
复制全文
下载 pdf
安装 LogCollector(DaemonSet 方式)
采集容器文本日志或容器标准输出之前,需要先在 Kubernetes 集群中安装 LogCollector,并配置相关环境。本文介绍通过 DaemonSet 方式安装 LogCollector 的操作步骤。​
背景信息​
通过 DaemonSet 方式在 Kubernetes 集群上安装 LogCollector 后,LogCollector 能够采集其他 Pod 内的容器文本日志或容器标准输出。在安装的过程中,主要完成以下步骤。​
  1. 配置 ServiceAccount、ClusterRole、ClusterRoleBinding,完成 LogCollector 的认证和授权。​
  1. 创建 LogCollector 的 ConfigMap。​
  1. 创建 LogCollector DaemonSet。​
前提条件​
已创建 IAM 用户,获取 Access Key ID、Secret Access Key。并至少为用户授予日志服务(TLS)采集预置策略TLSLogCollectorAccess权限策略,权限详情可参考 IAM 概述。​
Helm 安装方式​
说明​
已安装 Helm 3 客户端(3.7 之后版本)。具体操作,请参考Helm。​
1 下载 LogCollector Chart 包​
登录待安装 LogCollector 的 Kubernetes 集群,根据集群所在地域,执行对应的下载命令下载 LogCollector Chart 包。​
​
helm pull oci://logcollector-<Region ID>.cr.volces.com/logcollector/logcollector --version 0.1.0​
​
说明​
  • Region ID:请替换为实际环境对应地域的 ID,如华北2(北京)地域为cn-beijing。支持的地域请参考服务地址列表。​
  • --version 0.1.0:用于获取 LogCollector chart 的参数,固定值。​
  • LogCollector 版本:以部署 LogCollector Chart 命令中的image参数对应的 LogCollector 镜像为准,默认获取最新版本 LogCollector。​
2 部署 LogCollector Chart 包​
执行以下命令部署 LogCollector Chart 包。​
​
helm install logcollector logcollector-0.1.0.tgz \​
--namespace={namespace} \​
--set region={region} \​
--set endpoint={endpoint} \​
--set secret_id={secret_id} \​
--set secret_key={secret_key} \​
--set label={label} \​
--set image={image} \​
--set logcollector_data={logcollector_data}​
​
注意​
  • 如果报错 Error: INSTALLATION FAILED: Unable to continue with install: ClusterRole "logcollector" in namespace "" exists and cannot be imported into the current release……,说明已经安装 Logcollector 同名的ClusterRole,则需要先执行 kubectl delete clusterrole logcollector 删除该 ClusterRole。​
  • 如果报错 Error: INSTALLATION FAILED: Unable to continue with install: ClusterRoleBinding "logcollector" in namespace "" exists and cannot be imported into the current release……,说明已经安装 Logcollector 同名的ClusterRoleBinding,则需要先执行 kubectl delete clusterrolebinding logcollector 删除该 ClusterRoleBinding。​
其中,region、endpoint、secret_id、secret_key、label、image、logcollector_data 为必选参数,详细说明如下。​
​
参数​
是否必选​
示例​
说明​
region​
必选​
cn-beijing​
日志项目所在的地域 ID。详细说明请参考服务地址。​
endpoint​
必选​
https://tls-cn-beijing.volces.com​
​
日志服务连接域名,即服务地址。​
登录日志服务控制台后,您可以在日志项目的详情页中查看连接域名。详细说明请参考服务入口。​
secret_id​
必选​
AK********​
火山引擎账号或 IAM 用户的 Access Key ID。​
您可以在火山引擎控制台密钥管理页面,获取 Access Key ID。​
secret_key​
必选​
TUdZ********​
火山引擎账号或 IAM 用户的 Secret Access Key。​
您可以在火山引擎控制台密钥管理页面,获取 Secret Access Key。​
label​
必选​
http_module​
LogCollector 的 label 标识。​
  • 如果需要将此 LogCollector 加入机器标识类型的机器组中,则必须设置 label 参数。​
  • 支持配置多个 label 标识,多个 label 标识之间通过逗号(,)分隔。​
namespace​
必选​
kube-system​
LogCollector 命名空间。只支持指定一个,且确保该命名空间已存在。​
如果命名空间不存在,将部署失败。​
image​
必选​
logcollector-cn-beijing.cr.volces.com/logcollector/logcollector:latest​
LogCollector 镜像地址。最新版本镜像地址请参考 LogCollector 镜像地址。​
logcollector_data​
必选​
/var/lib/logcollector_data​
存储 LogCollector CheckPoint 状态的节点目录,用于确保 LogCollector Pod 重启之后 LogCollector 不会重复采集日志。​
​
Shell 脚本安装方式​
1 下载 LogCollector 安装包​
登录用于安装 LogCollector 的 Kubernetes 集群,根据集群地域与网络类型,执行对应的下载命令将 LogCollector 安装包下载到指定目录下。​
下载地址中的 Region ID 请替换为实际环境对应地域的 ID,支持的地域请参考服务地址列表。​
  • 私网下载地址​
  • ​
    wget https://logcollector-<Region ID>.tos-<Region ID>.ivolces.com/logcollector.tgz; tar -xzf logcollector.tgz; chmod 755 ./logcollector/logcollector.sh​
    ​
  • 公网下载地址​
  • ​
    wget https://logcollector-<Region ID>.tos-<Region ID>.volces.com/logcollector.tgz; tar -xzf logcollector.tgz; chmod 755 ./logcollector/logcollector.sh​
    ​
2 安装 LogCollector​
执行以下命令安装 LogCollector。​
​
./logcollector/logcollector.sh install --region <region> --endpoint <endpoint> --secret_id <secret_id> --secret_key <secret_key> --label <label> --namespace <namespace> --image <image> --logcollector_data <logcollector_data>​
​
其中,region、endpoint、secret_id、secret_key、label、logcollector-data为必选参数,namepspace、image为可选参数,详细说明如下。​
​
参数​
是否必选​
示例​
说明​
region​
必选​
cn-beijing​
日志项目所在的地域 ID。详细说明请参考服务地址。​
endpoint​
必选​
https://tls-cn-beijing.volces.com​
​
日志服务连接域名,即服务地址。​
登录日志服务控制台后,您可以在日志项目的详情页中查看连接域名。详细说明请参考服务入口。​
secret_id​
必选​
AK********​
火山引擎账号或 IAM 用户的 Access Key ID。​
您可以在火山引擎控制台密钥管理页面,获取 Access Key ID。​
secret_key​
必选​
TUdZ********​
火山引擎账号或 IAM 用户的 Secret Access Key。​
您可以在火山引擎控制台密钥管理页面,获取 Secret Access Key。​
label​
必选​
http_module​
LogCollector 的 label 标识。​
  • 如果需要将此 LogCollector 加入机器标识类型的机器组中,则必须设置 label 参数。同时,您在创建机器标识类型的机器组时,需设置机器标识为该 label。详细说明,请参考机器组概述。​
  • 支持配置多个 label 标识,多个 label 标识之间通过逗号(,)分隔。​
namespace​
可选​
kube-system​
LogCollector 命名空间。​
如果没有指定命名空间,将使用 kube-system 命名空间。如果命名空间不存在,将创建命名空间。​
image​
可选​
logcollector-cn-beijing.cr.volces.com/logcollector/logcollector:latest​
LogCollector 镜像地址。如果没有指定镜像地址,将使用指定地域对应的最新版本镜像地址。最新版本镜像地址请参考 LogCollector 镜像地址。​
logcollector_data​
必选​
/var/lib/logcollector_data​
存储 LogCollector CheckPoint 状态的节点目录,用于确保 LogCollector Pod 重启之后 LogCollector 不会重复采集日志。​
​
手动安装方式​
1 创建 Namespace​
此步骤会创建一个 Namespace。​
  1. 登录需要安装 LogCollector 的 Kubernetes 集群。​
  1. 创建一个名为 logcollector_ns.yaml 的 YAML 文件。​
  • ​
    vim logcollector_ns.yaml​
    ​
  1. 编辑 YAML 文件,并在 YAML 文件中输入以下内容。​
  • 根据实际情况,完成如下参数配置。​
  • ​
    apiVersion: v1​
    kind: Namespace​
    metadata:​
    name: <namespace>​
    ​
  • ​
  • 参数说明如下:​
  • ​
    参数​
    示例​
    说明​
    name​
    kube-system​
    命名空间名称。​
    ​
  1. 执行如下命令使 Namespace 配置生效。​
  • ​
    kubectl apply -f logcollector_ns.yaml​
    ​
2 创建 ServiceAccount​
为 LogCollector 创建一个 ServiceAccount,并配置基本的身份信息。​
  1. 创建一个名为 logcollector_sa.yaml的 YAML 文件。​
  • ​
    vim logcollector_sa.yaml​
    ​
  1. 在 YAML 文件中输入如下内容。​
  • ​
    apiVersion: v1​
    kind: ServiceAccount​
    metadata:​
    name: logcollector​
    namespace: <namespace>​
    ​
  • ​
    参数​
    示例​
    说明​
    namespace​
    kube-system​
    命名空间。只能指定一个命名空间,且必须和步骤1中设置的命名空间相同。​
    ​
  1. 执行如下命令使 ServiceAccount 配置生效。​
  • ​
    kubectl apply -f logcollector_sa.yaml​
    ​
3 创建 ClusterRole​
为 LogCollector 创建 ClusterRole。​
  1. 创建一个名为 logcollector_cr.yaml的 YAML 文件。​
  • ​
    vim logcollector_cr.yaml​
    ​
  1. 在 YAML 文件中输入如下内容。​
  • ​
    apiVersion: rbac.authorization.k8s.io/v1​
    kind: ClusterRole​
    metadata:​
    name: logcollector​
    rules:​
    - apiGroups:​
    - ""​
    resources:​
    - pods​
    - nodes​
    - namespaces​
    verbs:​
    - get​
    - list​
    - watch​
    - apiGroups:​
    - apps​
    resources:​
    - replicasets​
    - deployments​
    - daemonsets​
    - statefulsets​
    verbs:​
    - watch​
    - list​
    - get​
    - apiGroups:​
    - batch​
    resources:​
    - jobs​
    - cronjobs​
    verbs:​
    - watch​
    - list​
    - get​
    ​
  1. 执行如下命令使 ClusterRole 配置生效。​
  • ​
    kubectl apply -f logcollector_cr.yaml​
    ​
4 创建 ClusterRoleBinding​
为 LogCollector 创建一个 ClusterRoleBinding。​
  1. 创建一个名为 logcollector_crb.yaml的 YAML 文件。​
  • ​
    vim logcollector_crb.yaml​
    ​
  1. 在 YAML 文件中输入如下内容。​
  • ​
    apiVersion: rbac.authorization.k8s.io/v1​
    kind: ClusterRoleBinding​
    metadata:​
    name: logcollector​
    subjects:​
    - kind: ServiceAccount​
    name: logcollector​
    namespace: <namespace>​
    roleRef:​
    kind: ClusterRole​
    name: logcollector​
    apiGroup: rbac.authorization.k8s.io​
    ​
  • 参数说明如下:​
  • ​
    参数​
    示例​
    说明​
    namespace​
    kube-system​
    命名空间。只能指定一个,且必须和步骤1中设置的命名空间相同。​
    ​
  1. 执行如下命令使 ClusterRoleBinding 配置生效。​
  • ​
    kubectl apply -f logcollector_crb.yaml​
    ​
5 创建 ConfigMap​
为 LogCollector 创建一个 ConfigMap。​
  1. 创建一个名为 logcollector_config.yaml的 YAML 文件。​
  • ​
    vim logcollector_config.yaml​
    ​
  1. 在 YAML 文件中输入如下内容。​
  • ​
    apiVersion: v1​
    kind: ConfigMap​
    metadata:​
    name: logcollector-config​
    namespace: <namespace>​
    data:​
    logcollector.yml: |​
    daemonset_mode: true​
    ​
    autodiscover:​
    providers:​
    - type: kubernetes​
    node: ${NODE_NAME}​
    ​
    output:​
    tls:​
    region: <region>​
    endpoint: <endpoint>​
    secret_id: <secret_id>​
    secret_key: <secret_key>​
    label: <label>​
    ​
  • 参数说明如下:​
  • ​
    参数​
    示例​
    说明​
    namespace​
    kube-system​
    命名空间,输入您在1 创建 Namespace 中设置的命名空间。​
    region​
    cn-beijing​
    日志项目所在的地域 ID。详细说明请参考服务地址。​
    endpoint​
    https://tls-cn-beijing.volces.com​
    日志服务连接域名,即服务地址。​
    登录日志服务控制台后,在日志项目的详情页中查看连接域名。详细说明请参考服务入口。​
    secret_id​
    AK********​
    火山引擎账号或 IAM 用户的 Access Key ID。​
    您可以在火山引擎控制台密钥管理页面,获取 Access Key ID。​
    secret_key​
    TUdZ********​
    火山引擎账号或 IAM 用户的 Secret Access Key。​
    您可以在火山引擎控制台密钥管理页面,获取 Secret Access Key。​
    label​
    http_module​
    LogCollector 的 label 标识。​
    • 如果需要将此 LogCollector 加入机器标识类型的机器组中,则必须填设置 label 参数。同时,您在创建机器标识类型的机器组时,需设置机器标识为该 label。详细说明,请参考机器组概述。​
    • 支持配置多个 label 标识,多个 label 标识之间通过逗号(,)分隔。​
    ​
  1. 执行如下命令使 ConfigMap 配置生效。​
  • ​
    kubectl apply -f logcollector_config.yaml​
    ​
6 创建 Daemonset​
为 LogCollector 创建 Daemonset,用于采集当前节点中的日志。​
  1. 创建一个名为 logcollector_ds.yaml的 YAML 文件。​
  • ​
    vim logcollector_ds.yaml​
    ​
  1. 在 YAML 文件中输入如下内容,并根据实际情况替换其中的参数。​
  • ​
    apiVersion: apps/v1​
    kind: DaemonSet​
    metadata:​
    name: logcollector​
    namespace: <namespace>​
    labels:​
    k8s-app: logcollector​
    app.kubernetes.io/instance: logcollector​
    spec:​
    selector:​
    matchLabels:​
    k8s-app: logcollector​
    template:​
    metadata:​
    labels:​
    k8s-app: logcollector​
    spec:​
    serviceAccountName: logcollector​
    terminationGracePeriodSeconds: 65​
    containers:​
    - name: logcollector​
    image: <image>​
    imagePullPolicy: Always​
    args:​
    - /usr/local/container/logcollector/logcollectord​
    - -c​
    - /usr/local/container/logcollector/etc/logcollector.yml​
    - --httpprof​
    - 0.0.0.0:6060​
    readinessProbe:​
    exec:​
    command:​
    - sh​
    - -c​
    - | ​
    logcollector_num=`ps -ef 2>/dev/null | grep "logcollector" | grep -v "grep" | wc -l`​
    if [ "$logcollector_num" -eq 0 ]; then​
    exit 1​
    fi​
    initialDelaySeconds: 3​
    periodSeconds: 60​
    timeoutSeconds: 1​
    successThreshold: 1​
    failureThreshold: 3​
    securityContext:​
    runAsUser: 0​
    # If using Red Hat OpenShift, uncomment this:​
    # privileged: true​
    resources:​
    limits:​
    cpu: '2'​
    memory: 2Gi​
    requests:​
    cpu: '1'​
    memory: 1Gi​
    volumeMounts:​
    - name: logcollector-config​
    mountPath: /usr/local/container/logcollector/etc​
    readOnly: true​
    - name: logcollector-host​
    mountPath: /logcollector_host​
    mountPropagation: HostToContainer​
    readOnly: true​
    - name: logcollector-data​
    mountPath: /usr/local/container/logcollector/data​
    env:​
    - name: MAX_MEM​
    valueFrom:​
    resourceFieldRef:​
    containerName: logcollector​
    resource: limits.memory​
    - name: MAX_PROCS​
    valueFrom:​
    resourceFieldRef:​
    containerName: logcollector​
    resource: limits.cpu​
    - name: NODE_NAME​
    valueFrom:​
    fieldRef:​
    fieldPath: spec.nodeName​
    - name: NODE_IP​
    valueFrom:​
    fieldRef:​
    fieldPath: status.hostIP​
    volumes:​
    - name: logcollector-config​
    configMap:​
    defaultMode: 420​
    name: logcollector-config​
    - name: logcollector-host​
    hostPath:​
    path: /​
    - name: logcollector-data​
    hostPath:​
    path: <logcollector_data>​
    type: DirectoryOrCreate​
    updateStrategy:​
    type: RollingUpdate​
    rollingUpdate:​
    maxUnavailable: 1​
    ​
  • ​
  • 参数说明如下:​
  • ​
    参数​
    示例​
    说明​
    namespace​
    kube-system​
    命名空间。输入您在1 创建 Namespace 中设置的命名空间。​
    image​
    logcollector-cn-beijing.cr.volces.com/logcollector/logcollector:latest​
    LogCollector 的镜像地址。​
    最新版本镜像地址请参考 LogCollector 镜像地址 。​
    path​
    /var/lib/logcollector_data​
    存储 LogCollector CheckPoint 状态的节点目录,保证 LogCollector Pod 重启之后 LogCollector 不会重复采集日志。​
    ​
  1. 执行如下命令使 Daemonset 配置生效。​
  • ​
    kubectl apply -f logcollector_ds.yaml​
    ​
LogCollector 镜像地址​
日志服务在各个区域提供的最新版本 LogCollector 镜像地址如下:​
镜像地址中的 Region ID 请替换为实际环境对应地域的 ID,如华北2(北京)地域为cn-beijing。支持的地域请参考服务地址列表。​
​
logcollector-<Region ID>.cr.volces.com/logcollector/logcollector:latest​
​
​
最近更新时间:2026.08.26 14:14:29
这个页面对您有帮助吗?
有用
有用
无用
无用