【问题标题】:Is there a direct way to send container logs to azure log analytics workspace from iot edge device?是否有直接的方法将容器日志从 iot edge 设备发送到 Azure 日志分析工作区?
【发布时间】:2019-10-01 07:18:20
【问题描述】:

我正在寻找一种解决方案,将 iot 边缘设备上生成的应用程序日志发送到 azure 日志分析工作区。

我尝试使用 Microsoft Monitoring 代理,使用它可以发送运行 docker 容器生成的日志。但是,在边缘设备上,我们使用 moby 引擎而不是 docker 守护程序,因为监控代理没有收集日志记录(按照此设置运行 docker -https://docs.microsoft.com/en-us/azure/azure-monitor/insights/containers#install-and-configure-windows-container-hosts)。此外,由于我在 windows 上运行我的边缘环境,我没有找到任何针对 windows 的监控代理的容器映像。(存在于 Linux https://hub.docker.com/r/microsoft/oms/

我正在寻找一种完全自动化的方式将在边缘设备上生成的应用程序日志流式传输到 Azure 日志分析工作区。

【问题讨论】:

    标签: c# azure docker azure-iot-hub


    【解决方案1】:

    目前还没有内置方法(可能值得在 Github 上与团队核实,因为他们可能在路线图上有这个)。

    但是,您可以使用新的log-pull feature 构建自己的解决方案:

    • 编写一个小的时间触发 Azure 函数,每隔几分钟就为您感兴趣的容器(或所有容器)提取日志。日志将写入存储帐户
    • 第二个 Blob 触发函数获取上传的日志并将其发送到 Log Analytics。

    //编辑:非常新的功能(仍在 Edge 1.0.9 的候选版本中):https://github.com/veyalla/ehm 这可能正是您正在寻找的东西

    【讨论】:

    • 感谢您的回复。日志拉取功能是从 docker stderr/stdout 流中提取日志还是预计会使用额外的日志驱动程序?
    • 它获取与iotedge logs MyModule 产生的日志相同的日志
    • @harikat 看到我的编辑。有一个新功能可能对您来说很有趣
    • 感谢您的编辑。这绝对看起来很有希望
    • 我已经尝试了日志拉取功能,通过尝试从 azure 门户作为直接方法调用,我收到错误 {"status":400,"payload":{"message":"Command 'UploadLogs' 未找到。支持的命令是 - ping"}}。当我通过 cloud shell 尝试时也是如此。是否有任何额外的限制?(我已经检查了环境变量并且它们设置正确)
    猜你喜欢
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    相关资源
    最近更新 更多