Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文提供有关在 Microsoft Sentinel 中使用 Azure Monitor 代理(AMA)收集通用事件格式(CEF)和 Syslog 数据收集的故障排除指南。 使用本指南诊断和解决日志转发器计算机的引入问题。 应在安装了 AMA 和 RSyslog/Syslog-ng 的日志转发器计算机上运行命令和配置。
在开始故障排除之前,请熟悉以下文章:
- 使用 Azure Monitor 代理将 syslog 和 CEF 消息引入到 Microsoft Sentinel
- 通过 AMA 数据连接器进行 CEF - 配置特定应用设备或设备
- Azure Monitor 代理概述
体系结构概述
下图演示了从日志源到通过 RSyslog 和 Azure Monitor 代理Microsoft Sentinel/log Analytics 工作区的数据流。
关键组件:
- RSyslog/Syslog-ng:接收端口 514 上的日志并将其转发到 AMA
- Azure Monitor 代理:根据数据收集规则处理日志(DCR)
- 数据收集规则:定义要收集和发送日志的位置
初始验证步骤
验证是否收到日志
配置后,日志最多可能需要 20 分钟才会显示在 Microsoft Sentinel 中。
运行 tcpdump 验证日志是否到达转发器:
sudo tcpdump -i any port 514 -A -vv验证日志源是否已配置为将消息发送到正确的转发器 IP 地址。
检查可能影响连接的基础结构组件:
- Firewalls
- 负载均衡器
- 网络安全组
检查 Azure Monitor 代理扩展状态
- 在 Azure 门户中,导航到日志转发器虚拟机。
- 选择扩展 + 应用程序。
- 选择 AzureMonitorLinuxAgent 扩展。
- 验证 状态 是否显示 预配成功。
验证代理版本
- 在 AzureMonitorLinuxAgent 扩展边栏选项卡中,选中 “版本” 字段。
- 确保版本是最近的2-3个版本中的一个。 有关最新版本,请参阅 AMA 版本详细信息 。
注释
在初始版本发布后,可能需要长达 5 周才能推出新版本。
代理级故障排除
确保代理和 RSyslog 服务正在运行。
sudo systemctl status azuremonitoragent
sudo systemctl status rsyslog
sudo systemctl status syslog-ng.service # If using Syslog-ng
验证 RSyslog 配置
RSyslog 配置由/etc/rsyslog.conf和/etc/rsyslog.d/中的文件组成。
验证端口配置:
grep -E 'imudp|imtcp' /etc/rsyslog.conf预期输出:
module(load="imudp") input(type="imudp" port="514") module(load="imtcp") input(type="imtcp" port="514")验证 AMA 转发配置是否存在:
cat /etc/rsyslog.d/10-azuremonitoragent-omfwd.conf该文件应以以下内容开始:
# Azure Monitor Agent configuration: forward logs to azuremonitoragent
验证端口状态
检查所需的端口是否正在侦听:
sudo ss -lnp | grep -E "28330|514"
预期输出:
udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=12289,fd=5))
tcp LISTEN 0 10 127.0.0.1:28330 0.0.0.0:* users:(("mdsd",pid=1424,fd=1363))
tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* users:(("rsyslogd",pid=12289,fd=7))
这确认:
- RSyslog 正在侦听端口 514 (TCP 和 UDP)
- MDSD (AMA 组件)正在侦听端口 28330 (TCP)
验证数据收集规则配置
检查是否已在代理上正确配置 DCR。
对于 CEF 日志:
sudo grep -i -r "SECURITY_CEF_BLOB" /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks
对于 Cisco ASA 日志:
sudo grep -i -r "SECURITY_CISCO_ASA_BLOB" /etc/opt/microsoft/azuremonitoragent/config-cache/configchunks
输出应显示包含 DCR 配置的 JSON 字符串。
查看防火墙规则
确保防火墙规则允许在两者之间进行通信:
- 日志源和 RSyslog (端口 514)
- RSyslog 和 AMA (端口 28330)
- AMA 和 Azure 终结点
数据收集规则配置
启用所有设施进行故障排除
对于初始故障排除:
- 在 Azure 门户中,导航到数据收集规则。
- 启用所有 syslog 设施。
- 选择所有日志级别。
- 如果可用,请启用无设施或严重性的消息集合。
有关详细信息,请参阅 “选择设施和严重性”。
常见事件格式 (CEF) 验证
CEF 格式要求
CEF 使用此结构将 Syslog 用作传输机制:
<Priority>Timestamp Hostname CEF:Version|Device Vendor|Device Product|Device Version|Device Event Class ID|Name|Severity|[Extension]
示例:
Jan 18 11:07:53 host CEF:0|Vendor|Product|1.0|100|EventName|5|src=10.0.0.1 dst=10.0.0.2
常见的 CEF 格式设置问题
标头格式不正确
- 确保 CEF 版本存在:
CEF:0| - 所有标头字段必须出现,并用竖线(|)字符分隔
字符转义不当
- 标头值中的管道字符 (|) 必须转义:
\| - 反斜杠(\)必须转义:
\\ - 扩展中的等号(=)必须转义:
\=
缺失或未映射的值
- 如果值无法映射到标准字段,则该值存储在
AdditionalExtensions列中 - 有关字段映射,请参阅 CEF 和 CommonSecurityLog 字段映射
有关完整的 CEF 规范,请搜索“实现 ArcSight 通用事件格式(CEF)”文档。
高级故障排除
启用诊断跟踪
警告
仅针对故障排除会话启用跟踪标志。 跟踪标志会生成大量日志记录,以便快速填充磁盘空间。
编辑 AMA 配置文件:
sudo vim /etc/default/azuremonitoragent将跟踪标志添加到MDSD_OPTIONS行:
export MDSD_OPTIONS="-A -c /etc/opt/microsoft/azuremonitoragent/mdsd.xml -d -r $MDSD_ROLE_PREFIX -S $MDSD_SPOOL_DIRECTORY/eh -L $MDSD_SPOOL_DIRECTORY/events -e $MDSD_LOG_DIR/mdsd.err -w $MDSD_LOG_DIR/mdsd.warn -o $MDSD_LOG_DIR/mdsd.info -T 0x2002"重启代理:
sudo systemctl restart azuremonitoragent重现问题并等待几分钟。
在
/var/opt/microsoft/azuremonitoragent/log/mdsd.info中查看调试信息。删除跟踪标志,并在故障排除后重启代理。
实时监视日志处理
查看处理中的传入日志:
tail -f /var/opt/microsoft/azuremonitoragent/log/mdsd.info
筛选特定日志类型:
sudo tail -f /var/opt/microsoft/azuremonitoragent/log/mdsd.* | grep -a "CEF"
查看特定设施日志:
grep local0.info /var/opt/microsoft/azuremonitoragent/log/mdsd.info
验证日志处理是否成功
启用跟踪标志后,可以通过检查调试输出来验证日志是否已正确处理。
ASA 日志引入示例
对于 Cisco ASA 日志,成功处理会显示在日志中,如下所示:
2022-01-18T22:00:14.8650520Z: virtual bool Pipe::SyslogCiscoASAPipeStage::PreProcess(std::shared_ptr<CanonicalEntity>) (.../mdsd/PipeStages.cc +604) [PipeStage] Processing CiscoASA event '%ASA-1-105003: (Primary) Monitoring on 123'
2022-01-18T22:00:14.8651330Z: virtual void ODSUploader::execute(const MdsTime&) (.../mdsd/ODSUploader.cc +325) Uploading 1 SECURITY_CISCO_ASA_BLOB rows to ODS.
2022-01-18T22:00:14.8653090Z: int ODSUploader::UploadFixedTypeLogs(const string&, const string&, const std::function<void(bool, long unsigned int, int, long unsigned int)>&, int, uint64_t) (.../mdsd/ODSUploader.cc +691) Uploading to ODS with request 3333-44dd-555555eeeeee Host https://00001111-aaaa-2222-bbbb-3333cccc4444.ods.opinsights.azure.cn for datatype SECURITY_CISCO_ASA_BLOB. Payload: {"DataType":"SECURITY_CISCO_ASA_BLOB","IPName":"SecurityInsights","ManagementGroupId":"00000000-0000-0000-0000-000000000002","sourceHealthServiceId":"2c2c2c2c-3333-dddd-4444-5e5e5e5e5e5e","type":"JsonData","DataItems":[{"Facility":"local0","SeverityNumber":"6","Timestamp":"2022-01-14T23:28:49.775619Z","HostIP":"127.0.0.1","Message":" (Primary) Monitoring on 123","ProcessId":"","Severity":"info","Host":"localhost","ident":"%ASA-1-105003"}]}. Uncompressed size: 443. Request size: 322
成功处理的关键指标:
- 该事件被识别为 CiscoASA 事件
- 日志上传到 ODS (Operations Data Service)
- 生成用于跟踪的请求 ID
- 载荷包含格式正确的 JSON 数据
CEF 日志引入示例
对于 CEF 日志,成功处理显示为:
2022-01-14T23:09:13.9087860Z: int ODSUploader::UploadFixedTypeLogs(const string&, const string&, const std::function<void(bool, long unsigned int, int, long unsigned int)>&, int, uint64_t) (.../mdsd/ODSUploader.cc +691) Uploading to ODS with request 3333-44dd-555555eeeeee Host https://00001111-aaaa-2222-bbbb-3333cccc4444.ods.opinsights.azure.cn for datatype SECURITY_CEF_BLOB. Payload: {"DataType":"SECURITY_CEF_BLOB","IPName":"SecurityInsights","ManagementGroupId":"00000000-0000-0000-0000-000000000002","sourceHealthServiceId":"2c2c2c2c-3333-dddd-4444-5e5e5e5e5e5e","type":"JsonData","DataItems":[{"Facility":"local0","SeverityNumber":"6","Timestamp":"2022-01-14T23:08:49.731862Z","HostIP":"127.0.0.1","Message":"0|device1|PAN-OS|8.0.0|general|SYSTEM|3|rt=Nov 04 2018 07:15:46 GMTcs3Label=Virtual","ProcessId":"","Severity":"info","Host":"localhost","ident":"CEF"}]}. Uncompressed size: 482. Request size: 350
成功处理 CEF 的关键指标:
- 数据类型为SECURITY_CEF_BLOB
- 上传请求包括有效的端点
- CEF 消息结构保留在有效负载中
- 压缩指标显示数据正在针对传输进行优化
重要
请记住,在完成调查后禁用跟踪标志,以防止磁盘过度使用。
收集诊断信息
在打开支持案例之前,请收集以下信息:
运行 AMA 疑难解答工具
可以使用不同日志类型的特定标志运行脚本。
-
--cef:常见事件格式日志 -
--asa:Cisco ASA 日志 -
--ftd:Cisco Firepower 威胁防御日志的相关内容
输出保存到 /tmp/troubleshooter_output_file.log。
sudo wget -O Sentinel_AMA_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/Syslog/Sentinel_AMA_troubleshoot.py && sudo python3 Sentinel_AMA_troubleshoot.py [--cef | --asa | --ftd]