注:Elasticsearch 和 Kibana 使用版本为 7.2.0,其它版本暂未测试过


免费版的 ES 的默认配置中没有权限控制,需要手动开启

启动 ES 中的安全设置

打开 ES 的配置文件

vi elasticsearch/config/elasticsearch.yml

添加配置

xpack.security.enabled: true
xpack.security.authc.accept_default_password: false

添加单节点发现模式

discovery.type: single-node

设置密码

输入

elasticsearch/bin/elasticsearch-setup-passwords interactive

按照提示输入密码

给用户配置权限

例如先创建一个对"events"开头的 index 拥有所有权限的角色 events_admin,并可以在 Kibana 中作图和做报表,然后将用户名加入该角色即可

curl -XPOST -u elastic 'localhost:9200/_security/role/events_admin' -H "Content-Type: application/json" -d '{
  "indices" : [
    {
      "names" : [ "events*" ],
      "privileges" : [ "all" ]
    },
    {
      "names" : [ ".kibana*" ],
      "privileges" : [ "manage", "read", "index" ]
    }
  ]
}'

curl -XPOST -u elastic 'localhost:9200/_security/user/your_name' -H "Content-Type: application/json" -d '{
  "password" : "userpassword",
  "full_name" : "Full Name",
  "email" : "fullname@anony.mous",
  "roles" : [ "events_admin" ]
}'

配置 Kibana

打开 Kibana 配置文件

vi kibana/config/kibana.yml

添加下列配置,配置密码,以及一个任意的长度在 32 以上的字符串

elasticsearch.username: "kibana"
elasticsearch.password: "kibanapassword"
xpack.security.encryptionKey: "something_at_least_32_characters"

在 Kibana 中配置权限

重新启动 Kibana,看到登录界面

kibana_auth_1

输入账户名密码登录,进入 Kibana 后在左边工具栏点击 Management

kibana_auth_2

然后可以在 Security 下配置账户