kibana面板本来用不同的用户空间开放给不用的用户使用,但是不同的面板空间都需要新建索引管理,很不方便;而且通过删除url后缀就能访问到默认空间,很不安全。官方给的消息说从6.8 和 7.1 开始默认提供x-pack的安全功能,虽然只是一部分,但也够用了。针对网上千奇百怪的文章,整理了一套自己能用的启用方式。
1. 升级java11版本
如果升级jdk,我使用的jdk8不支持启用,最低标准是jdk11。
2. 配置 es文件,末尾添加配置项
---- vim elasticsearch.yml
xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.authc.accept_default_password: true
3. 重启-elasticsearch,就能启用,如果出现问题;删除配置就恢复;使用chrome插件-elasticsearch head;就发现已经有密码验证了。
4. 设置密码,可以根据自己情况生成密码,我使用的auto;因为手动配置密码,在【apm_system】账户时提示失败;自动生成就没问题
cd /usr/share/elasticsearch/bin //生成随机密码 elasticsearch-setup-passwords auto or //设置默认账号密码 elasticsearch-setup-passwords interactive
使用 手动修改密码--elasticsearch-setup-passwords interactiveEnter password for [elastic]: Reenter password for [elastic]: Enter password for [apm_system]: Reenter password for [apm_system]: Enter password for [kibana]: Reenter password for [kibana]: Enter password for [logstash_system]: Reenter password for [logstash_system]: Enter password for [beats_system]: Reenter password for [beats_system]: Enter password for [remote_monitoring_user]: Reenter password for [remote_monitoring_user]: Connection failure to: http://127.0.0.1:9200/_security/user/apm_system/_password?pretty failed: Read timed out ERROR: Failed to set password for user [apm_system].
注意在执行该命令前一定要确保elasticsearch.yml里discovery.seed_hosts和cluster.initial_master_nodes节点都正常运行,不能确保就改本机节点,否则出现错误:ERROR: Failed to set password for user [apm_system]
5. 修改kibana中elasticsearch用户密码、重启,vim /etc/kibana/kibana.yml (使用的是kibana用户,但是登陆还的用超管用户--elastic);
6. 登陆之后会发现es没有接收到logstash的消息了;还需要配置logstash中的密码才能发送;
7. 如果配置了elasticalert,也需要在配置文件中修改才能接收到告警信息;
8. 配置成功后,登陆kibana,在【管理】中发现多了【安全】的配置;
9. 创建角色、用户,分配权限、工作区可见内容;内置用户不能修改;
这样就可以根据不同的用户分配权限了,还是官网自产的东西便于使用。