ElaticSearch:
-
全文搜索 超级强,比如模糊查询、关键词高亮等
-
海量数据 高效查询,比传统关系数据库快得多(尤其是搜索)
-
灵活的数据结构(Schema灵活,可以动态字段)
-
分布式高可用,天然支持横向扩展
ElaticSearch安装
安装包下载

Elasticsearch需要Java环境,8.x之后不需要自己安装JDK,自带的合适版本的JDK
mkdir /usr/local/develop
将压缩包上传
解压
tar -zxvf elasticsearch-9.0.0-linux-x86_64.tar.gz
cd elasticsearch-9.0.0
前台运行
./bin/elasticsearch
默认不允许root用户运行
创建一个普通用户,比如叫 esuser
useradd esuser
给用户设置密码(按提示输入密码)
passwd esuser
给这个用户授权访问ES目录(把elasticsearch-9.0.0权限给esuser)
chown -R esuser:esuser /usr/local/develop/elasticsearch-9.0.0
因为在develop目录下 需要develop的写权限(除非你已经通过root解压了)
切换到esuser
su - esuser
进入ES目录
cd /usr/local/develop/elasticsearch-9.0.0
安装
./bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.4.1

最新IK分词器插件8.4.1 发现IK分词器9.0.0还没有 不兼容
tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz
安装IK分词器
先手动下载插件(避免网络问题导致失败)
wget https://get.infini.cloud/elasticsearch/analysis-ik/8.4.1 -O /tmp/ik.zip
然后从本地安装
./elasticsearch-8.4.1/bin/elasticsearch-plugin install file:///tmp/ik.zip
指定最大最小内存 并在后台启动
ES_JAVA_OPTS="-Xms1g -Xmx1g" ./elasticsearch-8.4.1/bin/elasticsearch -d
启动之后
curl -k -u elastic:你的密码 https://localhost:9200 是可以的
curl -k -u elastic:你的密码 https://47.76.126.58:9200 无法连接
在配置文件中
#cluster.initial_master_nodes: ["iZj6xxxxxxxxxx"] 将这行注释
另外添加
network.bind_host: 0.0.0.0
discovery.type: single-node
注意 第一次启动建议前台启动
./bin/elasticsearch
需要拿到一些token 登录密码什么的
然后ctrl+c
在后台启动 ./bin/elasticsearch -d
ES_JAVA_OPTS="-Xms1g -Xmx1g" ./elasticsearch-8.4.1/bin/elasticsearch -d 临时指定内存大小启动,也可以配置文件配置
也可以 在运行时候修改密码 这个密码是SpringBoot整合elaticsearch时候要用的
./elasticsearch-8.4.1/bin/elasticsearch-reset-password -u elastic
修改token 默认30分钟 这个token是Kibana Elasticsearch 用的可视化管理工具用的
./bin/elasticsearch-create-enrollment-token -s kibana
如果后台启动 可以
修改密码
./elasticsearch-8.8.2/bin/elasticsearch-reset-password -u elastic
输入y 然后会重新给你密码

额外创建一个token
./elasticsearch-8.8.2/bin/elasticsearch-create-enrollment-token -s kibana
也可以前台启动 然后记录下密码 和token 然后再后台启动
查看ES是不是运行起来了
curl -k -u elastic:你的密码 https://localhost:9200

安装Kibana
Download Kibana Free | Get Started Now | Elastic

下载后上传服务器

cd /usr/local/develop
tar -zxvf kibana-9.0.0-linux-x86_64.tar.gz
编辑kibana-9.0.0/config下的kibana.yml

启动kibana
./kibana-9.0.0/bin/kibana
报错原因

-
Kibana 9.0.0版本 不允许用elastic这个超级管理员账号直接连接了!
-
它要求用一个叫做 service account token 的方式,来连接Elasticsearch。
-
不能直接用 elastic用户名密码了,这是为了安全(防止Kibana不小心用超级管理员权限搞乱系统数据)。

第一种方式:用Service Account Token
./elasticsearch-9.0.0/bin/elasticsearch-service-tokens create elastic/kibana my-kibana-token
elastic/kibana表示专门给kibana用的 写死 my-kibana-token可以改
SERVICE_TOKEN elastic/kibana/my-kibana-token = asssssssdKQXJfd0NHVFJ3YVBYNmF0UTB4aVlB
重新编辑
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["https://你的ES服务器IP:9200"]
不用username和password了!
elasticsearch.username: "kibana_system"
elasticsearch.password: "xxxxx"
改用service token
elasticsearch.serviceAccountToken:"Axxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
开发环境,SSL验证先关掉(如果没正式证书)
elasticsearch.ssl.verificationMode: "none"
开放9200 和5601端口
启动kibana
./kibana-9.0.0/bin/kibana
nohup ./kibana-9.0.0/bin/kibana > kibana.log 2>&1 & 后台启动

用户名 elastic 密码

第二种方式: kibana_system
传统账号密码模式
把原先的kibana杀掉
如果忘记了 kibana_system账号
./elasticsearch-8.4.1/bin/elasticsearch-reset-password -u kibana_system
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["https://127.0.0.1:9200"]
elasticsearch.username: "kibana_system"
elasticsearch.password: "你的新密码,比如 kibana123"
开发环境关闭SSL证书验证
elasticsearch.ssl.verificationMode: "none"
nohup ./kibana-9.0.0/bin/kibana --allow-root > kibana.log 2>&1 &
用kibana_system 登录提示没有权限 kibana_system 是用来和elastic通信用的
可以用elastic
显示的全英文
在kibana配置文件种加
i18n.locale: "zh-CN"
杀掉kibana重启
