Elasticsearch查看集群信息,设置ES密码,Kibana部署
- 查看集群信息
- 查看节点信息
- 查看集群健康状态
- 查看分片信息
- 查看其他集群信息
- Kibana部署安装
- 设置ES密码
查看集群信息
查看节点信息
curl http://127.0.0.1:9200/_cat/nodes?v
参数说明:
- ip:节点ip
- heap.percent:堆内存使用百分比
- ram.percent: 运行内存使用百分比
- cpu:cpu使用百分比
- load_1m, load_5m, load_15m:系统负载的平均值,分别代表过去1分钟、5分钟、15分钟的平均负载。较低的数值(如这里的2.86, 1.87, 1.26)通常表明系统负载较轻。
- node.role:节点承担的角色,由一系列字符表示。在这个例子中,"cdhilmrstw"代表该节点具有以下角色:
- c: coordinator node(协调节点)
- d: data node(数据节点)
- h: ingest node(摄取节点)
- i: ingest node(摄取节点,可能是重复标注或是版本差异)
- l: ml node(机器学习节点)
- m: master eligible node(可成为主节点)
- r: remote cluster client node(远程集群客户端节点)
- s: search routing only node(仅搜索路由节点)
- t: transform node(变换节点)
- w: has tribe node plugin installed(安装了tribe节点插件)
- master:带* 表明该节点是主节点,带-表明该节点是从节点
- name:节点名称
查看集群健康状态
curl http://127.0.0.1:9200/_cat/health?v
参数说明
- epoch:时间戳(s),这里是1715048846秒
- timestamp:人类可读的时间戳
- cluster:集群的名称
- status:集群的整体健康状况,
- green:所有主分片和副本分片都正常分配
- yellow: 所有主分片正常分配,但至少有一个副本分片未被分配)
- red:某些主分片未被分配
- node.total:节点的总数
- node.data:数据节点数量
- shards:分片(包括主分片和副本分片)的总数
- pri:主分片的总数
- relo, init, unassign:分别代表重新分配中、初始化中、未分配的分片数
- pending_tasks:待处理的任务数,比如索引操作、设置改变等,这里也是0,表明没有积压的任务。
- max_task_wait_time:最长等待任务完成的时间(毫秒)
- active_shards_percent:活跃分片(即正在工作的分片,包括主分片和已分配的副本分片)占应有总分片数的百分比
因为我创建的是一个新集群,所以这里显示分片数是0
使用 命令 curl -X PUT "127.0.0.1:9200/my_index
创建一个索引后再查看
查看分片信息
curl http://127.0.0.1:9200/_cat/shards?v
参数说明:
- index:索引的名称
- shard:分片的编号。ES 7.x默认一个主分片一个副分片
- prirep:表示分片是主分片(p)还是副本分片(r)。
- state:分片的状态。
- STARTED:表示分片已经初始化并可以接受请求
- RELOCATING:正在迁移
- INITIALIZING:正在初始化
- UNASSIGNED:未分配
- docs:该分片中存储的文档数量。
- store:分片数据占用的存储空间大小。即208字节
- ip:持有该分片的节点的IP地址
- node:节点的名称
查看其他集群信息
ES 还提供了很多查看信息的API,例如索引,线程池等。
可以通过下面的命令查看,具体有哪些API
curl http://127.0.0.1:9200/_cat/
上图命令是 ES内置查看集群信息的API,这里不一一赘述
Kibana部署安装
Kibana 是 ES官方提供的操作ES的控制面板,内含数据可视化,监控,请求工具等强大的功能。
注意:Kibana的版本号要与ES版本号保持一致,否则可能出现兼容性问题
官网下载:https://www.elastic.co/cn/downloads/past-releases/kibana-7-10-2
解压安装
tar -zxvf kibana-7.10.2-linux-x86_64.tar.gz
修改配置 config/kibana.yml
# 服务端口
server.port: 5601
# 服务主机名 0.0.0.0 代表允许任何ip访问
server.host: "0.0.0.0"
# 国际化
i18n.locale: "zh-CN"
# ES服务器主机地址http://ip:9200
elasticsearch.hosts: ["http://127.0.0.1:9200","http://127.0.0.1:9201","http://127.0.0.1:9202"]
启动 在bin/目录下
# 前台启动
./kibana
#后台启动
nohup ./kibana > /dev/null 2>&1 &
访问 http://IP:5601
自此Kibana启动成功
设置ES密码
创建CA证书
# 执行下面的命令,根据提示信息创建CA证书
# 创建时需要设置密码和文件名,可以直接回车
./elasticsearch-certutil ca
./elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 生成的文件位于ES目录下(与bin目录平级)
# 如果在生成证书时设置了密码,还需要执行下面的步骤 参考:https://www.cnblogs.com/djd66/p/16828001.html
./elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
./elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
./elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password
在config目录下创建certs目录,并将生成的p12文件复制到certs目录
在任意节点生成证书后,将证书拷贝到其他节点(证书一定要一样)
然后修改所有节点的es配置文件 config/elasticsearch.yml
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
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-setup-passwords interactive
如果之前设置过密码,会执行失败,处理方法见这篇博客
https://blog.csdn.net/weixin_42367537/article/details/131490841
ES 本身自带一系列用户名,需要按照提示逐个设置密码
此时密码设置完成,使用命令查看集群信息
curl -u kibana_system:es@123 http://127.0.0.1:9200/_cat/health?v
其中 -u ${username} : ${password} 指定刚刚设置的用户名和密码
ES设置密码后,之前部署的Kibana自然连接不上ES了
需要给Kibana 追加 ES的密码配置
找到配置文件 config/kibana.yml
追加配置
# kibana内部访问es账号密码
elasticsearch.username: "kibana_system"
elasticsearch.password: "es@!123"
重启Kibana
重新访问 http://IP:5601
需要输入ES账号密码才能进入
注意:这个ES用户名密码不是刚刚 kibana 配置的用户名密码,是ES的任意一个用户名密码