上一篇文章《ElasticSearch - 简介》
简介
Kibana(Navicat)是一个针对Elasticsearch(MySQL)的开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作,使用Kibana能执行高级的 数据分析,并能以图表、表格和地图的形式查看数据
Kibana官网:https://www.elastic.co/cn/downloads/kibana
查看以前版本,注意下载的版本需要跟ES的版本对应
### 1.下载完压缩包之后使用 xftp 上传到服务器中
### 2.解压下载的kibana安装包
tar -zxvf kibana-7.14.0-linux-x86_64.tar.gz
### 3.编辑kibana配置文件
vim /[kibana安装目录]/config/kibana.yml
### 4.修改如下配置内容
# 开启外部访问
server.host: "0.0.0.0"
# publicBaseUrl
server.publicBaseUrl: "http://127.0.0.1:5601"
# es访问地址
elasticsearch.hosts: ["http://127.0.0.1:9200"]
# es账号
elasticsearch.username: "elastic"
# es密码
elasticsearch.password: "123456"
### 5.启动kibana,在kibana的/bin目录下(注意,需要确保ES是开启的状态)
./bin/kibana
### 6.开启kibana56
firewall-cmd --zone=public --add-port=5601/tcp --permanent
### 7.访问kibana的web界面
http://192.168.159.100:5601/ # kibana默认端口为5601
报错
log [11:13:23.080] [error][savedobjects-service] [.kibana] [cluster_block_exception]: index [.kibana_7.14.0_001] blocked by: [TOO_MANY_REQUESTS/12/disk usage exceeded flood-stage watermark, index has read-only-allow-delete block];
可能原因一:
Elasticsearch基于磁盘的碎片分配,存储空间不足时,kibana自动将其配置更改为只读模式。默认情况下,Elasticsearch的决定基于可用磁盘空间的百分比,因此在大磁盘上,即使您有许多GB的可用空间,也可能发生这种情况
出现该错误的原因是磁盘空间不足85%时,默认值为85%,这意味着Elasticsearch不会将碎片分配给使用了超过85%磁盘的节点。所有会报上述错误
解决方法
将kibana存储在磁盘上有比较充足的空间
可能原因二:ES中携带了kibana的索引,需要删除掉
解决方法
删除ES中.kibana索引
# 在启动了ES条件下,在终端输出
curl -u elastic:123456 -XDELETE http://localhost:9200/.kibana*
如果不加星号会出现下面的问题
{“error”:{“root_cause”:[{“type”:“illegal_argument_exception”,“reason”:“The provided expression [.kibana] matches an alias, specify the corresponding concrete indices instead.”}],“type”:“illegal_argument_exception”,“reason”:“The provided expression [.kibana] matches an alias, specify the corresponding concrete indices instead.”},“status”:400}
是因为删除索引kibana只是个别名,所以需要加*
当然,我自己也失败了,所以使用docker进行安装
# 先运行docker
systemctl start docker
### 1.拉取kibana镜像
docker pull kibana:7.14.0
### 2.运行kubana
docker run -d --name kibana -p 5601:5601 kibana:7.14.0
### 修改kibana.yml文件内容
# 进入容器内部
[totoro@vinjcent /]$ sudo docker exec -it 8d23198cb6f0 bash
# 进入后,退出时后台运行
Ctrl + P + Q
# 进入容器内部,修改config目录下的kibana.yml文件,修改ES服务运行ip与端口,如下所示
vi ./config/kibana.yml
# 修改完之后,需要停止运行并重启kibana容器
exit # 退出命令
docker restart [kibana容器id]
本机访问与运行测试(需要在ES服务运行之后,启动Kibana)
访问测试:http://ip:5601/
运行测试
### 4.基于数据卷加载配置文件方式运行
- 从容器复制kibana配置文件出来
- 修改配置文件为对应ES服务器地址
- 通过数据卷加载配置文件方式启动
# 从容器复制kibana配置文件出来
docker cp [容器id]:/usr/share/kibana/config/kibana.yml ./[当前宿主机的路径]
# 在宿主机上修改复制之后的kibana.yml文件,修改ES服务地址
elasticsearch.hosts: ["http://192.168.159.100:9200"]
# 通过数据卷加载配置文件方式启动
docker run -d -v ./[宿主机的路径]/kibana.yml:/usr/share/kibana/config/kibana.yml --name kibana -p 5601:5601 kibana:7.14.0
# 【注意】需要删除原来的kibana容器,再通过数据卷方式启动
docker环境、docker-compse环境
# 1.首先要删除ES与Kibana容器
docker rm -f [ES容器id] [Kibana容器id]
# 2.创建一个es-kibana容器目录
mkdir es-kibana
# 3.在该目录下编辑一个docker-compose.yml文件
vim docker-compose.yml
# 4.在该目录下编辑一个kibana.yml文件
vim kibana.yml
docker-compose.yml
############################################### docker-compose.yml ###############################################
version: "3.8"
volumes:
data:
config:
plugin:
networks:
es:
services:
elasticsearch:
image: elasticsearch:7.14.0
ports:
- "9200:9200"
- "9300:9300"
networks:
- "es"
environment:
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- data:/usr/share/elasticsearch/data
- config:/usr/share/elasticsearch/config
- plugin:/usr/share/elasticsearch/plugins
kibana:
image: kibana:7.14.0
ports:
- "5601:5601"
networks:
- "es"
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
################################################## 解析文件 ##################################################
version: "3.8"
volumes:
data:
config:
plugin:
networks: # 声明使用的网络,代表两个服务共同使用一个网络
es:
services:
elasticsearch: # ES服务名称
image: elasticsearch:7.14.0 # 镜像与版本号
ports: # 本地与容器进行端口映射
- "9200:9200"
- "9300:9300"
networks:
- "es"
environment: # 环境为单机模式、并设置vm的启动内存大小
- "discovery.type=single-node"
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes: # 数据卷挂载
- data:/usr/share/elasticsearch/data
- config:/usr/share/elasticsearch/config
- plugin:/usr/share/elasticsearch/plugins
kibana:
image: kibana:7.14.0
ports:
- "5601:5601"
networks:
- "es"
volumes:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
kibana.yml
############################################### kibana.yml ###############################################
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: ["http://elasticsearch:9200"]
monitoring.ui.container.elasticsearch.enabled: true
# 【注意】配置ES服务地址时,是根据docker-compose中的服务名称进行访问的,那么下次ES配置地址改变时,服务名称不变,还能够正常运行
最后在有docker-compose.yml的文件下运行
# 启动ES、Kibana两个服务
docker-compose up -d
# 查看运行中的容器
docker ps
# 查看运行中的容器日志
docker logs -f [容器id]
# 在./es-kibana中关闭我们运行的容器
docker-compose down
下一篇文章《ElasticSearch - 索引、映射、文档》