我们已经看到Log Analytics成本激增,并且发现ContainerLog表已经急剧增长。这似乎是容器中的所有stdout / stderr日志。
是否可以至少在某些部署或容器中将日志记录限制在此表上,而无需在群集上禁用Log Analytics?我们仍然需要性能日志记录和见解。
答案 0 :(得分:1)
AFAIK ContainerLog表下的stdout和stderr日志基本上是我们在手动运行命令“ kubectl logs”时看到的日志,因此可以通过在群集上禁用Log Analytics来限制对ContainerLog表的日志记录部署文件,如下所示,它将在容器内将日志写入日志文件。
apiVersion: apps/v1
kind: Deployment
metadata:
name: xxxxxxx
spec:
selector:
matchLabels:
app: xxxxxxx
template:
metadata:
labels:
app: xxxxxxx
spec:
containers:
- name: xxxxxxx
image: xxxxxxx/xxxxxxx:latest
command: ["sh", "-c", "./xxxxxxx.sh &> /logfile"]
但是,最佳实践是将日志消息发送到stdout以便在容器中运行的应用程序,因此上述过程不是可取的方式。
因此,您可以按照this文章中的说明在数据收集量高于预期时创建警报,并且/或者根据this文章中的说明偶尔通过利用purge REST API删除不需要的数据(但请确保您只清除不需要的数据,因为Log Analytics中的删除是不可逆的!)。
希望这会有所帮助!