前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >14 Jan 2022 在kubernetes中配置vector收集pod日志

14 Jan 2022 在kubernetes中配置vector收集pod日志

作者头像
俊采
发布2023-10-17 10:29:52
4960
发布2023-10-17 10:29:52
举报
文章被收录于专栏:LEo的网络日志

安装vector

使用helm方式安装vector,这里只安装Agent,Agent主要负责收集kubernetes集群节点上的所有日志。

代码语言:javascript
复制
$ helm repo add vector https://helm.vector.dev
$ helm repo update
$ helm show values vector/vector
$ cat <<-'VALUES' > values.yaml
role: Agent
VALUES
$ helm install vector vector/vector \
  --namespace vector \
  --create-namespace \
  --values values.yaml

查看vector pod正常运行:

代码语言:javascript
复制
$ kubectl -n vector get po
NAME           READY   STATUS    RESTARTS   AGE
vector-qdxzs   1/1     Running   0          20s
vector-zhpmt   1/1     Running   0          20s
vector-zjrql   1/1     Running   0          20s

查看vector配置文件:

代码语言:javascript
复制
$ k get cm vector -o yaml
apiVersion: v1
data:
  agent.yaml: |
    data_dir: /vector-data-dir
    api:
      enabled: true
      address: 127.0.0.1:8686
      playground: false
    sources:
      kubernetes_logs:
        type: kubernetes_logs
      host_metrics:
        filesystem:
          devices:
            excludes: [binfmt_misc]
          filesystems:
            excludes: [binfmt_misc]
          mountPoints:
            excludes: ["*/proc/sys/fs/binfmt_misc"]
        type: host_metrics
      internal_metrics:
        type: internal_metrics
    sinks:
      prom_exporter:
        type: prometheus_exporter
        inputs: [host_metrics, internal_metrics]
        address: 0.0.0.0:9090
      stdout:
        type: console
        inputs: [kubernetes_logs]
        encoding:
          codec: json
...

修改vector配置文件收集指定pod日志

删除其他配置,最终配置如下:

代码语言:javascript
复制
$ k get cm vector -o yaml
apiVersion: v1
data:
  agent.yaml: |
    data_dir: /vector-data-dir
    api:
      enabled: true
      address: 127.0.0.1:8686
      playground: false
    sources:
      kubernetes_logs:
        type: kubernetes_logs
        extra_label_selector: "component=metrics-collector"
    sinks:
      stdout:
        type: console
        inputs: [kubernetes_logs]
        encoding:
          codec: json

这里只收集label为component=metrics-collector的pod日志。

验证日志收集

找到pod运行节点,这里看到运行节点是aks-agentpool-35516588-vmss000001:

代码语言:javascript
复制
$ k get po -l component=metrics-collector -o wide
NAME                                            READY   STATUS    RESTARTS   AGE   IP            NODE                                NOMINATED NODE   READINESS GATES
metrics-collector-deployment-5487dd7f6d-r9dt2   1/1     Running   0          72m   10.244.2.24   aks-agentpool-35516588-vmss000001   <none>           <none>
$ k logs metrics-collector-deployment-5487dd7f6d-r9dt2 | grep 'Metrics pushed successfully'
level=info caller=logger.go:45 ts=2022-01-14T08:32:16.784534925Z component=forwarder component=metricsclient msg="Metrics pushed successfully"

然后查看运行在该节点的vector的pod日志:

代码语言:javascript
复制
$ k get po -o wide
NAME           READY   STATUS    RESTARTS   AGE     IP            NODE                                NOMINATED NODE   READINESS GATES
vector-4nqd5   1/1     Running   0          7m23s   10.244.1.16   aks-agentpool-35516588-vmss000000   <none>           <none>
vector-6shzj   1/1     Running   0          7m20s   10.244.2.25   aks-agentpool-35516588-vmss000001   <none>           <none>
vector-slmdp   1/1     Running   0          7m26s   10.244.0.15   aks-agentpool-35516588-vmss000002   <none>           <none>
$ k logs vector-6shzj | grep 'Metrics pushed successfully'
{"file":"/var/log/pods/open-cluster-management-addon-observability_metrics-collector-deployment-5487dd7f6d-r9dt2_1baddb2f-7ae6-4ded-ba05-7c02a7385b91/metrics-collector/0.log","kubernetes":{"container_id":"containerd://d82f8325c383a133d61988b0397700486649c786e3bb50c4089964299c1c7ff5","container_image":"quay.io/open-cluster-management/metrics-collector@sha256:24fda89c8661fb21fcf6850bafee6f43f329251b24dfbf36f6fd7e6e619ab3d0","container_name":"metrics-collector","namespace_labels":{"kubernetes.io/metadata.name":"open-cluster-management-addon-observability"},"pod_annotations":{"cni.projectcalico.org/containerID":"53b22ec50ab336b6a24d5ae0622bc66e47197525cd236a4234de83f566f90212","cni.projectcalico.org/podIP":"10.244.2.24/32","cni.projectcalico.org/podIPs":"10.244.2.24/32"},"pod_ip":"10.244.2.24","pod_ips":["10.244.2.24"],"pod_labels":{"component":"metrics-collector","pod-template-hash":"5487dd7f6d"},"pod_name":"metrics-collector-deployment-5487dd7f6d-r9dt2","pod_namespace":"open-cluster-management-addon-observability","pod_node_name":"aks-agentpool-35516588-vmss000001","pod_owner":"ReplicaSet/metrics-collector-deployment-5487dd7f6d","pod_uid":"1baddb2f-7ae6-4ded-ba05-7c02a7385b91"},"message":"level=info caller=logger.go:45 ts=2022-01-14T08:32:16.784534925Z component=forwarder component=metricsclient msg=\"Metrics pushed successfully\"","source_type":"kubernetes_logs","stream":"stderr","timestamp":"2022-01-14T08:32:16.784656526Z"}

可以看到,vector收集到指定pod的日志。

参考文档

  • https://vector.dev/docs/setup/installation/platforms/kubernetes/
  • https://vector.dev/docs/reference/configuration/sources/kubernetes_logs/

LEo at 00:12

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装vector
  • 修改vector配置文件收集指定pod日志
  • 验证日志收集
  • 参考文档
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档