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

问题描述 投票:0回答:1

我们已经看到我们的Log Analytics成本飙升,并发现ContainerLog表已经大幅增长。这似乎是来自容器的所有stdout / stderr日志。

是否可以限制记录到此表,至少对于某些部署或容器,而不禁用群集上的Log Analytics?我们仍然需要性能记录和洞察力。

azure-container-service azure-kubernetes azure-aks azure-log-analytics
1个回答
1
投票

在ContainerLog表下的AFAIK stdout和stderr日志基本上是我们在手动运行命令“kubectl logs”时看到的日志,因此可以通过部署文件来禁止记录到ContainerLog表而不禁用集群上的Log Analytics如下所示,它会将日志写入容器中的logfile。

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(但请确保您仅清除不需要的数据,因为日志中的删除分析是不可逆转的!)。

希望这可以帮助!!

© www.soinside.com 2019 - 2024. All rights reserved.