你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure Monitor 代理将 syslog 和 CEF 消息引入到 Microsoft Sentinel
本文介绍如何使用 Syslog via AMA 和 Common Event Format (CEF) via AMA 连接器从 Linux 计算机以及网络和安全设备和装置筛选并引入 syslog 消息,包括采用通用事件格式 (CEF) 的消息。 若要详细了解这些数据连接器,请参阅 Microsoft Sentinel 通过 AMA 的 Syslog 和通用事件格式 (CEF) 连接器。
注意
容器见解现在支持从 AKS 群集中的 Linux 节点自动收集 Syslog 事件。 若要了解详细信息,请参阅《使用容器见解收集 Syslog》。
先决条件
在开始之前,必须配置资源并分配相应的权限,如本部分所述。
Microsoft Sentinel 先决条件
安装相应的 Microsoft Sentinel 解决方案,并确保你有权完成本文中的步骤。
从 Microsoft Sentinel 中的内容中心安装相应的解决方案。 有关更多信息,请参阅发现和管理 Microsoft Sentinel 的现成内容。
确定 Microsoft Sentinel 解决方案所需的数据连接器 — Syslog via AMA 或 Common Event Format (CEF) via AMA,以及是否需要安装 Syslog 或通用事件格式解决方案。 若要满足此先决条件:
在内容中心,选择已安装的解决方案上的“管理”,并查看列出的数据连接器。
如果未随解决方案一起安装通过 AMA 的 Syslog 或通过 AMA 的通用事件格式 (CEF),请通过以下文章查找你的设备来确定是否需要安装 Syslog 或通用事件格式解决方案:
- 使用 AMA 数据连接器的 CEF - 为 Microsoft Sentinel 数据引入配置特定装备或设备
- 通过 AMA 的 Syslog 数据连接器 - 配置特定设备以进行 Microsoft Sentinel 数据引入
然后从内容中心安装 Syslog 或通用事件格式解决方案,以获取相关的 AMA 数据连接器。
创建 Azure 帐户,并使其具有以下 Azure 基于角色的访问控制 (Azure RBAC) 角色:
内置角色 范围 原因 - 虚拟机参与者
- Azure Connected Machine
资源管理员- 虚拟机 (VM)
- 虚拟机规模集
- 已启用 Azure Arc 的服务器
部署代理 包含以下操作的任何角色:
Microsoft.Resources/deployments/*- 订阅
- 资源组
- 现有数据收集规则
部署 Azure 资源管理器模板 监视参与者 - 订阅
- 资源组
- 现有数据收集规则
创建或编辑数据收集规则
日志转发器先决条件
如果要从日志转发器收集消息,则以下先决条件适用:
必须具有指定的 Linux VM 作为日志转发器才能收集日志。
如果日志转发器不是 Azure 虚拟机,则必须在其上安装 Azure Arc Connected Machine 代理。
必须在 Linux 日志转发器 VM 上安装 Python 2.7 或 3。 使用
python --version
或python3 --version
命令进行检查。 如果使用 Python 3,请确保将其设置为计算机上的默认命令,或者使用“python3”命令而不是“python”命令运行脚本。日志转发器必须启用
syslog-ng
或rsyslog
守护程序。有关日志转发器的空间要求,请参阅 Azure Monitor 代理性能基准。 你还可以查看此博客文章,其中包括可缩放引入的设计。
日志源、安全设备和装置必须配置为将其日志消息发送到日志转发程序的 syslog 守护程序,而不是发送到其本地 syslog 守护程序。
计算机安全性先决条件
根据组织的安全策略配置计算机的安全性。 例如,根据企业网络安全策略配置网络,并根据自己的要求更改守护程序中的端口和协议。 为了改进计算机安全配置,请在 Azure 中保护 VM,或查看这些网络安全最佳做法。
如果设备通过 TLS 发送 syslog 和 CEF 日志(例如由于日志转发器位于云中),则需要配置 syslog 守护程序(rsyslog
或 syslog-ng
)以在 TLS 中进行通信。 有关详细信息,请参阅:
配置数据连接器
通过 AMA 的 Syslog 或通过 AMA 的通用事件格式 (CEF) 数据连接器的设置过程包括以下步骤:
- 使用以下任一方法安装 Azure Monitor 代理并创建数据收集规则 (DCR):
- 如果要使用日志转发器从其他计算机收集日志,请在日志转发器上运行“安装”脚本,将 syslog 守护程序配置为侦听来自其他计算机的消息,并打开必要的本地端口。
选择相应的选项卡以获取说明。
创建数据收集规则 (DCR)
若要开始创建,请在 Microsoft Sentinel 中打开 Syslog via AMA 或 Common Event Format (CEF) via AMA,并创建数据连接规则 (DCR)。
对于 Azure 门户中的 Microsoft Sentinel,在“配置”下选择“数据连接器”。
对于 Defender 门户中的 Microsoft Sentinel,请选择“Microsoft Sentinel”>“配置”>“数据连接器”。对于 syslog,请在“搜索”框中键入“Syslog”。 在结果中,选择“通过 AMA 的 Syslog”连接器。
对于 CEF,请在“搜索”框中键入“CEF”。 在结果中,选择“通过 AMA 的通用事件格式 (CEF)”连接器。在详细信息窗格中选择“打开连接器页面”。
在“配置”区域中,选择“+ 创建数据收集规则”。
在“基本信息”选项卡上:
- 键入 DCR 名称。
- 选择订阅。
- 选择要定位 DCR 的资源组。
选择“下一步: 资源”。
定义 VM 资源
在“资源”选项卡中,选择要安装 AMA 的计算机,在本例中为日志转发器计算机。 如果列表中未显示日志转发器,则可能未安装 Azure Connected Machine 代理。
使用可用的筛选器或搜索框查找日志转发器 VM。 展开列表中的订阅以查看其资源组,展开资源组以查看其 VM。
选择要在其中安装 AMA 的日志转发器 VM。 将鼠标悬停在 VM 名称上方时,旁边会显示复选框。
查看更改并选择“下一步: 收集>”
选择设施和严重性
请注意,对 syslog 和 CEF 消息使用相同的设施可能会导致数据引入重复。 有关详细信息,请参阅避免数据引入重复。
在“收集”选项卡中,为每个设施选择最低日志级别。 选择日志级别后,Microsoft Sentinel 会收集所选级别和其他更高严重性级别的日志。 例如,如果选择 LOG_ERR,Microsoft Sentinel 会收集 LOG_ERR、LOG_CRIT、LOG_ALERT 和 LOG_EMERG 级别的日志。
查看所做的选择,然后选择“下一步: 查看 + 创建”。
查看并创建规则
完成所有选项卡后,查看输入的内容并创建数据收集规则。
在“查看 + 创建”选项卡中选择“创建”。
连接器会在创建 DCR 时选择的计算机上安装 Azure Monitor 代理。
检查 Azure 门户或 Microsoft Defender 门户中的通知,查看 DCR 创建和代理安装的时间。
选择连接器页上的“刷新”以查看列表中显示的 DCR。
运行“installation”脚本
如果使用日志转发器,请将 syslog 守护程序配置为侦听来自其他计算机的消息,并开启必要的本地端口。
在连接器页中,复制“运行以下命令安装并应用 CEF 收集器:”下显示的命令行。
或者从此处复制它:
sudo wget -O Forwarder_AMA_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Forwarder_AMA_installer.py&&sudo python Forwarder_AMA_installer.py
登录到刚刚安装 AMA 的日志转发器计算机。
粘贴在上一步中复制的命令以启动 installation 脚本。
该脚本将rsyslog
或syslog-ng
守护程序配置为使用所需的协议,并重启守护程序。 该脚本打开端口 514 以侦听 UDP 和 TCP 协议中的传入消息。 若要更改此设置,请根据计算机上运行的守护程序类型参考 syslog 守护程序配置文件:- Rsyslog:
/etc/rsyslog.conf
- Syslog-ng:
/etc/syslog-ng/syslog-ng.conf
如果使用 Python 3,且未将其设置为计算机上的默认命令,请用
python3
替换粘贴的命令中的python
。 请参阅日志转发器先决条件。- Rsyslog:
配置安全设备
转到以下文章之一,获取配置安全设备的具体说明:
- 通过 AMA 的 CEF 数据连接器 - 配置特定设备以进行 Microsoft Sentinel 数据引入
- 通过 AMA 的 Syslog 数据连接器 - 配置特定设备以进行 Microsoft Sentinel 数据引入
请联系解决方案提供商以获取详细信息,或信息不适用于你的设备的情况。
测试连接器
验证来自 Linux 计算机或安全设备和装置的日志消息是否已引入到 Microsoft Sentinel 中。
若要验证 Syslog 守护程序是否正在 UDP 端口上运行并且 AMA 是否正在侦听,请运行以下命令:
netstat -lnptv
应会看到
rsyslog
或syslog-ng
守护程序正在侦听端口 514。若要捕获从记录器或连接的设备发送的消息,请在后台运行以下命令:
tcpdump -i any port 514 -A -vv &
完成验证后,建议停止
tcpdump
:键入fg
,然后按 Ctrl+C。若要发送演示消息,请完成以下步骤:
使用 netcat 实用工具。 在此示例中,该实用工具读取通过
echo
命令发布的数据,数据换行开关已关闭。 然后,该实用工具将数据写入本地主机上的 UDP 端口514
,且不会超时。 若要执行 netcat 实用工具,则可能需要安装另一个包。echo -n "<164>CEF:0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time" | nc -u -w0 localhost 514
使用记录器。 此示例以 CEF RFC 格式通过端口
514
将严重性级别为Warning
的消息写入本地主机上的local 4
工具。 使用-t
和--rfc3164
标志是为了遵守所需的 RFC 格式。logger -p local4.warn -P 514 -n 127.0.0.1 --rfc3164 -t CEF "0|Mock-test|MOCK|common=event-format-test|end|TRAFFIC|1|rt=$common=event-formatted-receive_time"
若要验证是否已正确安装连接器,请使用以下命令之一运行故障排除脚本:
对于 CEF 日志,请运行:
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --cef
对于 Cisco 自适应安全设备 (ASA) 日志,请运行:
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --asa
对于 Cisco Firepower 威胁防御 (FTD) 日志,请运行:
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py&&sudo python Sentinel_AMA_troubleshoot.py --ftd