ElasticSearch(二)【Kibana】

二、Kibana


上一篇文章ElasticSearch - 简介

简介

Kibana(Navicat)是一个针对Elasticsearch(MySQL)开源分析及可视化平台,使用Kibana可以查询、查看并与存储在ES索引的数据进行交互操作,使用Kibana能执行高级的 数据分析,并能以图表、表格和地图的形式查看数据

2.1 基础安装

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进行安装

2.2 docker安装kibana

# 先运行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/

在这里插入图片描述

运行测试

在这里插入图片描述

在这里插入图片描述

2.3 基于docker容器数据卷方式配置

### 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容器,再通过数据卷方式启动

2.4 compose方式安装(运行)

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 - 索引、映射、文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naijia_OvO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值