SolarWinds Orion

本文档提供了有关如何将 SolarWinds Orion 与 Google SecOps 集成的指南。

使用场景

执行主动操作 - 执行 SQL 查询以获取有关端点的更多信息。

在 Google Security Operations 中配置 SolarWinds Orion 集成

有关如何在 Google SecOps 中配置集成的详细说明,请参阅配置集成。

集成参数

使用以下参数配置集成:

参数显示名称 类型 默认值 为必填项 说明
实例名称 字符串 不适用 否 您要为其配置集成的实例的名称。
说明 字符串 不适用 否 实例的说明。
IP 地址 字符串 x.x.x.x:17778 是 SolarWinds Orion 实例的 IP 地址。
用户名 字符串 不适用 是 SolarWinds Orion 账号的用户名。
密码 密码 不适用 是 SolarWinds Orion 账号的密码。
验证 SSL 复选框 尚未核查 否 如果已启用,请验证与 SolarWinds Orion 服务器连接的 SSL 证书是否有效。
远程运行 复选框 尚未核查 否 勾选此字段,以便远程运行配置的集成。选中后,系统会显示选择远程用户(代理)的选项。

操作

Ping

说明

‌使用 Google SecOps 内容中心页面中集成配置页面上提供的参数,测试与 SolarWinds Orion 的连接。

运行时间

此操作不会对实体运行,也没有强制性输入参数。

操作执行结果

脚本结果
脚本结果名称 “值”选项 示例
is_success True/False is_succeed:False
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:

输出“Successfully connected to the SolarWinds Orion server with the provided connection parameters!”

操作应失败并停止 playbook 执行:
如果不成功:

Print "Failed to connect to the SolarWinds Orion server! 错误为 {0}”。format(exception.stacktrace)

常规

执行查询

说明‌

在 SolarWinds Orion 中执行查询。

参数

参数显示名称 类型 默认值 是否必填 说明
查询 字符串 不适用 是 指定需要执行的查询。注意:SolarWind 查询不支持“*”表示法。
返回的结果数上限 整数 100 否 指定应返回的结果数量。

运行时间

此操作不会对实体运行,也没有强制性输入参数。

‌操作结果

脚本结果
脚本结果名称 “值”选项 示例
is_succeed True/False is_succeed:False
JSON 结果
{
    "results": [
        {
            "DisplayName": "orion"
        }
    ]
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果状态代码不是 400 (is_success = true):

输出“Successfully executed query and retrieved results from SolarWinds Orion”。

如果状态代码为 400 (is_success = false):

输出“Action wasn't able to successfully execute query and retrieve results from SolarWinds Orion. Reason: {0}".format(message)

操作应失败并停止 playbook 执行:
如果发生严重错误,例如凭据错误、无法连接到服务器等:

打印“执行‘执行查询’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规
案例墙表格

表名称:“Results”

响应中的所有列都将用作表列。

常规

执行实体查询

说明

根据 IP 和主机名实体在 SolarWinds Orion 中执行查询。

如何使用操作参数

此操作可让您根据 IP 和主机名实体轻松检索端点相关信息。

假设您想检索端点的正常运行时间。 第一个端点的 IP 为“172.30.230.130”,第二个端点的主机名为“DC001”。在这种情况下,我们的查询需要如下所示:

SELECT IpAddress, DisplayName, SystemUpTime FROM Orion.Nodes WHERE IpAddress='172.30.203.130' OR DisplayName='DC001'

如需使用“执行实体查询”操作创建相同的查询,您需要按以下方式填写操作参数:

查询 SELECT IpAddress, DisplayName, SystemUpTime FROM Orion.Nodes
IP 实体键 IpAddress
主机名实体键 DisplayName

系统会自动准备 WHERE 子句。

表架构文档

http://solarwinds.github.io/OrionSDK/2020.2/schema/Orion.Nodes.html

参数

参数显示名称 类型 默认值 为必填项 说明
查询 字符串 不适用 是 指定需要执行的查询。注意:SolarWind 查询不支持“*”表示法,并且查询中不应包含 WHERE 子句,因为该子句是由操作添加的。如需了解详情,请参阅操作文档。
IP 实体键 字符串 IpAddress 否

指定应在查询的 WHERE 子句中与 IP 实体搭配使用的键。如需了解详情,请参阅操作文档。默认:

IpAddress

主机名实体键 字符串 主机名 否

在查询的 WHERE 子句中指定应与 Hostname 实体搭配使用的键。如需了解详情,请参阅操作文档。默认:

主机名

返回的结果数上限 整数 100 否 指定应返回的结果数量。

运行时间

此操作将在以下实体上运行:

  • IP 地址
  • 主机

操作执行结果

脚本结果
脚本结果名称 “值”选项 示例
is_success True/False is_success:False
JSON 结果
{
    "results": [
        {
            "DisplayName": "orion"
        }
    ]
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果状态代码不是 400 (is_success = true):

输出“Successfully executed query and retrieved results from SolarWinds Orion”。

如果状态代码为 400 (is_success = false):

输出“Action wasn't able to successfully execute query and retrieve results from SolarWinds Orion. Reason: {0}".format(message)

如果范围内没有实体 (is_success = false)

输出“No entities were found in the scope.”

操作应失败并停止 playbook 执行:
如果发生严重错误,例如凭据错误、无法连接到服务器等:

输出“执行‘执行实体查询’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规
案例墙表格

表名称:“Results”

响应中的所有列都将用作表列。

常规

丰富端点

说明

通过主机名或 IP 地址提取端点的系统信息。

运行时间

此操作将在以下实体上运行:

  • IP 地址
  • 主机

操作执行结果

脚本结果
脚本结果名称 “值”选项 示例
is_success True/False is_success:False
实体丰富化

对于实体丰富,系统会使用回答中的每个字段。前缀将为 SLRWORION

例如,SLRW_ORION_CPULoad 是从 CPULoad 映射而来的

JSON 结果
{
    "results": [
        {
            "IpAddress": "172.30.203.130",
            "DisplayName": "orion",
            "NodeDescription": "Hardware: Intel64 Family 6 Model 63 Stepping 2 AT/AT COMPATIBLE - Software: Windows Version 10.0 (Build 17763 Multiprocessor Free)",
            "ObjectSubType": "Agent",
            "Description": "Windows 2019 Server",
            "SysName": "ORION",
            "Caption": "orion",
            "DNS": "orion",
            "Contact": "",
            "Status": 1,
            "StatusDescription": "Node status is Up.",
            "IOSImage": "",
            "IOSVersion": "10.0 (Build 17763 Multiprocessor Free)",
            "GroupStatus": "Up.gif                                  ",
            "LastBoot": "2020-10-26T11:06:00.0000000",
            "SystemUpTime": 76135.1171875,
            "AvgResponseTime": 4,
            "CPULoad": 0,
            "PercentMemoryUsed": 76,
            "MemoryAvailable": 3.08503347E+09,
            "Severity": 0,
            "Category": 2,
            "EntityType": "Orion.Nodes",
            "IsServer": true,
            "IsOrionServer": false
        }
    ]
}
案例墙
结果类型 值 / 说明 类型
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功且至少有一个提供的实体已扩充 (is_success = true):

Print "Successfully enriched the following endpoints from SolarWinds Orion: \n {0}".format(entity.identifier list)

如果未能丰富特定实体(is_success = true):

Print "Action was not able to enrich the following endpoints from SolarWinds Orion \n: {0}".format([entity.identifier])

如果未能为所有实体丰富数据 (is_success = false):

输出“No entities were enriched.”

操作应失败并停止 playbook 执行:
如果发生严重错误,例如凭据错误、无法连接到服务器等:

输出“执行‘丰富端点’操作时出错。Reason: {0}''.format(error.Stacktrace)

常规

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。