K8S中如何使用sidecar模式统一收集应用日志(适用所有技术语言体系)
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章给大家介绍K8S中如何使用sidecar模式统一收集应用日志(适用所有技术语言体系),内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Filebeat可以以sidecar模式
千家信息网最后更新 2025年01月23日K8S中如何使用sidecar模式统一收集应用日志(适用所有技术语言体系)
这篇文章给大家介绍K8S中如何使用sidecar模式统一收集应用日志(适用所有技术语言体系),内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
Filebeat可以以sidecar模式来进行容器日志的收集,也就是filebeat和具体的服务容器部署在同一个pod内,指定收集日志的路径或文件,即可将日志发送到指定位置或Elasticsearch这类的搜索引擎。
每个pod内部署filebeat的模式,好处是和具体的应用服务低耦合,可扩展性强,不过需要在yaml进行额外配置。
理论的可以支持所有技术语言体系,只要能输出文件日志就好。
app服务
---
apiVersion: v1
kind: Service
metadata:
name: test-app
labels:
app: test-app
spec:
selector:
app: test-app
ports:
- protocol: TCP
port: 8080
targetPort: 8080
name: test-port
#定义日志收集相关配置的一个configmap
---
apiVersion: v1
kind: ConfigMap
metadata:
name: test-filebeat-config
labels:
k8s-app: filebeat
data:
filebeat.yml: |-
filebeat.prospectors:
- type: log
paths:
- /logdata/*.log
tail_files: true
fields:
pod_name: '${pod_name}'
POD_IP: '${POD_IP}'
setup.template.name: "app-logs"
setup.template.pattern: "app-logs-*"
output.elasticsearch: # 日志输出到ES
hosts: ["192.168.1.xx:9200","192.168.1.xxx:9200"]
index: "app-logs-%{+yyyy.MM}"
# deployment, 也可通过daemonset方式
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-app
spec:
replicas: 1
minReadySeconds: 15 #滚动升级15s后标志pod准备就绪
strategy:
rollingUpdate: #replicas为2, 升级过程中pod个数在1-3个之间
maxSurge: 1 #滚动升级时会先启动1个pod
maxUnavailable: 1 #滚动升级时允许pod处于Unavailable的最大个数
selector:
matchLabels:
app: test-app
template:
metadata:
labels:
app: test-app
spec:
terminationGracePeriodSeconds: 30 #30秒内优雅关闭程序
containers:
- image: hub.exmaple.com/publib/filebeat:6.1.3 #提前下载下来到私有镜像库的镜像(官方的可能会被墙)
name: filebeat
args: [
"-c", "/opt/filebeat/filebeat.yml",
"-e",
]
env:
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: pod_name
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
securityContext:
runAsUser: 0
resources:
limits:
memory: 200Mi
requests:
cpu: 200m
memory: 200Mi
volumeMounts:
- name: config #将configmap的内容放到容器本地目录
mountPath: /opt/filebeat/
- name: data
mountPath: /usr/share/filebeat/data
- name: logdata #同一个pod内的两个应用共享目录logdata, 一个写一个读
mountPath: /logdata
- name: test-app
image: hub.example.com/service/test-service:latest #提供具体服务的app镜像
ports:
- containerPort: 8080
volumeMounts:
- name: logdata #指定挂在目录到logdata
mountPath: /usr/local/tomcat/logs
volumes:
- name: data
emptyDir: {}
- name: logdata #定义logdata为EmptyDir类型挂载目录
emptyDir: {}
- name: config
configMap:
name: test-filebeat-config #使用前面定义的configmap
items:
- key: filebeat.yml
path: filebeat.yml
查看filebeat和app的运行日志
kubectl logs -ffilebeatkubectl logs -f test-app
这时可看到详细的运行日志情况,同时elasticsearch上也会新建一个app-logs-xxxx.xx的索引。
关于K8S中如何使用sidecar模式统一收集应用日志(适用所有技术语言体系)就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
日志
模式
应用
目录
升级
服务
体系
技术
语言
内容
容器
镜像
统一
个数
文件
更多
帮助
输出
运行
配置
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
麻将软件开发制作
木兰软件开发专业
名山租房软件开发
数据库流水线的分支模型
金蝶k3数据库各表说明
软件开发项目经理 职责
网络安全知识答题答案八年级
中国移动宽带能用电信服务器吗
做大数据用哪种数据库比较好
数字化信息网络技术
数据库技术领域DBA
新余公安局网络安全大队
数据库名字才是合法的
如何建立打印服务器
网络安全管理工作制度
怎么做raid华为服务器
帝国清空数据库
excel另一列有的数据库
网络安全级别类别
元神架设服务器
移动宽带是百兆怎么连接服务器
软件开发项目中遇到的问题
kvm服务器
h3c服务器r390选择了重启
郑州大学锐思数据库账号密码
天津巡检管理软件开发公司
天涯网络安全知识
输入中文数据库登不上
璧山网络安全展
lol美服英雄数据库