我们已经看到我们的Log Analytics成本飙升,并发现ContainerLog表已经大幅增长。这似乎是来自容器的所有stdout / stderr日志。
是否可以限制记录到此表,至少对于某些部署或容器,而不禁用群集上的Log Analytics?我们仍然需要性能记录和洞察力。
在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(但请确保您仅清除不需要的数据,因为日志中的删除分析是不可逆转的!)。
希望这可以帮助!!