本文介绍 EventBridge 中 Elasticsearch 连接类型的参数定义、创建方式和注意事项。
概述
Elasticsearch 连接类型用于建立 EventBridge 与 Elasticsearch 集群之间的连通性。创建 Elasticsearch 连接后,可在 EventHouse 数据目录(Catalog)中挂载该连接,将 Elasticsearch 索引映射为可查询的事件表。
支持的 Elasticsearch 实例:
阿里云 Elasticsearch(6.x 及以上版本,推荐 7.x 或 8.x)
自建 Elasticsearch 集群
连接参数
参数 | 字段名 | 类型 | 是否必填 | 说明 |
主机地址 | HostName | string | 是 | Elasticsearch 实例地址。阿里云 ES 填写实例域名(如 |
端口号 | Port | string | 是 | Elasticsearch HTTP 端口号,默认 |
用户名 | User | string | 否 | Elasticsearch 用户名。仅在实例开启安全认证时需要填写。阿里云 ES 默认用户名为 |
密码 | 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 连接
通过控制台创建
在左侧导航栏,选择 集成中心 > 连接管理。
在顶部菜单栏,选择地域,然后单击 创建连接。
连接类型选择 Elasticsearch,填写连接参数。
单击 测试连接 验证连通性。
测试通过后,单击 确定。
通过 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。用户是否具有
read和view_index_metadata权限。
Q:连接创建后能否修改参数?
A:可以修改主机地址、端口、用户名和密码。连接名称和连接类型创建后不可修改。