Skip to content

环境安装

课程中使用的版本 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

bash
# 搜索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

bash
$ 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、下载地址

2.2、下载解压

bash
# 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.appversion > 7.0,自带的java环境

2.4、启动单节点服务

bash
# 进入到命令所在目录
cd elasticsearch-7.14.0\bin

# 启动
./elasticsearch

# 后台启动
./elasticsearch -d
-windowsLinuxMacOS
命令行./elasticsearch.bash./elasticsearch./elasticsearch
图形界面双击 elasticsearch.bash-双击 elasticsearch
shellstart elasticsearch.bash-open elasticsearch

启动验证:http://localhost:9200

2.5、启动多个节点

1、本机单个项目启动多个节点

bash
# 启动第一个节点 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

bash
# start.command
open node1/bin/elasticsearch
open node2/bin/elasticsearch
open node3/bin/elasticsearch

windows

bash
# start.bat
start D:\node1\bin\elasticsearch.bat
start D:\node2\bin\elasticsearch.bat
start D:\node3\bin\elasticsearch.bat

3、安装Kibana

3.1、下载

bash
# 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、解压启动

bash
# 解压
tar -xvf kibana-7.14.0-darwin-x86_64.tar.gz

# 进入执行文件目录
cd kibana-7.14.0-darwin-x86_64/bin

# 启动
./kibana

需要提前开启 elasticsearch

验证地址:http://localhost:5601

3.3、关闭kibana

bash
# 查找进程id 3种方式
ps -ef| grep 5601

ps -ef| grep kibana

lsof -i:5601

# 关闭进程
kill -9 <pid>

3.4、修改配置

config/kibana.yml

bash
# 默认页面修改为:开发工具
# 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版本

bash
# 查看版本
node -v
v16.14.0

4.2、下载 elasticsearch-head

clone 代码

bash
git clone git://github.com/mobz/elasticsearch-head.git

cd elasticsearch-head

或者下载elasticsearch-head-master.zip 压缩包

bash
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

修改配置(可以略过)

js
// Gruntfile.js
module.exports = function(grunt) {
    grunt.initConfig({
        connect: {
            server: {
                options: {
                    // 添加配置项,可以外网访问
                    hostname: '*',
                    
                    port: 9100,
                    base: '.',
                    keepalive: true
                }
            }
        }
    });
};
bash
# 安装依赖
pnpm i

# 启动服务, 需要提前启动 elasticsearch
npm run start

查看地址:http://localhost:9100/

4.3、问题:

如果无法发现ES节点,尝试修改ES配置文件,允许跨域

yaml
# config/elasticsearch.yml
# 允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"

4.4、从Chrome应用商店安装

备用地址:https://github.com/mouday/ElasticSearch-Head.crx

集群健康检查

  • green 集群健康
  • yellow 至少一个数据可用
  • red 数据不完整,集群不可用

查看健康值

bash
# 返回简要
GET _cat/health

# 返回带有标题的数据
GET _cat/health?v

# 返回json数据
GET _cluster/health

5、不同编程语言的客户端

https://www.elastic.co/guide/en/elasticsearch/client/index.html

bash
# php > 7.1
composer require "elasticsearch/elasticsearch" "~7.0"

文档: https://www.elastic.co/guide/en/elasticsearch/client/php-api/7.17/index.html

配置Nginx代理转发

bash
# 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;
  }
}
bash
# 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;
    }
}

https://www.bilibili.com/video/BV1LY4y167n5?p=5&spm_id_from=pageDriver&vd_source=efbb4dc944fa761b6e016ce2ca5933da