ElasticSearch

版本兼容性: https://www.elastic.co/cn/support/matrix#matrix_osopen in new window

环境准备:关闭防火墙

systemctl stop firewalld.service # 停止firewall 
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state # 查看防火墙

下载地址:

解压安装

tar -zxvf elasticsearch-7.17.3-linux-x86_64.tar.gz

mv elasticsearch-7.17.3 /opt/zmn/servers/elasticsearch/

配置 Elasticsearch

  1. 编辑 /opt/zmn/servers/elasticsearch/config/elasticsearch.yml

单机安装请取消注释: node.name: node-1,否则无法正常启动。

注意冒号后面有个空格

修改网络和端口,取消注释 master 节点,单机只保留一个 node。

# ------------------------------------ Node ------------------------------------
node.name: node-1
# ---------------------------------- Network -----------------------------------
network.host: 192.168.211.136
http.port: 9200
# --------------------------------- Discovery ----------------------------------
cluster.initial_master_nodes: ["node-1"]
  1. 按需修改 /opt/zmn/servers/elasticsearch/config/jvm.options 内存设置
-Xms1g
-Xmx1g

根据实际情况修改占用内存,默认都是 1G,单机 1G 内存,启动会占用 700M+ 然后在安装 kibana 后,基本上无法运行了,运行了一会就挂了报内存不足。 内存设置超出物理内存,也会无法启动,启动报错。

  1. 添加 ES 用户,ES 默认 root 用户无法启动,需要改为其他用户
# 添加用户
useradd  estest
# 设置密码
passwd   estest

# 如果已经存在了用户,可以修改密码
# sudo passwd estest
# 然后输入两次密码(可能会提示密码太短,不用管)

改变 ES 目录拥有者账号

chown -R estest /opt/zmn/servers/elasticsearch/
  1. 修改 /etc/sysctl.conf

末尾添加: vm.max_map_count=655360

# vm.max_map_count=262144
vm.max_map_count=655360 # change for test es

执行 sysctl -p 让其生效

sysctl -p
  1. 修改 /etc/security/limits.conf

末尾添加:

* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096
  1. 启动 ES
# 切换刚刚新建的用户
su estest
# 启动命令
# /opt/zmn/servers/elasticsearch/bin/elasticsearch

# 后台启动
/opt/zmn/servers/elasticsearch/bin/elasticsearch -d
  1. 配置完成

浏览器访问测试 http://192.168.99.23:9200open in new window

{
    "name": "node-1",
    "cluster_name": "elasticsearch",
    "cluster_uuid": "rIx6hr52T4uhER9I_4ikww",
    "version": {
        "number": "7.17.3",
        "build_flavor": "default",
        "build_type": "tar",
        "build_hash": "5ad023604c8d7416c9eb6c0eadb62b14e766caff",
        "build_date": "2022-04-19T08:11:19.070913226Z",
        "build_snapshot": false,
        "lucene_version": "8.11.1",
        "minimum_wire_compatibility_version": "6.8.0",
        "minimum_index_compatibility_version": "6.0.0-beta1"
    },
    "tagline": "You Know, for Search"
}
configuration:
  selector: ${SW_CONFIGURATION:nacos}
  none:
  nacos:
    # Nacos Server Host
    serverAddr: ${SW_CONFIG_NACOS_SERVER_ADDR:http://local-nacos.xiujiadian.com} # 注意 SSL 问题
    # Nacos Server Port
    port: ${SW_CONFIG_NACOS_SERVER_PORT:8848}
    # Nacos Configuration Group
    group: ${SW_CONFIG_NACOS_SERVER_GROUP:"skywalking"}
    # Nacos Configuration namespace
    namespace: ${SW_CONFIG_NACOS_SERVER_NAMESPACE:"e9fc0dda-5fce-42d2-94a0-b9fe516dbab3"} # 注意 namespace 不要填成了 namespaceShowName
    # Unit seconds, sync period. Default fetch every 60 seconds.
    period: ${SW_CONFIG_NACOS_PERIOD:60}
    # Nacos auth username
    username: ${SW_CONFIG_NACOS_USERNAME:"nacos"}
    password: ${SW_CONFIG_NACOS_PASSWORD:"E4tNr26hGNY4"}
    # Nacos auth accessKey
    accessKey: ${SW_CONFIG_NACOS_ACCESSKEY:""}
    secretKey: ${SW_CONFIG_NACOS_SECRETKEY:""}

Elasticsearch Head

我们可以安装 Chrome 插件 [Elasticsearch Head]https://chrome.google.com/webstore/detail/elasticsearch-head/ffmkiejjmecolpfloofpjologoblkegmopen in new window, 可以查看 Elasticsearch 的集群概要、索引、数据。

安装配置kibana

1.什么是Kibana

Kibana是一个基于Node.js的Elasticsearch索引库数据统计工具,可以利用Elasticsearch的聚合功 能,生成各种图表,如柱形图,线状图,饼图等。 而且还提供了操作Elasticsearch索引数据的控制台,并且提供了一定的API提示,非常有利于我们学习 Elasticsearch 的语法。

下载Kibana

https://www.elastic.co/cn/downloads/kibanaopen in new window

安装kibana

root账户下操作

tar -zxvf kibana-7.17.3-linux-x86_64.tar.gz

mv /opt/zmn/software/kibana-7.17.3-linux-x86_64 /opt/zmn/servers/kibana/

改变es目录拥有者账号

chown -R estest /opt/zmn/servers/kibana/

还需要设置访问权限

chmod -R  777 /opt/zmn/servers/kibana/

修改配置文件

vim /opt/zmn/servers/kibana/config/kibana.yml

修改端口,访问ip,elasticsearch服务器ip

server.port: 5601
server.host: "0.0.0.0"
# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://192.168.99.23:9200"]

配置完成启动:

# 切换用户
su estest 

./bin/kibana # (路径: /opt/zmn/servers/kibana)

# 后台启动
nohup /opt/zmn/servers/kibana/bin/kibana &

访问 ip:5601,即可看到安装成功

安装 IK 分词器

/opt/zmn/servers/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.3/elasticsearch-analysis-ik-7.17.3.zip

然后重启 ES 和 Kibana

PUT /zmn-es-synonym
{
  "settings": {
    "analysis": {
      "filter": {
        "word_sync": {
          "type": "synonym",
          "synonyms_path": "analysis-ik/synonym.txt"
        }
      },
      "analyzer": {
        "ik_sync_max_word": {
          "filter": [
            "word_sync"
          ],
          "type": "custom",
          "tokenizer": "ik_max_word"
        },
        "ik_sync_smart": {
          "filter": [
            "word_sync"
          ],
          "type": "custom",
          "tokenizer": "ik_smart"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "analyzer": "ik_sync_max_word",
        "search_analyzer": "ik_sync_max_word"
      }
    }
  }
}
POST /zmn-es-synonym/_doc/1
{
  "name": "啄木鸟是中国专业的家修平台"
}
POST /zmn-es-synonym/_doc/_search
{
  "query": {
    "match": {
      "name": "zmn"
    }
  }
}
PUT /zmn-company-index
PUT /zmn-company-index/_mapping
{
  "properties": {
    "name": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "job": {
      "type": "text",
      "analyzer": "ik_max_word"
    },
    "logo": {
      "type": "keyword",
      "index": "false"
    },
    "payment": {
      "type": "float"
    }
  }
}