收集 Adtran(原 ADVA Fiber Service Platform)日志
解析器版本:1.0
本文档介绍了如何使用 Bindplane 将 Adtran(以前称为 ADVA Fiber Service Platform)日志注入到 Google Security Operations。
Adtran 是一系列光网络和以太网接入设备,用于运营商和企业网络中的传输、聚合和分界。FSP 产品线包括 FSP 3000 开放式光传输平台、FSP 150 以太网接入系列以及相关管理系统,例如 FSP Network Manager 和 Network Element Director (NED)。这些设备会针对警报、配置更改、性能事件和安全审核轨迹生成 syslog 消息。
准备工作
请确保满足以下前提条件:
- Google SecOps 实例。
- Windows Server 2016 或更高版本,或者具有
systemd的 Linux 主机。 - 如果在代理后面运行,请确保防火墙端口已根据 Bindplane 代理要求打开。
- 对 ADVA FSP Network Element Director (NED) 或 Element Manager 的特权访问权限。
获取 Google SecOps 注入身份验证文件
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 收集代理。
- 下载数据注入身份验证文件。将文件安全地保存在将要安装 Bindplane 的系统上。
获取 Google SecOps 客户 ID
- 登录 Google SecOps 控制台。
- 依次前往 SIEM 设置 > 配置文件。
- 复制并保存组织详细信息部分中的客户 ID。
安装 Bindplane 代理
按照以下说明在 Windows 或 Linux 操作系统上安装 Bindplane 代理。
Windows 安装
- 以管理员身份打开命令提示符或 PowerShell。
运行以下命令:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet运行以下命令,验证安装是否成功:
sc query observiq-otel-collector
该服务应显示为 正在运行。
Linux 安装
- 打开具有 root 或 sudo 权限的终端。
运行以下命令:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh运行以下命令,验证安装是否成功:
sudo systemctl status observiq-otel-collector
该服务应显示为有效(正在运行)。
其他安装资源
如需了解其他安装选项,请参阅 Bindplane 代理安装指南。
配置 Bindplane 代理以注入 syslog 并将其发送到 Google SecOps
访问配置文件:
- Linux:
/observiq-otel-collector/config.yaml - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
- Linux:
修改
config.yaml文件。以下是两种接收器选项;请选择与您的 ADVA FSP 设备发送日志的方式相符的选项。
选项 A - UDP Syslog 接收器
receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/adva_fsp: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<CUSTOMER_ID>' endpoint: malachiteingestion-pa.googleapis.com log_type: ADVA_FSP raw_log_field: body ingestion_labels: env: production service: pipelines: logs/adva_fsp: receivers: - udplog exporters: - chronicle/adva_fsp选项 B - TCP syslog 接收器
receivers: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/adva_fsp: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<CUSTOMER_ID>' endpoint: malachiteingestion-pa.googleapis.com log_type: ADVA_FSP raw_log_field: body ingestion_labels: env: production service: pipelines: logs/adva_fsp: receivers: - tcplog exporters: - chronicle/adva_fsp将
<CUSTOMER_ID>替换为实际的客户 ID。将
/etc/bindplane-agent/ingestion-auth.json更新为注入身份验证文件的保存路径。注意:对于 Windows,请使用C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json等路径。如果您的 Google SecOps 实例位于其他区域,请调整
endpoint:- 美国:
malachiteingestion-pa.googleapis.com - 欧洲:
europe-malachiteingestion-pa.googleapis.com - 亚洲:
asia-southeast1-malachiteingestion-pa.googleapis.com
- 美国:
重启 Bindplane 代理以应用更改
如需在 Linux 中重启 Bindplane 代理,请执行以下操作:
运行以下命令:
sudo systemctl restart observiq-otel-collector验证服务是否正在运行:
sudo systemctl status observiq-otel-collector检查日志是否存在错误:
sudo journalctl -u observiq-otel-collector -f
如需在 Windows 中重启 Bindplane 代理,请执行以下操作:
请从下列选项中选择一项:
- 以管理员身份运行命令提示符或 PowerShell:
net stop observiq-otel-collector && net start observiq-otel-collector- 服务控制台:
- 按
Win+R,输入services.msc,然后按 Enter 键。 - 找到 observIQ OpenTelemetry 收集器。
- 右键点击并选择重新启动。
- 按
验证服务是否正在运行:
sc query observiq-otel-collector检查日志是否存在错误:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
在 ADVA FSP 上配置 syslog 转发
配置 ADVA FSP 设备以将 syslog 消息转发到 Bindplane 代理。配置通过网络元素管理器 (NED) 或元素管理器网页界面执行。
- 登录 ADVA FSP 网络元素管理器 (NED) 或元素管理器。
- 依次前往节点 > 常规 > 控制。
- 在远程 Syslog 服务器部分,点击添加以创建新的 Syslog 服务器条目。
- 提供以下配置详细信息:
- IP 地址:输入 Bindplane 代理主机(例如
192.168.1.100)的 IP 地址。 - 端口:输入与 Bindplane 代理接收器配置相符的端口号(例如
514)。 - 传输:选择 UDP 或 TCP,以匹配 Bindplane 代理接收器类型(
udplog表示 UDP,tcplog表示 TCP)。 - Syslog 事件:选择启用可为此服务器启用 syslog 转发。
- IP 地址:输入 Bindplane 代理主机(例如
- 点击应用以保存配置。
通过检查 Bindplane 代理日志,验证是否收到了 syslog 消息:
- Linux:
sudo journalctl -u observiq-otel-collector -f- Windows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
UDM 映射表
| 日志字段 | UDM 映射 | 逻辑 |
|---|---|---|
ACCESSORDER |
additional.fields.value.string_value |
该值取自原始日志中的 ACCESSORDER 字段。 |
ADDRESS |
principal.ip |
该值取自原始日志中的 ADDRESS 字段,并解析为 IP 地址。 |
ADMINSTATE |
additional.fields.value.string_value |
该值取自原始日志中的 ADMINSTATE 字段。 |
AISCLIENTMDLEVEL |
additional.fields.value.string_value |
该值取自原始日志中的 AISCLIENTMDLEVEL 字段。 |
AISGENENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 AISGENENABLED 字段。 |
AISPRIORITY |
additional.fields.value.string_value |
该值取自原始日志中的 AISPRIORITY 字段。 |
AISTXPERIOD |
additional.fields.value.string_value |
该值取自原始日志中的 AISTXPERIOD 字段。 |
AISTRIGGERTYPES |
additional.fields.value.string_value |
该值取自原始日志中的 AISTRIGGERTYPES 字段。 |
BUFFERSIZE |
additional.fields.value.string_value |
该值取自原始日志中的 BUFFERSIZE 字段。 |
CCIENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 CCIENABLED 字段。 |
CCMINTERFACESTATUSTLVCONTROL |
additional.fields.value.string_value |
该值取自原始日志中的 CCMINTERFACESTATUSTLVCONTROL 字段。 |
CCMLTMPRIORITY |
additional.fields.value.string_value |
该值取自原始日志中的 CCMLTMPRIORITY 字段。 |
CFMTAGETHERTYPE |
additional.fields.value.string_value |
该值取自原始日志中的 CFMTAGETHERTYPE 字段。 |
CIR |
additional.fields.value.string_value |
该值取自原始日志中的 CIR 字段。 |
COS |
additional.fields.value.string_value |
该值取自原始日志中的 COS 字段。 |
CT |
metadata.description |
该值取自原始日志中的 CT 字段。 |
DESTBMAC |
target.mac |
该值取自原始日志中的 DESTBMAC 字段,并解析为 MAC 地址。 |
DHCPCIDENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPCIDENABLED 字段。 |
DHCPENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPENABLED 字段。 |
DHCPHOSTNAME |
network.dhcp.client_hostname |
该值取自原始日志中的 DHCPHOSTNAME 字段。 |
DHCPHOSTNAMEENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPHOSTNAMEENABLED 字段。 |
DHCPHOSTNAMETYPE |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPHOSTNAMETYPE 字段。 |
DHCPLOGSERVERENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPLOGSERVERENABLED 字段。 |
DHCPNTPSERVERENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPNTPSERVERENABLED 字段。 |
DHCPV6CIDENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPV6CIDENABLED 字段。 |
DHCPV6ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPV6ENABLED 字段。 |
DHCPV6ROLE |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPV6ROLE 字段。 |
DHCPVENDORINFOTYPE |
additional.fields.value.string_value |
该值取自原始日志中的 DHCPVENDORINFOTYPE 字段。 |
DIR |
additional.fields.value.string_value |
该值取自原始日志中的 DIR 字段。 |
DIRECTION |
network.direction |
如果原始日志中的 DIRECTION 字段为“UP”(不区分大小写),则该值设置为“OUTBOUND”;如果该字段为“DOWN”,则该值设置为“INBOUND”;否则,该值保持为空。 |
ENCAPSULATIONTYPE |
additional.fields.value.string_value |
该值取自原始日志中的 ENCAPSULATIONTYPE 字段。 |
GUARANTEEDA2NBW |
additional.fields.value.string_value |
该值取自原始日志中的 GUARANTEEDA2NBW 字段。 |
HCOSMGMTENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 HCOSMGMTENABLED 字段。 |
INT |
additional.fields.value.string_value |
该值取自原始日志中的 INT 字段。 |
IPMODE |
additional.fields.value.string_value |
该值取自原始日志中的 IPMODE 字段。 |
IPV6ADDR |
principal.ip |
该值取自原始日志中的 IPV6ADDR 字段,并解析为 IP 地址。 |
IPV6ADDRPREFIXLENGTH |
additional.fields.value.string_value |
该值取自原始日志中的 IPV6ADDRPREFIXLENGTH 字段。 |
IPV6MTU |
additional.fields.value.string_value |
该值取自原始日志中的 IPV6MTU 字段。 |
ITAG |
additional.fields.value.string_value |
该值取自原始日志中的 ITAG 字段。 |
ITAGENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 ITAGENABLED 字段。 |
LBMTXDESTTYPE |
additional.fields.value.string_value |
该值取自原始日志中的 LBMTXDESTTYPE 字段。 |
LBMTXNUMMSGS |
additional.fields.value.string_value |
该值取自原始日志中的 LBMTXNUMMSGS 字段。 |
LBMTXVLANDROPENABLE |
additional.fields.value.string_value |
该值取自原始日志中的 LBMTXVLANDROPENABLE 字段。 |
LBMTXVLANPRIORITY |
additional.fields.value.string_value |
该值取自原始日志中的 LBMTXVLANPRIORITY 字段。 |
LLRESPONDERENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LLRESPONDERENABLED 字段。 |
LLVIDLIST |
additional.fields.value.string_value |
该值取自原始日志中的 LLVIDLIST 字段。 |
LMDUALENDEDCOUNTALLPRIOS |
additional.fields.value.string_value |
该值取自原始日志中的 LMDUALENDEDCOUNTALLPRIOS 字段。 |
LMINPROFILEONLY |
additional.fields.value.string_value |
该值取自原始日志中的 LMINPROFILEONLY 字段。 |
LMRXCOUNTALLPRIOS |
additional.fields.value.string_value |
该值取自原始日志中的 LMRXCOUNTALLPRIOS 字段。 |
LMTXCOUNTALLPRIOS |
additional.fields.value.string_value |
该值取自原始日志中的 LMTXCOUNTALLPRIOS 字段。 |
LOC |
additional.fields.value.string_value |
该值取自原始日志中的 LOC 字段。 |
LOCN |
additional.fields.value.string_value |
该值取自原始日志中的 LOCN 字段。 |
LOGINTIMEOUT |
additional.fields.value.string_value |
该值取自原始日志中的 LOGINTIMEOUT 字段。 |
LOOPBACKBLOCKINGENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKBLOCKINGENABLED 字段。 |
LOOPBACKCONFIG |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKCONFIG 字段。 |
LOOPBACKDESTMAC |
target.mac |
该值取自原始日志中的 LOOPBACKDESTMAC 字段,并解析为 MAC 地址。 |
LOOPBACKDESTMACCONTROL |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKDESTMACCONTROL 字段。 |
LOOPBACKINNERVLAN1 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKINNERVLAN1 字段。 |
LOOPBACKINNERVLAN1ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKINNERVLAN1ENABLED 字段。 |
LOOPBACKINNERVLAN2 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKINNERVLAN2 字段。 |
LOOPBACKINNERVLAN2ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKINNERVLAN2ENABLED 字段。 |
LOOPBACKINNERVLAN3 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKINNERVLAN3 字段。 |
LOOPBACKINNERVLAN3ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKINNERVLAN3ENABLED 字段。 |
LOOPBACKOUTERITAG1 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERITAG1 字段。 |
LOOPBACKOUTERITAG1ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERITAG1ENABLED 字段。 |
LOOPBACKOUTERITAG2 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERITAG2 字段。 |
LOOPBACKOUTERITAG2ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERITAG2ENABLED 字段。 |
LOOPBACKOUTERITAG3 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERITAG3 字段。 |
LOOPBACKOUTERITAG3ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERITAG3ENABLED 字段。 |
LOOPBACKOUTERVLAN1 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERVLAN1 字段。 |
LOOPBACKOUTERVLAN1ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERVLAN1ENABLED 字段。 |
LOOPBACKOUTERVLAN2 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERVLAN2 字段。 |
LOOPBACKOUTERVLAN2ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERVLAN2ENABLED 字段。 |
LOOPBACKOUTERVLAN3 |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERVLAN3 字段。 |
LOOPBACKOUTERVLAN3ENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKOUTERVLAN3ENABLED 字段。 |
LOOPBACKSOURCEMAC |
principal.mac |
该值取自原始日志中的 LOOPBACKSOURCEMAC 字段,并解析为 MAC 地址。 |
LOOPBACKSWAPSADA |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKSWAPSADA 字段。 |
LOOPBACKTIMER |
additional.fields.value.string_value |
该值取自原始日志中的 LOOPBACKTIMER 字段。 |
LOWESTPRIODEFECT |
additional.fields.value.string_value |
该值取自原始日志中的 LOWESTPRIODEFECT 字段。 |
LTMTXDESTTYPE |
additional.fields.value.string_value |
该值取自原始日志中的 LTMTXDESTTYPE 字段。 |
LTMTXEGRESSID |
metadata.product_log_id |
该值取自原始日志中的 LTMTXEGRESSID 字段。 |
LTMTXFLAGS |
additional.fields.value.string_value |
该值取自原始日志中的 LTMTXFLAGS 字段。 |
LTMTXTTL |
additional.fields.value.string_value |
该值取自原始日志中的 LTMTXTTL 字段。 |
MT |
additional.fields.value.string_value |
该值取自原始日志中的 MT 字段。 |
MAXIMUMA2NBW |
additional.fields.value.string_value |
该值取自原始日志中的 MAXIMUMA2NBW 字段。 |
MVAL |
additional.fields.value.string_value |
该值取自原始日志中的 MVAL 字段。 |
NAME |
additional.fields.value.string_value |
该值取自原始日志中的 NAME 字段。 |
NC |
additional.fields.value.string_value |
该值取自原始日志中的 NC 字段。 |
PORTEID |
additional.fields.value.string_value |
该值取自原始日志中的 PORTEID 字段。 |
PORTLLENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 PORTLLENABLED 字段。 |
PRIMARYSERVER |
target.ip |
该值取自原始日志中的 PRIMARYSERVER 字段,并解析为 IP 地址。 |
PRIMARYVID |
additional.fields.value.string_value |
该值取自原始日志中的 PRIMARYVID 字段。 |
QUEUEPROFILEID |
additional.fields.value.string_value |
该值取自原始日志中的 QUEUEPROFILEID 字段。 |
RXSHAPEREID |
additional.fields.value.string_value |
该值取自原始日志中的 RXSHAPEREID 字段。 |
SATRESPONDENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 SATRESPONDENABLED 字段。 |
SE |
additional.fields.value.string_value |
该值取自原始日志中的 SE 字段。 |
SHAREDVIM |
additional.fields.value.string_value |
该值取自原始日志中的 SHAREDVIM 字段。 |
SVLANENABLED |
additional.fields.value.string_value |
该值取自原始日志中的 SVLANENABLED 字段。 |
SVLANID |
additional.fields.value.string_value |
该值取自原始日志中的 SVLANID 字段。 |
SYSLOCATION |
principal.location.country_or_region |
该值取自原始日志中的 SYSLOCATION 字段。 |
THVAL |
additional.fields.value.string_value |
该值取自原始日志中的 THVAL 字段。 |
TYPE |
additional.fields.value.string_value |
该值取自原始日志中的 TYPE 字段。 |
USERACCESSTYPE |
additional.fields.value.string_value |
该值取自原始日志中的 USERACCESSTYPE 字段。 |
USERAUTHKEY |
additional.fields.value.string_value |
该值取自原始日志中的 USERAUTHKEY 字段。 |
USERAUTHKEYLOCAL |
additional.fields.value.string_value |
该值取自原始日志中的 USERAUTHKEYLOCAL 字段。 |
USERAUTHPROTOCOL |
additional.fields.value.string_value |
该值取自原始日志中的 USERAUTHPROTOCOL 字段。 |
USERENGINEID |
additional.fields.value.string_value |
该值取自原始日志中的 USERENGINEID 字段。 |
USERKEYSLOCAL |
additional.fields.value.string_value |
该值取自原始日志中的 USERKEYSLOCAL 字段。 |
USERNAME |
principal.user.userid |
该值取自原始日志中的 USERNAME 字段。 |
USERPRIVKEY |
additional.fields.value.string_value |
该值取自原始日志中的 USERPRIVKEY 字段。 |
USERPRIVKEYLOCAL |
additional.fields.value.string_value |
该值取自原始日志中的 USERPRIVKEYLOCAL 字段。 |
USERPRIVPROTOCOL |
additional.fields.value.string_value |
该值取自原始日志中的 USERPRIVPROTOCOL 字段。 |
USERSECURITYLEVEL |
additional.fields.value.string_value |
该值取自原始日志中的 USERSECURITYLEVEL 字段。 |
USERSECURITYNAME |
principal.user.user_display_name |
该值取自原始日志中的 USERSECURITYNAME 字段。 |
application |
principal.application |
该值取自 grok 解析器提取的应用字段。 |
description |
security_result.description |
该值取自 grok 解析器提取的说明字段。 |
metadata.description |
如果原始日志中的 CT 字段为“备用 NTP 服务器失败”,则该值设置为“备用 NTP 服务器失败”。 | |
metadata.event_timestamp.seconds |
该值取自 grok 解析器提取的时间戳字段,并转换为纪元秒数。 | |
metadata.event_type |
该值根据以下逻辑设置:如果 network_dhcp_present 为 true,并且 principal_present 或 target_present 为 true,则设置为 NETWORK_DHCP。如果 target_present 和 principal_present 均为 true,则为 NETWORK_CONNECTION。如果 user_present 为 true,则为 USER_RESOURCE_ACCESS。如果 principal_present 为 true,则为 STATUS_UPDATE。否则为 GENERIC_EVENT。 | |
metadata.product_log_id |
该值取自原始日志中的 LTMTXEGRESSID 字段。 | |
metadata.product_name |
该值设置为“ADVA_FSP”。 | |
metadata.vendor_name |
该值设置为“ADVA_FSP”。 | |
network.application_protocol |
如果 network_dhcp_present 为 true,并且 principal_present 或 target_present 为 true,则该值设置为“DHCP”。 | |
principal.hostname |
该值取自 grok 解析器提取的 principal_hostname 字段,并移除了下划线。 | |
principal.ip |
该值取自原始日志中的 IPADDR 字段,并解析为 IP 地址。 | |
timestamp.seconds |
该值取自 grok 解析器提取的时间戳字段,并转换为纪元秒数。 |
更新日志
需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。