採集k8s掛載Nas後的日誌
該文檔主要介紹使用logtail以兩種不同的方式進行k8s掛載Nas後的日誌採集。兩種採集方式的實現原理是一樣的,都是通過將Logtail和業務容器掛載到相同的NAS上,使Logtail和業務容器的日誌數據共享,以此實現日誌採集。下面是兩種採集方式的各自特點:
1. SideCar模式。比較靈活、適合水平擴容,適用於數據量較大的場景;
2. 單獨部署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-demo
spec:
# volumes配置
volumes:
- name: nginx-log
persistentVolumeClaim:
claimName: nas-pvc
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容器配置
- name: logtail
image: registry.cn-hangzhou.aliyuncs.com/log-service/logtail:latest
env:
# 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 logtails 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
# 和主容器共享volume
volumeMounts:
- name: nginx-log
mountPath: /var/log/nginx
# 健康檢查
livenessProbe:
exec:
command:
- /etc/init.d/ilogtaild
- status
initialDelaySeconds: 30
periodSeconds: 30
restartPolicy: "Never"
SLS控制檯採集配置設置如下圖: