一、环境
- Elasticsearch 版本:8.8
- fluentd版本:1.14.3
Elasticsearch 并没有专门为 Fluentd 预定义的内置账户,但可以创建一个具有适当权限的用户来专门用于 Fluentd。虽然没有预定义的内置账户,但可以参考 Elasticsearch 的内置角色和权限来创建一个适合 Fluentd 的用户。
1. 创建自定义角色
/_security/role/fluentd_writer 请求可以更新或者创建角色及其权限。
创建一个自定义角色,该角色具有创建索引和写入数据的权限。以下是一个示例,创建一个名为 fluentd_writer 的角色:
curl -u elastic:xxxxxx -k -X POST "https://localhost:9200/_security/role/fluentd_writer" -H "Content-Type: application/json" -d '
{
"cluster": ["monitor"], // 授予用户执行集群监控操作的权限,例如获取集群状态、节点信息等
"indices": [ // 定义用户对特定索引的操作权限
{
"names": [ "fluentd_*" ], // 指定用户可以操作的索引名称模式,这里表示所有以 "fluentd." 开头的索引
"privileges": [ "create_index", "write" ] // 授予用户创建索引和写入数据的权限
}
]
}

image.png
2. 创建 Fluentd 用户
创建一个用户,并将其分配给 fluentd_writer 角色。以下是一个示例,创建一个名为 fluentd_user 的用户:
curl -u elastic:xxxxxx -k -X POST "https://localhost:9200/_security/user/fluentd_user" -H "Content-Type: application/json" -d '
{
"password" : "fluentd_password",
"roles" : [ "fluentd_writer" ]
}

image.png