1. 前言
Head及Kibana介绍及区别
head是一个提供可视化web界面用以操作es。可在head界面编写RESTful接口风格的请求进行es的CRUD,及索引的相关操作。
kibana同样是一个提供可视化web界面用以操作es。并且也是遵循RESTful风格,只不过kibana提供的web界面更友好,查询功能更多,缺点是不支持可视化操作索引。
所以一般用head操作索引,用kibana查看文档数据等。
搭建准备
Head跟Kibana都需要nodejs环境,所以本文安装示例是基于已有nodejs环境的前提下。
如未安装可参考blog进行安装:Windows / Linux安装Node.js环境
2. 资料下载
CSDN下载
- elasticsearch-head-5.0.0.zip
- elasticsearch-head-5.0.0.tar.gz
- kibana-7.14.2-windows-x86_64.zip
- kibana-7.14.2-linux-x86_64.tar.gz
GitHub下载
- elasticsearch-head-5.0.0.zip
- elasticsearch-head-5.0.0.tar.gz
- kibana-7.14.2-windows-x86_64.zip
- kibana-7.14.2-linux-x86_64.tar.gz
3. Head安装
Windows
-
解压并进入目录
-
全局安装grunt:npm install -g grunt-cli
-
安装依赖:npm install
此处提示含有一些漏洞问题等,如提示其他错误则重试npm install,勿使用cnpm
-
根据提示修复漏洞:npm audit fix --force
-
运行head:grunt server
url:http://localhost:9100/
出现下图表示成功:↓
-
es配置允许跨域
http.cors.enabled: true http.cors.allow-origin: "*"
-
启动es,测试连接
Linux
-
下载/上传head压缩包
[root@jszwjs56ji /]# mkdir /data/eshead && cd /data/eshead # 下载 [root@jszwjs56ji eshead]# wget https://github.com/mobz/elasticsearch-head/archive/refs/tags/v5.0.0.tar.gz # 解压 [root@jszwjs56ji eshead]# tar -zxvf v5.0.0.tar.gz elasticsearch-head-5.0.0
-
安装grunt
[root@jszwjs56ji elasticsearch-head-5.0.0]# npm install -g grunt-cli added 58 packages, and audited 59 packages in 3s 3 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
-
安装依赖,如网络问题多install几次,勿使用cnpm
[root@jszwjs56ji eshead]# cd elasticsearch-head-5.0.0/ # 安装依赖 [root@jszwjs56ji elasticsearch-head-5.0.0]# npm install removed 367 packages, and audited 1166 packages in 12s 8 packages are looking for funding run `npm fund` for details 40 vulnerabilities (4 low, 3 moderate, 21 high, 12 critical) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force Run `npm audit` for details.
-
修复漏洞
[root@jszwjs56ji elasticsearch-head-5.0.0]# npm audit fix --force
-
修改head默认连接es地址
[root@jszwjs56ji elasticsearch-head-5.0.0]# vim _site/app.js # 4354行处 # "http://localhost:9200" 修改为"http://服务器公网ip:9200"
-
运行head
url:http://ip:9100/# 启动命令:grunt server &、npm run start & [root@jszwjs56ji elasticsearch-head-5.0.0]# grunt server & Running "connect:server" (connect) task Waiting forever... Started connect web server on http://localhost:9100
-
配置es允许跨域访问
[root@jszwjs56ji elasticsearch-head-5.0.0]# vim /data/elasticsearch/elasticsearch-7.14.2/config/elasticsearch.yml # 停止es [root@jszwjs56ji elasticsearch-head-5.0.0]# ps -ef|grep elastic root 31017 23262 0 16:16 pts/1 00:00:00 grep --color=auto elastic esuser 32230 1 0 11:21 ? 00:01:32 /data/jdk1.8.0_201/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dio.netty.allocator.numDirectArenas=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.locale.providers=SPI,JRE -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.io.tmpdir=/tmp/elasticsearch-56158279903417363 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=data -XX:ErrorFile=logs/hs_err_pid%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Xms1024m -Xmx1024m -XX:MaxDirectMemorySize=536870912 -Des.path.home=/data/elasticsearch/elasticsearch-7.14.2 -Des.path.conf=/data/elasticsearch/elasticsearch-7.14.2/config -Des.distribution.flavor=default -Des.distribution.type=tar -Des.bundled_jdk=true -cp /data/elasticsearch/elasticsearch-7.14.2/lib/* org.elasticsearch.bootstrap.Elasticsearch -d esuser 32271 32230 0 11:21 ? 00:00:00 /data/elasticsearch/elasticsearch-7.14.2/modules/x-pack-ml/platform/linux-x86_64/bin/controller [root@jszwjs56ji elasticsearch-head-5.0.0]# kill -9 32230 # 切换es用户 [root@jszwjs56ji elasticsearch-head-5.0.0]# su esuser # 启动 [esuser@jszwjs56ji elasticsearch-head-5.0.0]# /data/elasticsearch/elasticsearch-7.14.2/bin/elasticsearch -d
4. Kibana安装
Windows
- 解压并进入目录
- 双击kibana一键bat脚本
访问url:http://localhost:5601/
打开左侧Dev Tools
- 汉化
修改kibana.yml文件,最后一行添加:i18n.locale: “zh-CN”
- 重启kibana,查看汉化效果
Linux
-
下载/上传kibana压缩包
[root@jszwjs56ji /]# mkdir /data/eskibana && cd /data/eskibana # 下载 [root@jszwjs56ji eskibana]# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.2-linux-x86_64.tar.gz # 解压 [root@jszwjs56ji eskibana]# tar -zxvf kibana-7.14.2-linux-x86_64.tar.gz [root@jszwjs56ji eskibana]# cd kibana-7.14.2-linux-x86_64/
-
配置汉化及es节点信息:vim config/kibana.yml
# 汉化 i18n.locale: "zh-CN" # 单机es # 允许访问的ip;0.0.0.0:任何人(生产谨慎配置此ip) server.host: "0.0.0.0" # 访问kibana的公开url server.publicBaseUrl: "http://localhost:5601" elasticsearch.hosts: ["http://localhost:9200"] # 集群es # 允许访问的ip;0.0.0.0:任何人(生产谨慎配置此ip) server.host: "0.0.0.0" # 访问kibana的公开url server.publicBaseUrl: "http://10.2.1.197:5601" # es集群地址 elasticsearch.hosts: ["http://10.2.1.197:9200", "http://10.2.1.122:9200", "http://10.2.1.237:9200"] # 无ssl证书,可选值:full,none,certificate elasticsearch.ssl.verificationMode: none # es搜索超时时间 elasticsearch.requestTimeout: 6000
-
创建esuser用户(kibana不允许以root用户启动)
# 添加用户 [root@jszwjs56ji kibana-7.14.2-linux-x86_64]# sudo adduser esuser # 创建用户密码(需输入两次密码) [root@jszwjs56ji kibana-7.14.2-linux-x86_64]# sudo passwd esuser Changing password for user esuser. New password: BAD PASSWORD: it does not contain enough DIFFERENT characters BAD PASSWORD: is too simple Retype new password: passwd: all authentication tokens updated successfully. # 赋予目录权限 [root@jszwjs56ji kibana-7.14.2-linux-x86_64]# sudo chown -R esuser ../kibana-7.14.2-linux-x86_64 # 切换到esuser用户 [root@jszwjs56ji kibana-7.14.2-linux-x86_64]# su esuser # 普通启动 [esuser@jszwjs56ji kibana-7.14.2-linux-x86_64]$ ./bin/kibana # 以守护进程方式启动 [esuser@jszwjs56ji kibana-7.14.2-linux-x86_64]$ nohup ./bin/kibana & # 查看日志 [esuser@jszwjs56ji kibana-7.14.2-linux-x86_64]$ tail -f nohup.out