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 专业人士的解答。