限制每个部署或容器的Log Analytics日志记录

时间:2019-04-05 11:17:36

标签: azure-container-service azure-kubernetes azure-aks azure-log-analytics

我们已经看到Log Analytics成本激增,并且发现ContainerLog表已经急剧增长。这似乎是容器中的所有stdout / stderr日志。

是否可以至少在某些部署或容器中将日志记录限制在此表上,而无需在群集上禁用Log Analytics?我们仍然需要性能日志记录和见解。

1 个答案:

答案 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中的删除是不可逆的!)。

希望这会有所帮助!