使用 Azure Monitor 代理收集 Syslog 您所在的位置:网站首页 玩游戏社交app 使用 Azure Monitor 代理收集 Syslog

使用 Azure Monitor 代理收集 Syslog

2023-05-29 18:39| 来源: 网络整理| 查看: 265

你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

使用 Azure Monitor 代理收集 Syslog 的概述 项目 05/27/2023

Syslog 是普遍适用于 Linux 的事件日志记录协议。 可以使用内置于 Linux 设备的 Syslog 守护程序和设备来收集指定类型的本地事件,并让它将这些事件发送到 Log Analytics 工作区。 应用程序将发送可能存储在本地计算机或传递到 Syslog 收集器的消息。 安装适用于 Linux 的 Azure Monitor 代理后,它会将本地 Syslog 守护程序配置为在数据收集规则 DCR) 中启用 Syslog 收集时将消息转发到代理。 然后,Azure Monitor 代理将消息发送到 Azure Monitor/Log Analytics 工作区,其中会在 Syslog 表中创建相应的 Syslog 记录。

Syslog 收集器支持以下功能:

auth authpriv cron daemon mark kern lpr mail news syslog user uucp local0-local7

对于一些不允许在本地安装 Azure Monitor 代理的设备类型,可以改为在基于 Linux 的专用日志转发器上安装代理。 必须将发起设备配置为将 Syslog 事件发送到此转发器上的 Syslog 守护程序,而不是本地守护程序。 有关详细信息,请参阅 Sentinel 文档。

配置 Syslog

针对 Linux 的 Azure Monitor 代理将仅收集在其配置中指定设施和严重级别的事件。 通过 Azure 门户或通过管理 Linux 代理的配置文件来配置 Syslog。

在 Azure 门户中配置 Syslog

从 Azure Monitor 的“数据收集规则”菜单中配置 Syslog。 此配置将传递到每个 Linux 代理上的配置文件。

选择“添加数据源”。 对于“数据源类型”,选择“Linux syslog”。

可以为每个设施收集具有不同日志级别的 Syslog 事件。 默认情况下,将收集所有 Syslog 设施类型。 如果不想收集 auth 类型的示例事件,请在 auth 设施的 Minimum log level 列表框中选择 none 并保存更改。 如果需要更改 Syslog 事件的默认日志级别,并仅收集日志级别从“NOTICE”或更高优先级开始的事件,请在“最低日志级别”列表框中选择“LOG_NOTICE”。

默认情况下,所有配置更改均会自动推送到所有在 DCR 中配置的代理。

创建数据收集规则

在 Log Analytics 工作区所在的同一区域中创建数据收集规则。 数据收集规则是一种 Azure 资源,可用于定义将数据引入该工作区时应采用的数据处理方式。

登录 Azure 门户。

搜索并打开“监视器”。

在“设置”下,选择“数据收集规则”。

选择“创建”。

添加资源 选择“添加资源”。 使用筛选器查找要用于收集日志的虚拟机。 选择虚拟机。 选择“应用”。 选择“下一步: 收集和传递”。 添加数据源 选择“添加数据源”。 对于“数据源类型”,选择“Linux syslog”。 对于“最小日志级别”,请保留默认值“LOG_DEBUG”。 选择“下一步: 目标”。 添加目标

选择“添加目标”。

输入以下值:

字段 值 目标类型 Azure Monitor 日志 订阅 选择适当的订阅 帐户或命名空间 选择适当的 Log Analytics 工作区

选择“添加数据源”。

在完成时选择“下一步: 查看 + 创建”。

在 Linux 代理上配置 Syslog

在 Linux 计算机上安装 Azure Monitoring 代理时,它会安装默认的 Syslog 配置文件,该文件定义设施以及在 DCR 中启用 Syslog 时收集的消息的严重级别。 此配置文件视客户端已安装的 Syslog 守护程序而异。

Rsyslog

在许多 Linux 发行版中,rsyslogd 守护程序负责使用、存储和路由使用 Linux syslog API 发送的日志消息。 Azure Monitor 代理使用 rsyslog 中的 unix 域套接字输出模块 (omuxsock) 将日志消息转发到 Azure Monitor 代理。 AMA 安装包括放置在以下目录下的默认配置文件:/etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/05-azuremonitoragent-loadomuxsock.conf/etc/opt/microsoft/azuremonitoragent/syslog/rsyslogconf/05-azuremonitoragent-loadomuxsock.conf

将 Syslog 添加到数据收集规则后,这些配置文件将安装在 etc/rsyslog.d 系统目录下,rsyslog 将自动重启,使更改生效。 rsyslog 使用这些文件来加载输出模块,并使用定义的规则将事件转发到 Azure Monitoring 代理守护程序。 内置 omuxsock 模块不能多次加载。 因此,使用相应的转发格式模板将模块加载和事件转发的配置拆分为两个不同的文件。 其默认内容如下例所示。 本示例会收集针对全部设施和所有日志严重级别的从本地代理发送的 Syslog 消息。

$ cat /etc/rsyslog.d/10-azuremonitoragent.conf # Azure Monitor Agent configuration: forward logs to azuremonitoragent $OMUxSockSocket /run/azuremonitoragent/default_syslog.socket template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%") $OMUxSockDefaultTemplate AMA_RSYSLOG_TraditionalForwardFormat # Forwarding all events through Unix Domain Socket *.* :omuxsock: $ cat /etc/rsyslog.d/05-azuremonitoragent-loadomuxsock.conf # Azure Monitor Agent configuration: load rsyslog forwarding module. $ModLoad omuxsock

请注意,在某些旧系统(例如 CentOS 7.3)上使用传统转发格式将 Syslog 事件发送到 Azure Monitor 代理时,我们发现了 rsyslog 日志格式问题,对于这些系统,Azure Monitor 代理会自动放置旧版转发器模板:template(name="AMA_RSYSLOG_TraditionalForwardFormat" type="string" string="%TIMESTAMP% %HOSTNAME% %syslogtag%%msg:::sp-if-no-1st-sp%%msg%\n")

Syslog-ng

syslog-ng 的配置文件位于 /etc/opt/microsoft/azuremonitoragent/syslog/syslog-ngconf/azuremonitoragent.conf。 将 Syslog 集合添加到数据收集规则后,这些配置文件将安装在 /etc/syslog-ng/conf.d/azuremonitoragent.conf 系统目录下,syslog-ng 将自动重启,使更改生效。 其默认内容显示在此示例中。 这会收集针对全部设施和所有严重级别的从本地代理发送的 Syslog 消息。

$ cat /etc/syslog-ng/conf.d/azuremonitoragent.conf # Azure MDSD configuration: syslog forwarding config for mdsd agent options {}; # during install time, we detect if s_src exist, if it does then we # replace it by appropriate source name like in redhat 's_sys' # Forwrding using unix domain socket destination d_azure_mdsd { unix-dgram("/run/azuremonitoragent/default_syslog.socket" flags(no_multi_line) ); }; log { source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf destination(d_azure_mdsd); };

注意* 当 rsyslog 为默认守护程序时,Azure Monitor 支持 rsyslog 或 syslog-ng 发送的消息集合。 Syslog 事件收集不支持 Red Hat Enterprise Linux、CentOS 和 Oracle Linux 版本 (sysklog) 版本 5 上的默认 Syslog 守护程序。 要从这些发行版的此版本中收集 Syslog 数据,应安装并配置 rsyslog 守护程序以替换 sysklog。

注意* 如果编辑 Syslog 配置,则必须重新启动 Syslog 守护程序才能使更改生效。

必备条件

将需要以下项:

Log Analytics 工作区,你在其中至少拥有参与者权限。 数据收集终结点。 在工作区中创建数据收集规则对象的权限。 Syslog 记录属性

Syslog 记录的类型为“Syslog”,并且具有下表中的属性。

属性 说明 Computer 从中收集事件的计算机。 设施 定义生成消息的系统部分。 HostIP 发送消息的系统的 IP 地址。 HostName 发送消息的系统的名称。 SeverityLevel 事件的严重级别。 SyslogMessage 消息的文本。 ProcessID 生成消息的进程 ID。 EventTime 生成事件的日期和时间。 具有 Syslog 记录的日志查询

下表提供了检索 Syslog 记录的不同日志查询示例。

查询 说明 Syslog 所有 Syslog Syslog | where SeverityLevel == "error 严重级别为“错误”的所有 Syslog 记录 Syslog | Facility ==“auth”时 具有身份验证设施类型的所有 Syslog 记录 Syslog | summarize AggregatedValue = count() by Facility 按设施计算的 Syslog 记录数目 后续步骤

了解有关以下方面的详细信息:

Azure Monitor 代理。 数据收集规则。 Azure Monitor 中的成本管理最佳做法。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有