在 Azure Monitor 中使用适用于 Linux 的 Log Analytics 代理收集自定义 JSON 数据源

注意

从 Microsoft Operations Management Suite 过渡到 Azure Monitor 期间,Windows 或 Linux 的 Operations Management Suite 代理称为 Windows 或 Linux 的 Log Analytics 代理。

可以使用适用于 Linux 的 Log Analytics 代理将自定义 JSON 数据源收集到 Azure Monitor 中。 这些自定义数据源可以是返回 JSON 的简单脚本,例如 curlFluentD 的 300 多个插件之一。 本文介绍此数据收集所需的配置。

注意

Linux v1.1.0-217+ 的 Log Analytics 代理是自定义 JSON 数据所必需的。 此收集流仅适用于 MMA。 考虑转移到 AMA 代理并使用那里提供的其他收集功能

配置

配置输入插件

要在 Azure Monitor 中收集 JSON 数据,请将 oms.api. 添加到输入插件中 FluentD 标记的起始位置。

例如,下面是 /etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.d/ 中一个单独的配置文件 exec-json.conf。 此配置文件使用 FluentD 插件 exec 每隔 30 秒运行一个 curl 命令。 此命令的输出由 JSON 输出插件收集。

<source>
  type exec
  command 'curl localhost/json.output'
  format json
  tag oms.api.httpresponse
  run_interval 30s
</source>

<match oms.api.httpresponse>
  type out_oms_api
  log_level info

  buffer_chunk_limit 5m
  buffer_type file
  buffer_path /var/opt/microsoft/omsagent/<workspace id>/state/out_oms_api_httpresponse*.buffer
  buffer_queue_limit 10
  flush_interval 20s
  retry_limit 10
  retry_wait 30s
</match>

/etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.d/ 下添加的配置文件需要使用以下命令更改其所有权。

sudo chown omsagent:omiusers /etc/opt/microsoft/omsagent/conf/omsagent.d/exec-json.conf

配置输出插件

将下面的输出插件配置添加到 /etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.conf 中的主配置,或者作为单独的配置文件放置在 /etc/opt/microsoft/omsagent/<workspace id>/conf/omsagent.d/

<match oms.api.**>
  type out_oms_api
  log_level info

  buffer_chunk_limit 5m
  buffer_type file
  buffer_path /var/opt/microsoft/omsagent/<workspace id>/state/out_oms_api*.buffer
  buffer_queue_limit 10
  flush_interval 20s
  retry_limit 10
  retry_wait 30s
</match>

重新启动 Log Analytics Linux 代理

使用以下命令重启 Log Analytics Linux 代理服务。

sudo /opt/microsoft/omsagent/bin/service_control restart 

输出

数据将以记录类型 <FLUENTD_TAG>_CL 收集到 Azure Monitor 中。

例如,Azure Monitor 中具有 tomcat_CL 记录类型的自定义标记 tag oms.api.tomcat。 可以使用以下日志查询检索此类型的所有记录。

Type=tomcat_CL

支持嵌套 JSON 数据源,但基于父字段编制索引。 例如,下面的 JSON 数据是以 tag_s : "[{ "a":"1", "b":"2" }] 的形式从日志查询返回的。

{
    "tag": [{
      "a":"1",
      "b":"2"
    }]
}

后续步骤

  • 了解日志查询以便分析从数据源和解决方案中收集的数据。