日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Logtail采集Kubernetes上挂载的NAS日志

發布時間:2024/8/23 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Logtail采集Kubernetes上挂载的NAS日志 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

采集k8s掛載Nas后的日志

該文檔主要介紹使用logtail以兩種不同的方式進行k8s掛載Nas后的日志采集。兩種采集方式的實現原理是一樣的,都是通過將Logtail和業務容器掛載到相同的NAS上,使Logtail和業務容器的日志數據共享,以此實現日志采集。下面是兩種采集方式的各自特點:

  • SideCar模式。比較靈活、適合水平擴容,適用于數據量較大的場景;
  • 單獨部署Logtail的Deployment。資源消耗比較低、但靈活性以及伸縮性不強,適用于整體集群數據量較少的場景(建議整體日志量不超過每秒10M)。
  • 1.?Sidecar NAS采集方式

    通過?鏈接?使用PV&PVC的方式配置掛載Nas的nas-pvc

    • 步驟一 創建pv
    • 步驟二 創建pvc
    • 步驟三 根據下面的yaml模板創建含有logtail的Pod,進行單個Pod的內部采集

    sideCar模式實驗yaml內容:

    apiVersion: batch/v1 kind: Job metadata:name: nginx-log-sidecar1-demo spec:template:metadata:name: nginx-log-sidecar-demospec:# volumes配置volumes:- name: nginx-logpersistentVolumeClaim:claimName: nas-pvccontainers:# 主容器配置- name: nginx-log-demoimage: registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latestcommand: ["/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-logmountPath: /var/log/nginx# Logtail的Sidecar容器配置- name: logtailimage: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latestenv:# 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# 和主容器共享volumevolumeMounts:- name: nginx-logmountPath: /var/log/nginx# 健康檢查livenessProbe:exec:command:- /etc/init.d/ilogtaild- statusinitialDelaySeconds: 30periodSeconds: 30restartPolicy: "Never"

    SLS控制臺采集配置設置如下圖:

    • 日志路徑與被采集容器的日志所在路徑一致
    • 注意:由于NAS路徑已經掛載到了Logtail容器上,所以不需要打開docker文件的按鈕

    采集上來的系統默認字段含義:

    __source__: pod容器內部IP __tag__:__hostname__: pod名稱 __tag__:__path__: 日志路徑 __tag__:__receive_time__: 采集時間 __tag__:__user_defined_id__: 用戶自定義標識 __tag__:_namespace_: pod所屬namaspace __tag__:_node_ip_: pod所在Node的IP地址 __tag__:_node_name_: pod所屬Node的name __tag__:_pod_ip_: pod容器內部IP __tag__:_pod_name_: pod名稱

    用戶參數:

    ?

    參數

    說明

    ${your_region_config}

    該參數由日志服務Project所在Region以及網絡類型決定,請根據網絡類型輸入正確的格式。包括:

    • 公網:region-internet。例如,華東一為cn-hangzhou-internet。

    • 阿里云內網:region。例如,華東一為cn-hangzhou。

    其中,region為?表一,請根據Project地域選擇正確的參數。

    ${your_aliyun_user_id}

    用戶標識,請替換為您的阿里云主賬號用戶ID。主賬號用戶ID為字符串形式,如何查看ID請參考?用戶標識配置中的2.1節。

    說明?用戶標識一定是?主賬號用戶ID,子賬號ID沒有任何意義。

    ${your_machine_group_user_defined_id}

    您集群的機器組自定義標識。需確保該標識在您的日志服務所在Region內唯一。詳細內容可參考?創建用戶自定義標識機器組。

    ?

    2.?一個Logtail采集所有POD的NAS數據

    注意項:副本數spec.replicas只能為1,不能更多,多了會重復采集。

    首先,創建一個logtail的deployment,以下是本次使用的模板:

    apiVersion: apps/v1 kind: Deployment metadata:name: logtail-deploymentnamespace: kube-systemlabels:k8s-app: nas-logtail-collecter spec:replicas: 1selector:matchLabels:k8s-app : nas-logtail-collectertemplate:metadata:name: logtail-deploymentlabels:k8s-app : nas-logtail-collecterspec:containers:# Logtail的配置- name: logtailimage: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latestenv:# aliuid- 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"volumeMounts:- name: nginx-logmountPath: /var/log/nginx# volumes配置volumes:- name: nginx-logpersistentVolumeClaim:claimName: pvc-test-nginx
    • __注意:__這里的 claimName: pvc-test-nginx 以及mountPath: /var/log/nginx 是將logtail的/var/log/nginx掛載了Nas下的/nginx文件夾
    • 相關參數設置請參考方案1中的表格說明

    logtail運行成功之后,可以在SLS控制臺根據模板中的ALIYUN_LOGTAIL_USER_DEFINED_ID創建對應的機器組,請參考方案1中的表格說明。

    這里新建2個Pod來測試采集是否成功,其中一個POD的模板為:

    apiVersion: v1 kind: Pod metadata:name: "test-nginx-2" spec: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: "nas2"mountPath: "/var/log/nginx"volumes:- name: "nas2"flexVolume:driver: "alicloud/nas"options:server: "Nas掛載地址"path: "/nginx/test2"vers: "4.0"

    另一個Pod將 /var/log/nginx 掛載在了 /nginx/test1 目錄下;結合logtail的掛載情況,現在兩個Pod分別掛載在 /nginx/test1 和 /nginx/test2,而logtail掛載在了 /nginx 下。

    最后配置logtail的采集配置


    因為logtail也掛載了相同的Nas,所以logtail只需要采集自身文件夾下的日志就可以了,這里的是否為docker文件選項關閉。
    注意:由于NAS路徑已經掛載到了Logtail容器上,所以不需要打開docker文件的按鈕

    ?

    #阿里云開年Hi購季#幸運抽好禮!
    點此抽獎:https://www.aliyun.com/acts/product-section-2019/yq-lottery?utm_content=g_1000042901

    原文鏈接
    本文為云棲社區原創內容,未經允許不得轉載。

    總結

    以上是生活随笔為你收集整理的使用Logtail采集Kubernetes上挂载的NAS日志的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。