环境安装
课程中使用的版本 7.10.0(本例使用7.14.0)
- 安装Java环境
- 安装ElasticSearch
- 安装Kibana
- 安装ElasticSearch-Head插件
技巧:MacOS下,拖拽文件或者文件夹到终端,会生成文件路径
1、安装Java环境
兼容性查看 https://www.elastic.co/cn/support/matrix
- JDK兼容性:JDK 1.8
- 操作系统兼容性:CentOS7
- Elastic技术栈兼容性
1.1、Linux安装JDK
# 搜索jdk
yum search jdk
# 安装
yum install -y java-1.8.0-openjdk.x86_64
# 验证
java -version
openjdk version "1.8.0_332"
OpenJDK Runtime Environment (build 1.8.0_332-b09)
OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode)
1.2、MacOS安装JDK
$ java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)
2、安装ElasticSearch
2.1、下载地址
官网下载:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
elasticsearch中文社区:https://elasticsearch.cn/download/
华为云镜像elasticsearch:https://repo.huaweicloud.com/elasticsearch/
华为云镜像kibana: https://repo.huaweicloud.com/kibana/
2.2、下载解压
# elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz
# 国内镜像 MacOS
wget http://dl.elasticsearch.cn/elasticsearch/elasticsearch-7.14.0-darwin-x86_64.tar.gz
# 国内镜像 Linux
wget http://dl.elasticsearch.cn/elasticsearch/elasticsearch-7.14.0-linux-x86_64.tar.gz
# 解压
tar -xvf elasticsearch-7.14.0-linux-x86_64.tar.gz
2.3、目录结构
目录名称 | 描述 |
---|---|
bin | 可执行脚本文件 |
config | 配置文件 |
lib | 依赖库 |
data | 默认的数据存放目录,生产环境必须修改 |
logs | 默认的日志文件存放目录,生产环境必须修改 |
modules | 包含所有模块 |
plugins | 插件目录 |
jdk/jdk.app | version > 7.0,自带的java环境 |
2.4、启动单节点服务
# 进入到命令所在目录
cd elasticsearch-7.14.0\bin
# 启动
./elasticsearch
# 后台启动
./elasticsearch -d
- | windows | Linux | MacOS |
---|---|---|---|
命令行 | ./elasticsearch.bash | ./elasticsearch | ./elasticsearch |
图形界面 | 双击 elasticsearch.bash | - | 双击 elasticsearch |
shell | start elasticsearch.bash | - | open elasticsearch |
2.5、启动多个节点
1、本机单个项目启动多个节点
# 启动第一个节点 http://localhost:9200/
./elasticsearch -E path.data=data1 -E path.logs=log1 -E node.name=node1 -E cluster.name=mycluster
# 启动第二个节点 http://127.0.0.1:9201/
./elasticsearch -E path.data=data2 -E path.logs=log2 -E node.name=node2 -E cluster.name=mycluster
2、本机多个项目启动多个节点
MacOS
# start.command
open node1/bin/elasticsearch
open node2/bin/elasticsearch
open node3/bin/elasticsearch
windows
# start.bat
start D:\node1\bin\elasticsearch.bat
start D:\node2\bin\elasticsearch.bat
start D:\node3\bin\elasticsearch.bat
3、安装Kibana
3.1、下载
# kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.14.0-linux-x86_64.tar.gz
# 国内镜像 MacOS
wget http://dl.elasticsearch.cn/kibana/kibana-7.14.0-darwin-x86_64.tar.gz
# 国内镜像 Linux
wget http://dl.elasticsearch.cn/kibana/kibana-7.14.0-linux-x86_64.tar.gz
3.2、解压启动
# 解压
tar -xvf kibana-7.14.0-darwin-x86_64.tar.gz
# 进入执行文件目录
cd kibana-7.14.0-darwin-x86_64/bin
# 启动
./kibana
需要提前开启 elasticsearch
3.3、关闭kibana
# 查找进程id 3种方式
ps -ef| grep 5601
ps -ef| grep kibana
lsof -i:5601
# 关闭进程
kill -9 <pid>
3.4、修改配置
config/kibana.yml
# 默认页面修改为:开发工具
# The default application to load.
#kibana.defaultAppId: "home"
kibana.defaultAppId: "dev_tools"
# 显示语言改为:中文
# Specifies locale to be used for all localizable strings, dates and number formats.
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
#i18n.locale: "en"
i18n.locale: "zh-CN"
3.5、快捷键
快捷键 | 功能 |
---|---|
提交请求 | Ctrl/Cmd + Enter |
自动缩进 | Ctrl/Cmd + I |
3.6、问题
Kibana server is not ready yet
原因 | 解决办法 |
---|---|
Kibana和ElasticSearch的版本不兼容 | 保持版本一致 |
Kibana中配置的elasticSearch.hosts与ElasticSearch的服务地址不同 | 修改kibana.yml中的配置 |
ElasticSearch中禁止跨域访问 | elasticSearch.yml配置允许跨域 |
服务器中开启了防火墙 | 关闭防火墙或修改服务器的安全策略 |
ElasticSearch所在磁盘剩余空间不足90% | 清理磁盘空间,配置监控的报警 |
4、安装ElasticSearch-Head插件
4.1、安装Node.js
下载地址:https://nodejs.org/zh-cn/download/
推荐使用: nvm 来管理node.js版本
# 查看版本
node -v
v16.14.0
4.2、下载 elasticsearch-head
clone 代码
git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
或者下载elasticsearch-head-master.zip 压缩包
wget https://github.com/mobz/elasticsearch-head/archive/refs/heads/master.zip -O elasticsearch-head-master.zip
# 解压
unzip elasticsearch-head-master.zip
cd elasticsearch-head-master
修改配置(可以略过)
// Gruntfile.js
module.exports = function(grunt) {
grunt.initConfig({
connect: {
server: {
options: {
// 添加配置项,可以外网访问
hostname: '*',
port: 9100,
base: '.',
keepalive: true
}
}
}
});
};
# 安装依赖
pnpm i
# 启动服务, 需要提前启动 elasticsearch
npm run start
4.3、问题:
如果无法发现ES节点,尝试修改ES配置文件,允许跨域
# config/elasticsearch.yml
# 允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
4.4、从Chrome应用商店安装
ElasticSearch Head 0.1.4: elasticsearch-head-chrome
ElasticSearch Head v0.1.5: https://crxdl.com/ 搜索:ffmkiejjmecolpfloofpjologoblkegm
备用地址:https://github.com/mouday/ElasticSearch-Head.crx
集群健康检查
- green 集群健康
- yellow 至少一个数据可用
- red 数据不完整,集群不可用
查看健康值
# 返回简要
GET _cat/health
# 返回带有标题的数据
GET _cat/health?v
# 返回json数据
GET _cluster/health
5、不同编程语言的客户端
https://www.elastic.co/guide/en/elasticsearch/client/index.html
# php > 7.1
composer require "elasticsearch/elasticsearch" "~7.0"
文档: https://www.elastic.co/guide/en/elasticsearch/client/php-api/7.17/index.html
配置Nginx代理转发
# kibana.conf
server {
listen 8002;
server_name localhost;
location / {
# 设置 auth
auth_basic "login auth";
auth_basic_user_file /usr/local/nginx/.htpasswd;
proxy_pass http://127.0.0.1:5601;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# elasticsearch.conf
server {
listen 8001;
server_name localhost;
location / {
# 设置 auth
auth_basic "login auth";
auth_basic_user_file /usr/local/nginx/.htpasswd;
proxy_pass http://127.0.0.1:9200;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}