ElasticSearch简称ES,可以理解为提供分词快速检索的分布式数据库,和传统数据库不同,传统数据库只能模糊匹配关键字,比如搜索:java架构,传统数据库只能匹配字段里面包含:java架构的数据,但是ES会先拆成java,架构,ES会将含有这2个关键词的数据都将检索出来。

Kibana可以理解为传统数据库的客户端,比如可以连各种数据库的DbVisualizer。

Elasticsearch-analysis-ik 应该是中国人开发的中文分词器,默认的英文分词器是会将每个词都检索的,但是中文语境,不需要拆的那么细。

本文主要介绍这3个软件的安装。后续将介绍Springboot如何和ElasticSearch集成。

环境搭建了两天,各种报错。还好通过网上查资料都一一解决了。本文记录一下,供大家参考。

一.ElasticSearch安装

7.3.0版本自带jdk11,如果安装了jdk1.8,启动的时候报个错误没有安装jdk11,没有关系的。

下载地址

Past Releases of Elastic Stack Software | Elastic

或者

wget https://mirrors.huaweicloud.com/elasticsearch/7.3.0/elasticsearch-7.3.0-linux-x86_64.tar.gz

因为elasticsearch不能使用root账号启动,

需要创建一个新用户
sudo adduser es,修改 es 用户的密码:sudo passwd 123456

cd /usr/local
mkdir elasticsearch
cd elasticsearch
下载安装包到当前文件夹
wget https://mirrors.huaweicloud.com/elasticsearch/7.3.0/elasticsearch-7.3.0-linux-x86_64.tar.gz

解压缩
tar -xzf elasticsearch-7.3.0-linux-x86_64.tar.gz
# 将目录复制三份,作为三个节点,后面配置 ES 集群时,对应了三个 ES 实例
cp -R elasticsearch-7.3.0 es-7.3.0-node-1
cp -R elasticsearch-7.3.0 es-7.3.0-node-2
mv elasticsearch-7.3.0 es-7.3.0-node-3
# 因为以 root 用户启动不了 ES
chown -R es es-7.3.0*

集群配置

vi /usr/local/elasticsearch/es-7.3.0-node-1/config/elasticsearch.yml

#es-7.3.0-node-1
cluster.name: search-7.3.2
node.name: node-1
node.master: true
node.data: false
node.ingest: false
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["118.118.133.73:9300","118.118.133.73:9301","118.118.133.73:9302"]
cluster.initial_master_nodes: ["node-1"]
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

vi /usr/local/elasticsearch/es-7.3.0-node-2/config/elasticsearch.yml

#es-7.3.0-node-2
cluster.name: search-7.3.2
node.name: node-2
node.master: true
node.data: true
node.ingest: false
network.host: 0.0.0.0
http.port: 9201
transport.port: 9301
discovery.seed_hosts: ["118.118.133.73:9300","118.118.133.73:9301","118.118.133.73:9302"]
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

vi /usr/local/elasticsearch/es-7.3.0-node-3/config/elasticsearch.yml

# es-7.3.0-node-3
cluster.name: search-7.3.2
node.name: node-3
node.master: true
node.data: true
node.ingest: false
network.host: 0.0.0.0
http.port: 9202
transport.port: 9302
discovery.seed_hosts: ["118.118.133.73:9300","118.118.133.73:9301","118.118.133.73:9302"]
bootstrap.system_call_filter: false

单机配置

如果单机测试这么写(节点名称和集群名称一样):

cluster.name: es-7.3.2
node.name: es-7.3.2
node.master: true
node.data: false
node.ingest: false
network.host: 0.0.0.0
http.port: 9200
transport.port: 9300
discovery.seed_hosts: ["118.118.133.73:9300"]
cluster.initial_master_nodes: ["es-7.3.2"]
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

访问:

http://118.118.133.73:9200/

能正常返回数据表示部署正常

二.IK分词器安装

https://github.com/medcl/elasticsearch-analysis-ik

安装的时候需要和elasticsearch版本保持一致,也需要7.3.0的

每个节点的es plugins下面新建一个ik文件夹,然后将对应的ik下载后解压到当前文件夹

/usr/local/elasticsearch/es-7.3.0-node-1/plugins/ik

/usr/local/elasticsearch/es-7.3.0-node-2/plugins/ik

/usr/local/elasticsearch/es-7.3.0-node-3/plugins/ik

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.3.0/elasticsearch-analysis-ik-7.3.0.zip

unzip elasticsearch-analysis-ik-7.3.0.zip

后台启动与关停

启动:
./elasticsearch -p /tmp/elasticsearch-pid -d
查询进程号
cat /tmp/elasticsearch-pid && echo

或者

ps -ef|grep elasticsearch
关闭当前进程
kill -9 查询出来的pid

启动脚本startup.sh

 #!/bin/bash
./es-7.3.0-node-1/bin/elasticsearch -p /tmp/elasticsearch1-pid -d
./es-7.3.0-node-2/bin/elasticsearch -p /tmp/elasticsearch2-pid -d
./es-7.3.0-node-3/bin/elasticsearch -p /tmp/elasticsearch3-pid -d

关停脚本stop.sh

 #!/bin/bash
jarname='elasticsearch'
pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'`
echo $pid
kill -9 $pid

查看集群

​​​​​​http://118.118.133.73:9200/_cat/nodes

http://118.118.133.73:9200  会显示

{
  "name" : "node-1",
  "cluster_name" : "search-7.3.2",
  "cluster_uuid" : "sniRZF0-Qwi3J-I9U3rc_g",
  "version" : {
    "number" : "7.3.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "de777fa",
    "build_date" : "2019-07-24T18:30:11.767338Z",
    "build_snapshot" : false,
    "lucene_version" : "8.1.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}
其他两个9201,9202一样显示正常就说明部署好了,

一般都会出现各种报错。

各种报错,我这里也做了总结,供参考:

ElasticSearch安装过程异常解决

异常1

max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

在 /etc/security/limits.conf 文件末尾添加

* soft nofile 65535

* hard nofile 65535

异常2

max number of threads [3795] for user [elastic] is too low, increase to at least [4096]

在 /etc/security/limits.conf 文件末尾添加

* soft nproc  4096

* hard nproc  4096

异常3

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

在 /etc/sysctl.conf文件末尾添加

vm.max_map_count=262144

异常4

the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

添加elasticsearch.yml配置

cluster.initial_master_nodes: ["node-1"]

异常5

max number of threads [1024] for user [lishang] likely too low

解决办法:

1.切换至root用户

su root

2. 修改limits.d目录下的配置文件:

vi /etc/security/limits.d/90-nproc.conf

改成如下

*          soft    nproc     4096

root       soft    nproc     unlimited

异常6

system call filters failed to install; check the logs and fix your configuration or disable system c

在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

异常7

future versions of Elasticsearch will require Java 11; your Java version from [/usr/java/jdk1.8.0_171/jre] does not meet this requirement

不要紧,es自带了jdk会使用自带的

异常8

org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

需要创建一个新用户

sudo adduser es,修改 es 用户的密码:sudo passwd 123456

异常9:

es用户打开elasticsearch的时候,报错

java.nio.file.AccessDeniedException: /usr/local/elasticsearch/es-7.3.0-node-2/config/elasticsearch.keystore

通过 root账户转让所有权限

chown -R  es /usr/local/elasticsearch/es-7.3.0-node-2

异常10:

seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in

在config 目录下

vim elasticsearch.yml

在最后添加

bootstrap.system_call_filter: false

改完这些重启Linux,启动Elasticsearch即可其他ip访问

三.Kibana安装

下载地址:Download Kibana Free | Get Started Now | Elastic

kibana也需要安装对应的版本 7.3.0的 https://artifacts.elastic.co/downloads/kibana/kibana-7.3.0-linux-x86_64.tar.gz

在/usr/local下新建一个kibana的文件夹,同样不要使用root账户启动,

将kibana下载后解压的kibana文件夹

修改配置文件

vi /usr/local/kibana/kibana-7.3.0-linux-x86_64/config/kibana.yml

server.port: 5601 #这个不一定需要配置 
server.host: "0.0.0.0" #配置IP 建议设置0.0.0.0,方便访问
elasticsearch.hosts: ["http://10.118.133.73:9200"]
i18n.locale: "zh-CN" #默认是英文,这个是中文设置

启动与关停

ps -ef|grep kibana
ps -ef|grep 5601
都找不到
尝试 使用 fuser -n tcp 5601
kill -9 端口
 ps -ef|grep node   或 netstat -anltp|grep 5601
启动查看是否报错即可 ./kibana
没有报错改成后台启动:

nohup ../bin/kibana &

打开首页
http://118.118.133.73:5601/

能正常打开说明部署成功。

(ES1)ElasticSearch+Kibana+Elasticsearch-analysis-ik系统环境搭建相关推荐

  1. 【虚拟化】docker安装ElasticSearch+Kibana,下载IK分词器

    1.拉取镜像 docker pull elasticsearch:7.5.0 2.配置 mkdir -p /mydata/elasticsearch/config # 用来存放配置文件 mkdir - ...

  2. Logstash+Elasticsearch+kibana搭建日志平台文档(xjh20160527重庆公司亲测可用)

    Logstash+Elasticsearch+kibana搭建日志平台文档 v1.0_xjh  20160527 http://wenku.baidu.com/link?url=_HaXh4neqWm ...

  3. 服务器安装配置elasticsearch,kibana,IK分词器和拼音分词器,集群搭建教程

    docker安装配置elasticsearch,kibana和IK分词器 elasticsearch文章系列 前置安装docker 创建docker网络 安装Elasticsearch 运行elast ...

  4. Kibana + Elasticsearch + ik分词的集群搭建

    Elasticsearc: Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三者结合起来.Elasticsearch 基于 Lucene 开发,是 ...

  5. ELK学习3_使用redis+logstash+elasticsearch+kibana快速搭建日志平台

    日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日志详情 监控系统的运行状况 统计分析,比如接口的调用次数.执行时间.成功率等 异常数 ...

  6. “Elasticsearch + Kibana + ik分词器“介绍与使用

    Elasticsearch 介绍 Elasticsearch 是一个分布式.RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例. 作为 Elastic Stack 的核心,它集中存 ...

  7. [Elasticsearch](五)Docker环境下搭建Elasticsearch,Elasticsearch集群,Elasticsearch-Head以及IK分词插件和拼音分词插件

    目录: https://github.com/dolyw/ProjectStudy/tree/master/Elasticsearch DockerStudy dolyw:https://note.d ...

  8. ElasticSearch + Kibana + logstash+ik结合springboot代码实现,比较ES和传统Mysql查询效率

    开发环境:Win10 开发环境:STS 概要:此篇文章主要是传统的Mysql查询和ES查询两种方式的效率比较,以及代码实现,另外使用logstash进行mysql数据的同步也可以直接理解为" ...

  9. ELK(Logstash+Elasticsearch+Kibana)的原理和详细搭建

    一. Elastic Stack Elastic Stack是ELK的官方称呼,网址:https://www.elastic.co/cn/products ,其作用是"构建在开源基础之上, ...

最新文章

  1. [svc]samba服务搭建
  2. [ASP.NET MVC 小牛之路]11 - Filter
  3. app每次更新版本时调用js代码提示用户下载更新
  4. ps命令与top命令参数意义详解
  5. 2017年最新的全国省市sql数据
  6. fastapi学习(二):路径参数获取与GET、POST参数获取
  7. Linux一键编译,linux下一键编译安装MariaDB10.0.12
  8. Linux 安装MongoDB 并设置防火墙,使用远程客户端访问
  9. hibernate 镜像下载_虚拟光驱软件下载手机版-虚拟光驱免费中文版64位下载v5.8.0...
  10. 仿金蝶进销存源码(含数据库脚本)
  11. mysql pxc介绍_MySQL高可用之PXC简介
  12. C# DevExpress控件安装使用教程
  13. 什么是服务器、ip以及域名以及他们之间的联系
  14. 与计算机相关的格言,与机器相关的经典名言
  15. 狂神说Java系列视频教程之docker(记录到swarm安装)
  16. 深信服AD应用交付管理维护
  17. 【图像分类】Deep Layer Aggregation论文理解
  18. python for 循环中的下划线
  19. 无约束优化:修正阻尼牛顿法
  20. OpenCV入门(C++/Python)- 使用OpenCV标注图像(六)

热门文章

  1. 利用tensorflow构建LSTM预测单词
  2. java比较炫的登录界面_教你写一个炫酷的Material Design 风格的登录和注册页面
  3. python爬虫之SSL、加密、破解有道词典加密算法并编写有道词典实时翻译
  4. 机器学习 (三) k-近邻算法应用-约会网站匹配系统
  5. vscode常用插件 - Path Autocomplete
  6. 这些两轮电动车的黑科技你知道吗?
  7. iPad Air 3(iPad Air 2019)的主要参数与特性
  8. 主数据管理系统(MDM)的四种实现风格
  9. linux下输入ls显示时间格式,【Linux基础】linux下修改ls显示的时间格式
  10. 如何在面试中回答「你最大的缺点是什么」?