Elasticsearch连接类型

更新时间:
复制 MD 格式

本文介绍 EventBridge 中 Elasticsearch 连接类型的参数定义、创建方式和注意事项。

概述

Elasticsearch 连接类型用于建立 EventBridge 与 Elasticsearch 集群之间的连通性。创建 Elasticsearch 连接后,可在 EventHouse 数据目录(Catalog)中挂载该连接,将 Elasticsearch 索引映射为可查询的事件表。

支持的 Elasticsearch 实例:

  • 阿里云 Elasticsearch(6.x 及以上版本,推荐 7.x 或 8.x)

  • 自建 Elasticsearch 集群

连接参数

参数

字段名

类型

是否必填

说明

主机地址

HostName

string

Elasticsearch 实例地址。阿里云 ES 填写实例域名(如 es-cn-xxx.elasticsearch.aliyuncs.com),自建集群填写 IP 地址。

端口号

Port

string

Elasticsearch HTTP 端口号,默认 9200。注意填写 HTTP 端口,非传输端口(9300)。

用户名

User

string

Elasticsearch 用户名。仅在实例开启安全认证时需要填写。阿里云 ES 默认用户名为 elastic

密码

Password

string

Elasticsearch 密码。仅在实例开启安全认证时需要填写。

阿里云 Elasticsearch 默认开启安全认证,建议填写用户名和密码。自管理集群如果未开启 X-Pack Security,可不填写认证信息。

参数示例

开启安全认证(推荐):

{
  "HostName": "es-cn-xxx.elasticsearch.aliyuncs.com",
  "Port": "9200",
  "User": "elastic",
  "Password": "your_password"
}

未开启安全认证:

{
  "HostName": "192.168.1.100",
  "Port": "9200"
}

创建 Elasticsearch 连接

通过控制台创建

  1. 登录事件总线EventBridge控制台

  2. 在左侧导航栏,选择 集成中心 > 连接管理。

  3. 在顶部菜单栏,选择地域,然后单击 创建连接。

  4. 连接类型选择 Elasticsearch,填写连接参数。

  5. 单击 测试连接 验证连通性。

  6. 测试通过后,单击 确定。

通过 API 创建

使用 CreateConnection API 创建 Elasticsearch 连接:

{
  "ConnectionName": "my-es-conn",
  "Type": "Elasticsearch",
  "Parameters": {
    "HostName": "es-cn-xxx.elasticsearch.aliyuncs.com",
    "Port": "9200",
    "User": "elastic",
    "Password": "your_password"
  }
}

网络配置

网络类型

说明

适用场景

公网

通过公网连接,无需额外配置

ES 实例已开启公网访问(阿里云 ES 需开启公网访问功能)

VPC 私网

通过 VPC 内网连接

ES 实例部署在 VPC 内

使用 VPC 私网时,需额外配置:

  • VPC ID:ES 实例所在 VPC。

  • 交换机 ID(VSwitch ID):VPC 内的交换机。

  • 安全组 ID:安全组入方向规则需放行 ES HTTP 端口(9200)。

EventBridge 会自动打通与客户 VPC 的网络连通,无需客户侧做额外网络对接。

使用场景

Catalog 挂载(已支持)

将 Elasticsearch 连接挂载到 EventHouse Catalog,即可通过 SQL 直接查询 ES 索引:

-- 查询 ES 中的日志索引
SELECT * FROM my_catalog.log_namespace.app_logs LIMIT 10;

-- 跨源 JOIN:ES 日志与 EventHouse 事件
SELECT l.trace_id, l.message, e.event_type
FROM my_catalog.log_namespace.app_logs l
JOIN my_catalog.event_namespace.api_events e
  ON l.trace_id = e.trace_id
WHERE l.level = 'ERROR';

详细操作请参见数据目录 Catalog

字段类型映射

挂载时,Elasticsearch Mapping 会自动映射为 Catalog 列类型:

Elasticsearch 类型

Catalog 列类型

text / keyword

text

long / integer / short / byte

bigint

double / float / half_float

double

date

timestamp

boolean

text

object / nested

json

权限要求

建议为 EventBridge 创建专用的只读账号:

POST /_security/role/eb_readonly
{
  "indices": [
    {
      "names": ["app_logs*", "metrics*"],
      "privileges": ["read", "view_index_metadata"]
    }
  ]
}

POST /_security/user/eb_reader
{
  "password": "your_password",
  "roles": ["eb_readonly"]
}

EventBridge 仅需读取权限,不会修改 Elasticsearch 中的数据。

常见问题

Q:测试连接失败,提示 "Connection refused"?

A:请检查:

  • ES 集群是否正常运行(集群健康状态为 green 或 yellow)。

  • 主机地址和端口是否正确。确认填写的是 HTTP 端口(默认 9200),不是传输端口(9300)。

  • 安全组或防火墙是否放行了 9200 端口。

  • 如果使用 VPC 私网,确认 VPC 和交换机配置正确。

Q:开启安全认证的实例,认证失败怎么办?

A:请确认:

  • 用户名和密码是否正确。阿里云 ES 的默认用户名为 elastic

  • 用户是否具有 readview_index_metadata 权限。

Q:连接创建后能否修改参数?

A:可以修改主机地址、端口、用户名和密码。连接名称和连接类型创建后不可修改。