ElasticSearch 7.17+kibanan安装和使用
文章目录说明分享资料服务主页安装普通方式安装系统配置安装软件软件配置elasticsearch.ymljvm.options启动并验证安装kibana用户认证开启x-pack验证创建内容用户访问测试设置密码忘记密码kibana关联账号和密码https加密传输层加密添加证书ElasticSearch开启httpsElasticsearch与Kibana 加密连接Kibana 开启https建议总结说
文章目录
说明
本博客每周五更新一次。
本文在原Elasticsearch安装基础上增加插件x-pack用户权限认证和Kibana页面管理,丰富Elasticsearch使用场景。
安装分为三个层次
- 普通安装,仅启用Kibana,不启用x-pack
- 用户认证,开启x-pack,Kibana自动开启用户管理。
- https加密,为Elasticsearch和Kibana增加数据安全。
分享
资料
- Elasticsearch 官网 报价,演示版本7.17.0
- 软件下载官方提供多种版本普通版、Elastic版(ecctl)、No Jdk版、OSS版、OSS No Jdk版
- 安全配置文档
- 各个版本收费信息
- elastic CSDN 官方博客网址
服务主页
- kibana 主页地址:http://localhost:5601/app/home#/
- Elasticsearch 接口地址:http://localhost:9200/
安装
普通方式安装
系统配置
- 修改系统最大文件描述大小默认为4096,最小修改为65535,修改文件:
/etc/security/limits.conf
默认添加内容如下:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
- 修改系统最大虚拟内存,默认65535,最小262144,修改文件:
/etc/sysctl.conf
,末尾增加内容:vm.max_map_count=262144
,立即生效命令:/sbin/sysctl -p
安装软件
从官网下载 7.17版本,解压到安装目录即可。
- 安装启动用户必须为非root用户。
# 创建安装目录
mkdir /usr/local/elasticsearch
# 解压安装包
cd /usr/local/elasticsearch
tar -zxvf elasticsearch-7.17.0-linux-x86_64.tar.gz
tar -zxvf kibana-7.17.0-linux-x86_64.tar.gz
#创建用户
useradd 用户
# 授权
chown -R 用户: /usr/local/elasticsearch/
####### 切换到新建用户,后续操作都使用该用户完成####
su 用户
软件配置
elasticsearch.yml
- 编辑文件:
config/elasticsearch.yml
,设置如下
# ---------------------------------- Cluster -----------------------------------
# 集群名称
cluster.name: my-application
# 集群中主节点的节点的集合
cluster.initial_master_nodes: ["node-1"]
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
# 节点名称
node.name: node-1
# ----------------------------------- Paths ------------------------------------
# 设置data存储目录
path.data: /usr/local/elasticsearch/elasticsearch-7.17.0/data
# 设置logs日志的目录
path.logs: /usr/local/elasticsearch/elasticsearch-7.17.0/logs
# ---------------------------------- Network -----------------------------------
#
# 默认仅localhost访问,配置当前服务器ip,允许ip访问
network.host: 192.168.10.200
# 服务端口,默认为9200
http.port: 9200
jvm.options
编辑文件:config/jvm.options
填写如下内容
-Xms1g
-Xmx1g
启动并验证
- 启动:软件根目录执行命令:
bin/elasticsearch
- 验证:浏览器打开网址:
http://服务器ip:9200
安装kibana
解压安装包,修改配置文件:vi config/kibana.yml
,指定Elasticsearch地址:
# kibana 服务地址,默认仅localhost可访问
server.host: "192.168.10.200"
# Elasticsearch服务地址
elasticsearch.hosts: ["http://192.168.10.200:9200"]
# 系统语言默认英文,改为中文
i18n.locale: "zh-CN"
运行启动软件即可。命令:bin/kibana
,登录地址:http://ip:5601
用户认证
开启x-pack验证
编辑文件:config/elasticsearch.yml
,设置如下内容:
# 开启 xpack
xpack.security.enabled: true
# 确保节点不会无意中连接到可能在网络上运行的其他群集
discovery.type: single-node
# 开启传输层 ssl加密,不开启服务无法启动
xpack.security.transport.ssl.enabled: true
注意:
- 一旦开启x-pack,必须开启TLS/SSL加密传输,否则会有日志报错如下:
Transport SSL must be enabled if security is enabled on a [basic] license. Please set [xpack.security.transport.ssl.enabled] to [true] or disable security by setting [xpack.security.enabled] to [false]
创建内容用户
- 启动Elasticsearch:
bin/elasticsearch
- 新建终端窗口,创建内置用户。
# 自定义密码
bin/elasticsearch-setup-passwords interactive
# 随机生成密码
bin/elasticsearch-setup-passwords auto
# 随机生成结果如下
Changed password for user apm_system
PASSWORD apm_system = h1d0q4mfPvbgxqQeLERj
Changed password for user kibana_system
PASSWORD kibana_system = OzKzbRb84YtgyvoXkvXO
# 登录Kibana账号
Changed password for user kibana
PASSWORD kibana = OzKzbRb84YtgyvoXkvXO
Changed password for user logstash_system
PASSWORD logstash_system = kLFsukpLcsyGsqNFGMuW
Changed password for user beats_system
PASSWORD beats_system = ESvQWN3jbM4s7f78CU72
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = KvLoRUhEKutOXrL23ZWL
Changed password for user elastic
PASSWORD elastic = Hm3pZkPVsEpwPC7Kj9QA
注意:
- 为用户设置密码后,无法再次运行该命令。elasticelasticsearch-setup-passwords
访问测试
# 不带认证访问会报认证异常
curl http://localhost:9200/_cat/indices
# -u参数指定账号,执行后会提示输入密码
curl -u elastic http://localhost:9200/_cat/indices
# -u参数指定账号和密码,格式:user:password
curl -u elastic:123456 http://localhost:9200/_cat/indices
设置密码
修改用户密码:curl -XPOST -u elastic http://localhost:9200/_security/user/elastic/_password -H "Content-Type:application/json" -d "{\"password\":\"abcdefg\"}"
忘记密码
如果忘记密码,可以先取消认证,即注释掉上面config/elasticsearch.yml中添加的两个配置,然后重启ElasticSearch,然后找到一个类型.security-X的index,删除掉就可以回到最初无密码认证的状态了:
# 查看.security-X存在与否
curl http://localhost:9200/_cat/indices | grep ".security"
# 删除index,我这里是.security-7
curl -XDELETE http://localhost:9200/.security-7
kibana关联账号和密码
编辑文件:vi config/kibana.yml
,设置账号和密码
xpack.security.enabled: true
elasticsearch.username: "kibana"
elasticsearch.password: "XXXXXX"
web页面登录时,管理员账号为 Kibana
用户
https加密
如果不配置 HTTPS 连接,某些 Elasticsearch 功能(比如令牌和 API 密钥)将被禁用,该安全层确保所有进出集群的通信都是安全的,HTTPS 配置建立在“传输层TLS安全配置之上” ,所以它要求你的集群已经配置了传输层安全配置。
https是加密有三个地方
- Elasticsearch 节点间传输层通信加密
- Elasticsearch 对外服务https加密
- Kibana服务https加密
传输层加密添加证书
由于Elasticsearch集群中的每个节点都是客户端和集群中其他节点的服务器,因此所有传输证书都必须是客户端和服务器证书。
Elasticsearch附带加密签名证书工具elasticsearch-certutil生成数字证书,操作如下:
# 生成根证书 执行后确认回车两次
bin/elasticsearch-certutil ca
# 执行后确认回车三次
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
获得可用于加密通信的TLS/SSL证书elastic-certificates.p12
,创建目录config/certs
,将证书复制到config/certs
的目录中,然后在config/elasticsearch.yml
文件配置如下:
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
重新启动Elasticsearch集群中的所有节点,应用传输层加密。
ElasticSearch开启https
此处使用与传输层相同认证文件,编辑config/elasticsearch.yml
,追加如下代码:
#开启http层加密
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12
Elasticsearch与Kibana 加密连接
使用前面生成文件:elastic-certificates.p12
,分解为私匙、公共证书和CA证书
# Private Key 私钥,回车即可
openssl pkcs12 -in elastic-certificates.p12 -nocerts -nodes > client.key
# Public Certificate 公共证书,回车即可
openssl pkcs12 -in elastic-certificates.p12 -clcerts -nokeys > client.cer
# CA Certificate 签署公共证书的CA,回车即可
openssl pkcs12 -in elastic-certificates.p12 -cacerts -nokeys -chain > client-ca.cer
Kibana根目录下创建文件夹:config/certs
,将文件client.cer、client.key、client-ca.cer
复制到该目录。
编辑Kibana配置文件vi config/kibana.yml
,添加如下配置:
# 更新Elasticsearch连接地址
elasticsearch.hosts: ["https://192.168.10.200:9200"]
# ssl加密
elasticsearch.ssl.certificate: config/certs/client.cer
elasticsearch.ssl.key: config/certs/client.key
elasticsearch.ssl.certificateAuthorities: [ "config/certs/client-ca.cer" ]
elasticsearch.ssl.verificationMode: certificate
重启kibana登录后请求Elasticsearch确认是否可操作。
Kibana 开启https
复用Elasticsearch数字证书,编辑Kibana配置文件vi config/kibana.yml
,增加如下内容:
server.ssl.enabled: true
server.ssl.certificate: config/certs/client.cer
server.ssl.key: config/certs/client.key
重启kibana服务,即可通过https://localhost:5601访问kibana UI进行操作。
建议
- https建议仅开启Kibana的https访问即可,Elasticsearch服务和节点间通信不建议开启https功能,功能测试中,出现过由于ssl加密,Elasticsearch无法启动问题。
总结
- 安装配置过程繁琐,按顺序安装一遍有利于理解Elasticsearch+Kibana原理,最新版8刚发布不久,简化了安装过程,但发行时间较短,存在bug,不建议使用。
更多推荐
所有评论(0)