因为用于容器的Azure将从控制台收集基本日志,即stdout / stderr。是否有任何理由为日志运输,特别是生产工作负载实现侧加?目前我正在使用下面的模式
apiVersion: apps/v1
kind: Deployment
metadata:
name: sidecar-logshipping
spec:
replicas: 2
selector:
matchLabels:
app: sidecar-logshipping
template:
metadata:
labels:
app: sidecar-logshipping
spec:
containers:
- name: main-container
image: busybox
args:
- /bin/sh
- -c
- >
i=0;
while true;
do
echo "$i: $(date) dog" >> /var/log/mylogs/app.log;
i=$((i+1));
sleep 1;
done
resources:
limits:
memory: "256Mi"
cpu: "500m"
requests:
memory: "64Mi"
cpu: "250m"
volumeMounts:
- name: logs
mountPath: /var/log/mylogs
- name: log-shipper
image: busybox
args: [/bin/sh, -c, 'tail -n+1 -f /var/log/mylogs/*.log']
resources:
limits:
memory: "256Mi"
cpu: "500m"
requests:
memory: "64Mi"
cpu: "250m"
volumeMounts:
- name: logs
mountPath: /var/log/mylogs
volumes:
- name: logs
emptyDir: {}发布于 2020-09-11 09:50:06
Azure收集日志并发送到logs工作区。它不能把日志发送到麋鹿堆栈。因此,如果您已经习惯了这些工具,并且希望继续使用它们,那么基于fluentd的解决方案是可选的。但在这种情况下,麋鹿堆叠的管理是你的责任。
Azure Monitor的优点是它将AKS日志与其他Azure平台日志合并,提供了统一的监视体验。
天蓝色显示器的缺点是体积很大,成本可能会成为考虑因素。
因此,您可能希望对生成大量日志的应用程序使用开放源代码ELK堆栈,对于生成低日志量的应用程序使用Azure Monitor。
发布于 2020-09-14 08:10:25
为了给Arghya添加另一个选项,答案是: Elasticsearch在生产就绪的安装中有相当高的内存占用。就我个人而言,我认为只将它用于日志聚合是过分的。
一个轻量级的替代方法是,您可以使用直接集成在Grafana中的Loki来聚合您的日志。(参考:https://grafana.com/oss/loki/)
https://stackoverflow.com/questions/63844118
复制相似问题