创建连接器 API编辑

创建连接器。

有关最新的 API 详细信息,请参阅开放 API 规范

请求编辑

POST <kibana 主机>:<端口>/api/actions/connector

POST <kibana 主机>:<端口>/s/<空间 ID>/api/actions/connector

先决条件编辑

您必须在Kibana 功能权限管理部分中拥有操作和连接器功能的所有权限。

路径参数编辑

space_id
(可选,字符串)空间的标识符。如果 URL 中未提供space_id,则使用默认空间。

请求正文编辑

config

(必填*,对象)连接器的配置。配置属性因连接器类型而异。例如

配置属性
IBM Resilient 连接器
apiUrl
(必填,字符串)IBM Resilient 实例 URL。
orgId
(必填,字符串)IBM Resilient 组织 ID。

有关更多信息,请参阅IBM Resilient

索引连接器
executionTimeField
(可选,字符串)指定一个字段,该字段将包含检测到警报条件的时间。默认值为null
index
(必填,字符串)要写入的 Elasticsearch 索引。
refresh
(可选,布尔值)写入请求的刷新策略。默认值为false

有关更多信息,请参阅索引

Jira 连接器
apiUrl
(必填,字符串)Jira 实例 URL。
projectKey
(必填,字符串)Jira 项目密钥。

有关更多信息,请参阅Jira

Opsgenie 连接器
apiUrl
(必填,字符串)Opsgenie URL。例如,https://api.opsgenie.comhttps://api.eu.opsgenie.com。如果您正在使用xpack.actions.allowedHosts 设置,请确保将主机名添加到允许的主机列表中。

有关更多信息,请参阅Opsgenie

ServiceNow ITOM、ServiceNow ITSM 和 ServiceNow SecOps 连接器
apiUrl
(必填,字符串)ServiceNow 实例 URL。
clientId
(必填*,字符串)分配给您的 OAuth 应用程序的客户端 ID。当isOAuthtrue 时,此属性是必需的。
isOAuth
(可选,字符串)要使用的身份验证类型。默认值为false,这意味着使用基本身份验证而不是开放授权 (OAuth)。
jwtKeyId
(必填*,字符串)分配给您的 OAuth 应用程序的 JWT 验证器映射的密钥标识符。当isOAuthtrue 时,此属性是必需的。
userIdentifierValue
(必填*,字符串)用于 OAuth 身份验证的标识符。此标识符应该是您在 ServiceNow 实例中为外部客户端创建 OAuth JWT API 端点时选择的用户字段。例如,如果选择的用户字段是Email,则用户标识符应该是用户的电子邮件地址。当isOAuthtrue 时,此属性是必需的。
usesTableApi

(可选,布尔值)确定连接器是使用表 API 还是导入集 API。此属性仅适用于 ServiceNow ITSM 和 ServiceNow SecOps 连接器。默认值为true

如果此属性设置为 false,则应在 ServiceNow 中安装 Elastic 应用程序。

Swimlane 连接器
apiUrl
(必填,字符串)Swimlane 实例 URL。
appId
(必填,字符串)Swimlane 应用程序 ID。
connectorType
(必填,字符串)连接器的类型。有效值为:allalertscases
mappings

(可选,对象)字段映射。

映射属性
alertIdConfig

(可选,对象)警报 ID 的映射。

fieldType
(必填,字符串)Swimlane 中字段的类型。
id
(必填,字符串)Swimlane 中字段的 ID。
key
(必填,字符串)Swimlane 中字段的键。
name
(必填,字符串)Swimlane 中字段的名称。
caseIdConfig

(可选,对象)案例 ID 的映射。

fieldType
(必填,字符串)Swimlane 中字段的类型。
id
(必填,字符串)Swimlane 中字段的 ID。
key
(必填,字符串)Swimlane 中字段的键。
name
(必填,字符串)Swimlane 中字段的名称。
caseNameConfig

(可选,对象)案例名称的映射。

fieldType
(必填,字符串)Swimlane 中字段的类型。
id
(必填,字符串)Swimlane 中字段的 ID。
key
(必填,字符串)Swimlane 中字段的键。
name
(必填,字符串)Swimlane 中字段的名称。
commentsConfig

(可选,对象)案例评论的映射。

fieldType
(必填,字符串)Swimlane 中字段的类型。
id
(必填,字符串)Swimlane 中字段的 ID。
key
(必填,字符串)Swimlane 中字段的键。
name
(必填,字符串)Swimlane 中字段的名称。
descriptionConfig

(可选,对象)案例描述的映射。

fieldType
(必填,字符串)Swimlane 中字段的类型。
id
(必填,字符串)Swimlane 中字段的 ID。
key
(必填,字符串)Swimlane 中字段的键。
name
(必填,字符串)Swimlane 中字段的名称。
ruleNameConfig

(可选,对象)警报规则名称的映射。

fieldType
(必填,字符串)Swimlane 中字段的类型。
id
(必填,字符串)Swimlane 中字段的 ID。
key
(必填,字符串)Swimlane 中字段的键。
name
(必填,字符串)Swimlane 中字段的名称。
severityConfig

(可选,对象)严重性的映射。

fieldType
(必填,字符串)Swimlane 中字段的类型。
id
(必填,字符串)Swimlane 中字段的 ID。
key
(必填,字符串)Swimlane 中字段的键。
name
(必填,字符串)Swimlane 中字段的名称。

有关更多信息,请参阅Swimlane

Webhook - 案例管理连接器
createCommentJson

(可选,字符串)发送到创建评论 URL 的 JSON 有效负载,用于创建案例评论。您可以使用变量将 Kibana 案例数据添加到有效负载中。必需的变量是case.comment。例如

{
  "body": {{{case.comment}}}
}

由于 Mustache 模板变量(用三重花括号括起来的文本,例如{{{case.title}}}),因此在创建连接器时不会验证 JSON。在 REST 方法运行时放置 Mustache 变量后,将验证 JSON。请手动确保 JSON 有效,忽略 Mustache 变量,以便以后的验证能够通过。

createCommentMethod
(可选,字符串)REST API HTTP 请求方法,用于在第三方系统中创建案例评论。有效值为patchpostput。默认值为put
createCommentUrl

(可选,字符串)REST API URL,用于在第三方系统中按 ID 创建案例评论。您可以使用变量将外部系统 ID 添加到 URL 中。如果您正在使用xpack.actions.allowedHosts 设置,请确保将主机名添加到允许的主机列表中。例如

https://testing-jira.atlassian.net/rest/api/2/issue/{{{external.system.id}}}/comment
createIncidentJson

(必填,字符串)发送到创建案例 URL 的 JSON 有效负载,用于创建案例。您可以使用变量将案例数据添加到有效负载中。必需的变量是case.titlecase.description。例如

{
	"fields": {
	  "summary": {{{case.title}}},
	  "description": {{{case.description}}},
	  "labels": {{{case.tags}}}
	}
}

由于 Mustache 模板变量(用三重花括号括起来的文本,例如{{{case.title}}}),因此在创建连接器时不会验证 JSON。在 REST 方法运行时放置 Mustache 变量后,将验证 JSON。请手动确保 JSON 有效,以避免将来的验证错误;在检查过程中忽略 Mustache 变量。

createIncidentMethod
(可选,字符串)REST API HTTP 请求方法,用于在第三方系统中创建案例。有效值为patchpostput。默认值为post
createIncidentResponseKey
(必填,字符串)创建案例响应中包含外部案例 ID 的 JSON 键。
createIncidentUrl
(必填,字符串)REST API URL,用于在第三方系统中创建案例。如果您正在使用xpack.actions.allowedHosts 设置,请确保将主机名添加到允许的主机列表中。
getIncidentResponseExternalTitleKey
(必填,字符串)获取案例响应中包含外部案例标题的 JSON 键。
getIncidentUrl

(必填,字符串)REST API URL,用于从第三方系统中按 ID 获取案例。如果您正在使用xpack.actions.allowedHosts 设置,请确保将主机名添加到允许的主机列表中。您可以使用变量将外部系统 ID 添加到 URL 中。例如

https://testing-jira.atlassian.net/rest/api/2/issue/{{{external.system.id}}}

由于 Mustache 模板变量(用三重花括号括起来的文本,例如{{{case.title}}}),因此在创建连接器时不会验证 JSON。在 REST 方法运行时放置 Mustache 变量后,将验证 JSON。请手动确保 JSON 有效,忽略 Mustache 变量,以便以后的验证能够通过。

hasAuth
(可选,布尔值)如果为 true,则必须提供用于登录类型身份验证的用户名和密码。默认值为true
headers
(可选,字符串)一组键值对,作为标头与创建案例、更新案例、获取案例和创建评论方法的请求 URL 一起发送。
updateIncidentJson

(必填,字符串)发送到更新案例 URL 的 JSON 有效负载,用于更新案例。您可以使用变量将 Kibana 案例数据添加到有效负载中。必需的变量是case.titlecase.description。例如

{
	"fields": {
	  "summary": {{{case.title}}},
	  "description": {{{case.description}}},
	  "labels": {{{case.tags}}}
	}
}

由于 Mustache 模板变量(用三重花括号括起来的文本,例如{{{case.title}}}),因此在创建连接器时不会验证 JSON。在 REST 方法运行时放置 Mustache 变量后,将验证 JSON。请手动确保 JSON 有效,以避免将来的验证错误;在检查过程中忽略 Mustache 变量。

updateIncidentMethod
(可选,字符串)REST API HTTP 请求方法,用于在第三方系统中更新案例。有效值为patchpostput。默认值为put
updateIncidentUrl

(必填,字符串)REST API URL,用于在第三方系统中按 ID 更新案例。您可以使用变量将外部系统 ID 添加到 URL 中。如果您正在使用xpack.actions.allowedHosts 设置,请确保将主机名添加到允许的主机列表中。例如

https://testing-jira.atlassian.net/rest/api/2/issue/{{{external.system.ID}}}
viewIncidentUrl

(必填,字符串)用于在外部系统中查看案例的 URL。您可以使用变量将外部系统 ID 或外部系统标题添加到 URL 中。例如

https://testing-jira.atlassian.net/browse/{{{external.system.title}}}

有关更多信息,请参阅Webhook - 案例管理

服务器日志连接器不需要此对象。

有关更多配置属性,请参阅连接器

connector_type_id
(必填,字符串)连接器的连接器类型 ID。例如,.cases-webhook.index.jira.opsgenie.server-log.servicenow-itom
name
(必填,字符串)连接器的显示名称。
secrets

(必填*,对象)连接器的密钥配置。密钥配置属性因连接器类型而异。有关密钥配置属性的信息,请参阅连接器

请记住这些值。每次调用更新 API 时都必须提供这些值。

密钥属性
IBM Resilient 连接器
apiKeyId
(必填,字符串)HTTP 基本身份验证的身份验证密钥 ID。
apiKeySecret
(必填,字符串)HTTP 基本身份验证的身份验证密钥。
Jira 连接器
apiToken
(必填,字符串)用于 HTTP 基本身份验证的 Jira API 身份验证令牌。
email
(必填,字符串)HTTP 基本身份验证的帐户电子邮件。
Opsgenie 连接器
apiKey
(必填,字符串)用于 HTTP 基本身份验证的 Opsgenie API 身份验证密钥。
ServiceNow ITOM、ServiceNow ITSM 和 ServiceNow SecOps 连接器
clientSecret
(必填*,字符串)分配给您的 OAuth 应用程序的客户端密钥。当 isOAuthtrue 时,此属性是必需的。
password
(必填*,字符串)HTTP 基本身份验证的密码。当 isOAuthfalse 时,此属性是必需的。
privateKey
(必填*,字符串)您为在 ServiceNow 中使用而创建的 RSA 私钥。当 isOAuthtrue 时,此属性是必需的。
privateKeyPassword
(必填*,字符串)RSA 私钥的密码。当 isOAuthtrue 并且您为私钥设置了密码时,此属性是必需的。
username
(必填*,字符串)HTTP 基本身份验证的用户名。当 isOAuthfalse 时,此属性是必需的。
Swimlane 连接器
apiToken
(字符串)Swimlane API 身份验证令牌。
Webhook - 案例管理连接器
password
(可选,字符串)HTTP 基本身份验证的密码。
user
(可选,字符串)HTTP 基本身份验证的用户名。

索引或服务器日志连接器不需要此对象。

响应代码编辑

200
表示调用成功。

示例编辑

创建索引连接器

POST api/actions/connector
{
  "name": "my-connector",
  "connector_type_id": ".index",
  "config": {
    "index": "test-index"
  }
}

API 返回以下内容

{
  "id": "c55b6eb0-6bad-11eb-9f3b-611eebc6c3ad",
  "connector_type_id": ".index",
  "name": "my-connector",
  "config": {
    "index": "test-index",
    "refresh": false,
    "executionTimeField": null
  },
  "is_preconfigured": false,
  "is_deprecated": false,
  "is_missing_secrets": false
}

创建 Jira 连接器

POST api/actions/connector
{
  "name": "my-jira-connector",
  "connector_type_id": ".jira",
  "config": {
    "apiUrl": "https://elastic.atlassian.net",
    "projectKey": "ES"
  },
  "secrets": {
    "email": "myEmail",
    "apiToken": "myToken"
  }
}

创建 IBM Resilient 连接器

POST api/actions/connector
{
  "name": "my-resilient-connector",
  "connector_type_id": ".resilient",
  "config": {
    "apiUrl": "https://elastic.resilient.net",
    "orgId": "201"
  },
  "secrets": {
    "apiKeyId": "myKey",
    "apiKeySecret": "myToken"
  }
}

创建使用开放授权的 ServiceNow ITOM 连接器

POST api/actions/connector
{
  "name": "my-itom-connector",
  "connector_type_id": ".servicenow-itom",
  "config": {
    "apiUrl": "https://exmaple.service-now.com/",
    "clientId": "abcdefghijklmnopqrstuvwxyzabcdef",
    "isOAuth": "true",
    "jwtKeyId": "fedcbazyxwvutsrqponmlkjihgfedcba",
    "userIdentifierValue": "[email protected]"
  },
  "secrets": {
    "clientSecret": "secretsecret",
    "privateKey": "-----BEGIN RSA PRIVATE KEY-----\nprivatekeyhere\n-----END RSA PRIVATE KEY-----"
  }
}

创建 Swimlane 连接器

POST api/actions/connector
{
   "name":"my-swimlane-connector",
   "connector_type_id": ".swimlane",
   "config":{
      "connectorType":"all",
      "mappings":{
         "ruleNameConfig":{
            "id":"b6fst",
            "name":"Alert Name",
            "key":"alert-name",
            "fieldType":"text"
         }
      },
      "appId":"myAppID",
      "apiUrl":"https://myswimlaneinstance.com"
   },
   "secrets":{
      "apiToken":"myToken"
   }
}