前提准备

安装kibana-6.7.0: 《Elasticsearch-6.7.0系列(三)5601端口 kibana——ES的UI界面》

升级前ES的license

升级之前访问:http://192.168.10.110:9200/_xpack  其中security一项内容如下:

security    description    "Security for the Elastic Stack"available    falseenabled    true

在kibana中升级license

在 Kibana 中访问 Management -> Elasticsearch -> License Management,点击右侧的升级 License 按钮,可以免费试用 30 天的高级 License,升级完成之后kibana页面会显示如下:

修改ES配置文件

elasticsearch-6.7.0/config/elasticsearch.yml 添加如下配置:

xpack.security.enabled: true
xpack.ml.enabled: true
xpack.license.self_generated.type: trial        //表示试用的意思

设置集群密码

./bin/elasticsearch-setup-passwords interactive     设置集群密码:

总共修改了6个用户的密码:elastic、kibana、apm_system、logstash_system、beats_system、remote_monitoring_user。

修改kibana配置文件

vim kibana-6.7.0-linux-x86_64/config/kibana.yml,设置正确的ES访问用户名密码:

elasticsearch.username: "elastic"
elasticsearch.password: "123456"

修改配置之后,记得重启ES!!!  以及,kibana!!!

ES启动时,license信息由原来的:

[2019-06-08T07:11:26,598][INFO ][o.e.l.LicenseService     ] [MiIzYdB] license [33b7d4ab-ee0c-4a48-9f18-30c9e11ec47a] mode [basic] - valid

变为trial试用期:

019-06-08T04:12:13,998][INFO ][o.e.l.LicenseService     ] [node-130] license [cf9606b3-5e36-4fdd-9469-587ddb323a62] mode [trial] - valid

ES集群访问使用密码

再访问http://192.168.10.110:9200/_xpack  其中security一项内容如下:

security    description    "Security for the Elastic Stack"available    true               //已经从false变为true了,表示security设置成功enabled    true

此时访问ES:  http://192.168.10.110:9200 需要用户名和密码了:

访问kibana: http://192.168.10.110:5601 也需要用户名密码了:

PS:记住这个license只有30天试用期,时间到了之后要么购买,要么重新安装ES(网上说重装可行)。

ES stack 结合 search guard 配置:

参照: https://my.oschina.net/huangweibin/blog/820858

===============================更多详细操作===========================================

1.  前言


在之前的例子中,我们都是直接输入地址访问的,系统也没有提示我们要输入用户名密码。但是,在实际使用过程中不大可能所有人都是超级管理员可以做任何操作,一定是有权限控制的,这里我们借助X-Pack插件来实现(PS:X-Pack是收费的,可以申请试用30天。)

2.  安装X-Pack


用下列命令安装插件:

bin/kibana-plugin install <package name or URL>

例如:

bin/kibana-plugin install x-pack

事实上,我们无需再次安装X-Pack插件,因为在安装Kibana的时候默认已经安装了。

By default, when you install Elasticsearch, X-Pack is installed.

By default, when you install Kibana, X-Pack is installed.

3.  在Elasticsearch中配置Security


X-Pack安全性使你能够轻松地保护集群。通过X-Pack安全性,你可以对数据进行密码保护,并实现更高级的安全措施,如加密通信、基于角色的访问控制、IP过滤和审计。

第1步:检查你的license中是否包含X-Pack安全特性

如果你想尝试所有的X-Pack特性,你可以开始一个30天的试用。在试用期结束时,你可以购买以继续使用X-Pack组件的全部功能。

这里,我们先试用30天再说

可以看到,试用以后我们的license从“Basic”变成“Trial”。而且,从控制台日志中我们可以看到这个变化:

log   [03:49:03.965] [info][license][xpack] Imported license information from Elasticsearch for the [monitoring] cluster: mode: basic | status: active
log   [03:55:25.049] [info][license][xpack] Imported changed license information from Elasticsearch for the [data] cluster: mode: trial | status: active | expiry date: 2018-09-18T11:55:25+08:00

第2步:检查你的集群中的每个节点配置中xpack.security.enabled是否设置为true。如果你用的是一个trail license,这个配置项默认是false。

xpack.security.enabled: true

配置项

xpack.security.enabled

设置为true则在节点上启用X-Pack安全特性,false表示禁用X-Pack安全特性。(PS:推荐明确设置这个值)

xpack.security.authc.accept_default_password

在elasticsearch.yml中,将其设置为false,以禁用默认密码。默认密码是“changeme”。

xpack.security.authc.anonymous.username

配置匿名用户

xpack.security.authc.anonymous.roles

匿名用户关联的角色

例如:

xpack.security.authc:anonymous:username: anonymous_user roles: role1, role2 authz_exception: true 

xpack.security.dls_fls.enabled

设置为false表示阻止文档和字段级别的访问控制。默认是true。

xpack.security.authc.token.enabled

设置为false表示禁用token服务。默认true。

xpack.security.authc.realms

配置realms,例如:


xpack.security.authc.realms:realm1:type: nativeorder: 0...realm2:type: ldaporder: 1...realm3:type: active_directoryorder: 2......
  • type:可选值有native, ldap, active_directory, pki,  file
  • order:realm在realm链中的优先级,数值越小,优先级越高
  • enabled:默认true,表示启用这个realm

第3步:为内部节点通信配置TSL/SSL

这需要你的集群中至少有两个节点。如果你的集群中只有一个节点,那么可以忽略这一步。

更多参见

https://www.elastic.co/guide/en/elasticsearch/reference/6.3/configuring-tls.html#node-certificates

https://www.elastic.co/guide/en/elasticsearch/reference/6.3/configuring-tls.html

第4步:启动Elasticsearch

第5步:为所有内置用户设置密码

X-Pack安全性提供了内置的用户来帮助你启动和运行。elasticsearch-setup-password命令是首次设置内置用户密码的最简单方法。

内置用户有4个,如下:

  • elastic  超级用户
  • Kibana  用于连接并且和Elasticsearch通信的
  • logstash_system     用于在Elasticsearch中存储监控信息
  • beats_system    用于在Elasticsearch中存储监控信息

例如,你可以以交互模式运行命令,依次为这些用户设置新密码:

bin/elasticsearch-setup-passwords interactive

(画外音:elasticsearch-setup-passwords命令只能运行一次,不能再运行第二次。此后如果你想修改密码的话,可以在Kibana UI界面中通Management --> Users 或者通过API的方式来修改密码)

第6步:选择你想要用来认证用户的realms类型

例如:https://www.elastic.co/guide/en/elasticsearch/reference/6.3/configuring-native-realm.html

第7步:设置用于访问Elasticsearch的角色和用户。例如:


curl -XPOST -u elastic 'localhost:9200/_xpack/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/_xpack/security/user/johndoe' -H "Content-Type: application/json" -d '{"password" : "userpassword","full_name" : "John Doe","email" : "john.doe@anony.mous","roles" : [ "events_admin" ]
}'

第8步:启用审计

xpack.security.audit.enabled: true

3.1.  用户管理API

3.1.1.  查看用户

# 查看所有用户
curl -X GET -u elastic "localhost:9200/_xpack/security/user"
# 查看指定用户
curl -X GET -u elastic "localhost:9200/_xpack/security/user/jacknich"

例如:

3.1.2.  创建用户

例如:


curl -X POST -u elastic "localhost:9200/_xpack/security/user/jacknich" -H 'Content-Type: application/json' -d'
{"password" : "j@rV1s","roles" : [ "admin", "other_role1" ],"full_name" : "Jack Nicholson","email" : "jacknich@example.com","metadata" : {"intelligence" : 7}
}
'

在这些参数中,password 和 roles 是必须的。

(画外音:加上“-u elastic”是因为只有elastic用户有管理用户权限,另外,请求参数后面可以带上?pretty,这样返回的格式会好看一点儿)

3.1.3.  修改密码

curl -X POST "localhost:9200/_xpack/security/user/jacknich/_password" -H 'Content-Type: application/json' -d'
{"password" : "s3cr3t"
}
'

3.1.4.  禁用/启用/删除用户

curl -X PUT "localhost:9200/_xpack/security/user/jacknich/_disable"
curl -X PUT "localhost:9200/_xpack/security/user/jacknich/_enable"
curl -X DELETE "localhost:9200/_xpack/security/user/jacknich"

3.2.  角色管理API


curl -X GET "localhost:9200/_xpack/security/role"
curl -X GET "localhost:9200/_xpack/security/role/my_admin_role"
curl -X DELETE "localhost:9200/_xpack/security/role/my_admin_role"
curl -X POST "localhost:9200/_xpack/security/role/my_admin_role" -H 'Content-Type: application/json' -d'
{"cluster": ["all"],"indices": [{"names": [ "index1", "index2" ],"privileges": ["all"],"field_security" : { // 可选"grant" : [ "title", "body" ]},"query": "{\"match\": {\"title\": \"foo\"}}" // 可选}],"run_as": [ "other_user" ], // 可选"metadata" : { // 可选"version" : 1}
}
'

3.3.  基于角色的访问控制(RBAC)

X-Pack安全性提供了一种基于角色的访问控制(RBAC)机制,它使你能够通过向角色分配特权和向用户或组分配角色来授权用户。

4.  在Kibana中配置Security


当在你的集群上启用X-Pack时,Kibana用户必须登录成功后才可以访问。你可以为Kibana用户配置X-Pack安全角色,以控制用户可以访问哪些数据。

通过Kibana向Elasticsearch发出的大多数请求都通过登录用户的凭证进行认证的。然而,Kibana服务器需要向Elasticsearch集群发出一些内部请求。因此,你必须为Kibana服务器配置用于这些请求的凭证。

启用了X-Pack安全性之后,如果你加载一个Kibana指示板,该指示板访问你没有权限查看的索引中的数据,那么你将得到一个索引不存在的错误。X-Pack安全性目前还没有提供一种方法来控制哪些用户可以加载哪些仪表板。

为了在Kibana中应用X-Pack安全特性:

第1步:在Elasticsearch中配置security

第2步:配置Kibana使用内置账户,例如:

第3步:在kibana.yml配置文件中指定xpack.security.encryptionKey,例如:

第4步:可选的:更改默认的session过期时间,例如:

xpack.security.sessionTimeout: 600000

第5步:可选的:配置Kibana加密通信

第6步:重启Kibana

第7步:现在一个用户身份认证机制,并授予用户所需的权限

你可以在Kibana中管理权限(Management / Security / Roles 页面)

如果你用native realm with Basic Authentication,你可以在Management / Security / Users 页面指定角色或者用APIs。

第8步:授权用户用Kibana工作的时候可以访问哪些索引

(画外音:你可以根据需要为Kibana用户定义许多不同的角色)

第9步:检查用户是否可以正常登录 http://localhost:5601

4.1.  配置项

xpack.security.enabled

设置为true(默认)以启用X-Pack安全特性

xpack.security.cookieName

cookie的名字。默认是“sid”。

xpack.security.encryptionKey

用于加密cookie中的凭证的32个或更多字符的任意字符串。关键是这个密钥不向Kibana的用户公开。默认情况下,在内存中会自动生成一个值。如果使用这种默认行为,当Kibana重新启动时,所有会话都将失效。

xpack.security.sessionTimeout

设置会话持续时间(以毫秒为单位)。默认情况下,会话保持活动状态,直到浏览器关闭。

4.2.  Kibana用户身份认证

Kibana支持两种认证机制:

  • Basic Authentication
  • SAML Single Sign-On

4.2.1.  Basic Authentication

Basic Authentication在登录Kibana时需要一个用户名和密码。默认它是启用的,并且是基于Elasticsearch提供的 native realm

4.2.2.  SAML Single Sign-On

SAML身份验证允许用户使用外部身份提供者(如Okta或Auth0)登录Kibana。在Kibana中设置SAML之前,请确保在Elasticsearch中启用和配置SAML。

更多参见  https://www.elastic.co/guide/en/kibana/current/kibana-authentication.html

4.3.  User authentication(用户认证)

为了访问受保护的资源,一个用户必须通过密码、凭证、或者其它方式(通常是token)来证明他们的身份标识。

认证过程由一个或多个被称为“realms”的认证服务来处理。

你可以用本机支持管理和认证用户,或者集成外部的用户管理系统(比如:LDAP 和 Active Directory)。

X-Pack安全特性提供了内置的realms,比如:native,ldap,active_directory,pki,file 和 saml。如果没有一个内置realms满足你的需求,你还可以构建自己的realm。

当启用X-Pack安全特性时,根据你配置的realms,你必须将用户凭证附加到发送到Elasticsearch的请求中。例如,当使用支持用户名和密码的realms时,你可以简单的将basic auth头信息添加到请求中。

4.4.  在Kibana管理后台界面中取管理用户

5.  演示


5.1.  kibana.yml

server.port: 5601server.host: "192.168.101.5"elasticsearch.url: "http://localhost:9200"elasticsearch.username: "kibana"
elasticsearch.password: "123456"xpack.security.enabled: true
xpack.security.encryptionKey: "4297f44b13955235245b2497399d7a93"

5.2.  elasticsearch.yml

xpack.security.enabled: true

5.3.  登录

6.  其它相关链接


《Elasticsearch》

《Logstash》

《Filebeat》

《Kibana》

《Filebeat模块与配置》

参考:

http://blog.51niux.com/?id=210

https://www.elastic.co/guide/en/x-pack/6.0/xpack-settings.html

https://www.elastic.co/guide/en/x-pack/5.4/auditing-settings.html

https://help.aliyun.com/document_detail/61336.html?spm=a2c4g.11186623.6.565.1e891d77J3iZKU

Elasticsearch 6.X xpack安装使用详解(试用)相关推荐

  1. php7的安装方法,php7 iis安装方法详解(图文)

    php7 iis安装方法详解(图文) php7 iis安装方法:首先在官网下载PHP7:然后将其解压到合适的位置:接着找到"php.ini-development"文件,并将其后缀 ...

  2. python3.5.3安装完后什么样子_python3.5安装python3-tk详解

    在python3.5下安装好matplotlib后,准备显示一张图片测试一下,但是控制台报错说需要安装python3-tk,我天真的以为直接: sudo apt-get install python3 ...

  3. Linux redis安装教程,Linux 下redis5.0.0安装教程详解

    Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis ? 3.安装:make, (1)若提示:: gcc: Command ...

  4. zabbix安装配置详解(一)

    zabbix安装配置详解(一) 一.nginx安装 1.必要软件准备: 为了支持rewrite功能,我们需要安装pcre: #yum install pcre-* 需要ssl的支持,如果不需要ssl支 ...

  5. 电脑安装python步骤-python3.8下载及安装步骤详解

    1.操作系统:Windows7 64bit executable installer 2.安装步骤: 双击安装文件python-3.8.0-amd64.exe 勾选下方"Add Python ...

  6. python详细安装教程3.8-python3.8下载及安装步骤详解

    1.操作系统:Windows7 64bit Python版本:3.8下载地址:https://www.python.org/downloads/release/python-380/,选择下方的Win ...

  7. centos6 安装 mantisbt-1.2.8 —— (1) VMware Workstation 12 Pro 虚拟机安装步骤详解(window 10 系统)

    对于目前主流之一的VMware 虚拟机而言,一直是各位小伙伴的首选,而VMware 12 Pro 是截止目前最新的VMware Workstation 版本:偶在这里特地给刚刚入坑的小伙伴详细介绍介绍 ...

  8. linux PHP 编译安装参数详解

    linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  9. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  10. redis cluster 集群 安装 配置 详解

    redis cluster 集群 安装 配置 详解 张映 发表于 2015-05-01 分类目录: nosql 标签:cluster, redis, 安装, 配置, 集群 Redis 集群是一个提供在 ...

最新文章

  1. 面试官:如果要存ip地址,用什么数据类型比较好
  2. swift string转int_Swift进阶二:基本数据类型相关
  3. java string 返回匹配正则的字符串的起始位置_Python小课堂正则表达式
  4. 如何进行嵌入式系统的学习?
  5. Switch语句的参数是什么类型的?
  6. linux之errno值为104(connetction reset by peer)
  7. css3 transition的应用
  8. 代码精进之路--思维导图
  9. UI标签库专题五:JEECG智能开发平台 Tabs(选项卡父标签)
  10. c语言程序设计报告链表,c语言程序设计报告链表实现学生信息管理.docx
  11. Git服务器-Gogs搭建
  12. 精英二代手柄测试软件,XBOX精英二代手柄评测视频:世界上最先进的手柄
  13. java物流管理系统代码_基于jsp的物流管理系统-JavaEE实现物流管理系统 - java项目源码...
  14. kaptcha 验证码
  15. countifs函数怎么用,excel函数的操作步骤
  16. 我的是CentOS6.3+MySQL5.1.57。重启了一次服务器后,使用 mysql -u root -p登陆是出现下面的错误: ERROR 2002 (HY000): Can't connect
  17. mysql比较两张表中两个字段值_如何通过SQL找出2个表里值不同的列的方法
  18. 零知识 QAP 问题的转化
  19. eclipse写程序从hdfs上下载文件到本地报错:at org.apache.hadoop.util.Shell.runCommand
  20. Jackson JsonNode和ObjectNode的使用

热门文章

  1. Solidity函数中pure、view、constant的用法
  2. 运营的新手先简单认识一下ASO
  3. ps第二次安装出错解决办法
  4. 苹果cms vod.html,苹果cms
  5. BatchConfigTool批量配置工具
  6. 正弦和余弦(角度到弧度)
  7. 如何图片格式批量转换?
  8. 运筹学与管理科学著名期刊解读
  9. ZoomIt 屏幕放大 缩小 屏幕画笔 演示 手写笔迹 倒计时 秒变白板 pointofix
  10. 联邦学习FATE社区2021年度生态峰会倒计时1天,请查收这份参会攻略