azure-container-service - 限制每个部署或容器的 Log Analytics 日志记录
问题描述
我们已经看到我们的 Log Analytics 成本飙升,并发现 ContainerLog 表急剧增长。这似乎是容器中的所有标准输出/标准错误日志。
是否可以在不禁用集群上的 Log Analytics 的情况下将日志记录限制到此表(至少对于某些部署或容器)?我们仍然需要性能记录和洞察力。
解决方案
AFAIK ContainerLog 表下的 stdout 和 stderr 日志基本上是我们在手动运行命令“kubectl logs”时看到的日志,因此可以通过部署文件来限制对 ContainerLog 表的日志记录而不禁用集群上的 Log Analytics如下所示,它将日志写入容器内的日志文件。
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"]
但是,最佳实践是将日志消息发送到标准输出以供在容器中运行的应用程序使用,因此上述过程不是一种可取的方式。
因此,当数据收集高于预期时,您可以创建警报,如本文所述,和/或通过利用清除REST API偶尔删除不需要的数据,如本文所述(但请确保您只清除不需要的数据,因为日志中的删除分析是不可逆的!)。
希望这可以帮助!!
推荐阅读
- python - 如何在特定条件下检查熊猫数据框中一行中的每个值?
- vba - 如何在api查询中使用可变单元格值
- angular - 处理错误并在自定义错误页面中显示的最佳方法是什么(404 和 304)
- javascript - 表格中按钮的 table.insertRow 不起作用
- android - 使用 proguard 的房间数据库仪器测试失败
- ios - 无法在 iOS 应用程序中启动本机 Google 地图 - 而是打开 Safari
- rest - 具有不同结果的 Gerrit REST API 和 Web GUI
- python - python - tkinter - 删除画布
- javascript - 如何转换unicode并在浏览器中显示?反应
- android - 滚动将值添加到文本视图