【发布时间】:2019-04-05 11:17:36
【问题描述】:
我们看到我们的 Log Analytics 成本飙升,并发现 ContainerLog 表急剧增长。这似乎是容器中的所有标准输出/标准错误日志。
是否可以在不禁用集群上的 Log Analytics 的情况下将日志记录限制到此表(至少对于某些部署或容器)?我们仍然需要性能记录和洞察力。
【问题讨论】:
标签: azure-container-service azure-aks azure-log-analytics
我们看到我们的 Log Analytics 成本飙升,并发现 ContainerLog 表急剧增长。这似乎是容器中的所有标准输出/标准错误日志。
是否可以在不禁用集群上的 Log Analytics 的情况下将日志记录限制到此表(至少对于某些部署或容器)?我们仍然需要性能记录和洞察力。
【问题讨论】:
标签: azure-container-service azure-aks azure-log-analytics
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"]
但是,最佳做法是将日志消息发送到标准输出以供在容器中运行的应用程序使用,因此上述过程不是可取的方式。
因此,当数据收集高于预期时,您可以创建警报,如this 文章中所述,和/或偶尔删除不需要的数据,如this 文章中所述,通过利用purge REST API(但请确保您是仅清除不需要的数据,因为 Log Analytics 中的删除是不可逆的!)。
希望这会有所帮助!
【讨论】: