1

我的公司开始在他们的应用程序中使用 AKS,显然其中一个目标是从应用程序中获取日志,将其发送到 OMS 并使其可搜索。我已经安装了 AKS 运行状况监控“复选框”附带的 OMS 代理,它实质上在每个节点上安装了一个代理并将日志发送到 OMS。

标准 Kubernetes 日志记录建议将日志发送到STDOUTSTDERR,这对于基本类型的日志记录来说很好,但是我们的应用程序跨越几行记录一个日志,并且在同一个容器中会有多个应用程序输出;3 个应用程序全部在一个容器中直接发送到STDOUT/ERR……并不是筛选的理想情况。

目前,我已将 Azure 存储帐户附加到容器并将日志定向到该容器,将 Azure 文件存储挂载为/var/log/目录,这很棒,因为我们可以将日志拆分为不同的日志文件。以此为指导;https://medium.com/@diegomrtnzg/monitoring-your-log-files-with-kubernetes-in-azure-b2a92e674947

我还指示 OMS 使用这些说明从自定义日志目录中读取;https://docs.microsoft.com/en-us/azure/log-analytics/log-analytics-data-sources-custom-logs

但是,我后来发现这行不通。我假设这是因为代理不知道每个容器文件系统,STDOUT/ERR而是只查看。

我也知道我们可以在搜索查询中使用 Log Analytics 中的解析来查找我们想要的日志,但我更希望通过自定义日志输入来完成这项工作,如果日志跨越几个线,分解(如上所述);https://blogs.msdn.microsoft.com/ukhybridcloud/2017/09/19/azure-log-analytics-using-the-parse-operator/

我知道我们无法告诉 OMS 从存储帐户中提取日志;https://feedback.azure.com/forums/267889-log-analytics/suggestions/7928931-collect-data-from-custom-containers-in-storage-acc

问题 所以,最后......我的问题来了。我希望我们不是唯一遇到这种情况的人,并且可以帮助建议我采取什么最佳行动。

我们如何从位于 1 个 AKS 容器中的 3 个(或更多)应用程序中获取完整、结构化、多行的日志文件到 OMS 中,这些文件已被解析,而不是在损坏的段中?

对此的任何帮助将不胜感激。

4

0 回答 0