1 环境说明
系统:CentOS-7
版本:es/kibana/ik 8.15.0
2 ES下载及安装
2.1 下载并上传
官网下载地址: Download Elasticsearch | Elastic
如图,选择合适版本,下载
上传到linux自定义的安装文件夹下,并解压
tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz -C /u1
2.2 es强依赖jdk问题
es强依赖jdk,解压后的es包中含有自带的jdk,启动es的时候优先去找的是Linux中已经装好的jdk,如果我们的Linux中已经安装了jdk之后,且jdk的版本与ES自带的不一致,会启动报错。因此需要调整配置
# 进入安装目录 bin
cd /u1/elasticsearch-8.15.0//bin/
# 修改配置文件elasticsearch
vim ./elasticsearch
添加以下内容:
# 使用es自带jdk
export ES_JAVA_HOME=/u1/elasticsearch-8.15.0/jdk
export PATH=$ES_JAVA_HOME/bin:$PATH
if [ -x "$ES_JAVA_HOME/bin/java" ]; then
JAVA = "/u1/elasticsearch-8.15.0/jdk/bin/java"
else
JAVA = 'which java'
fi
2.3 修改内存(按需)
Elasticsearch 的堆内存(Heap Memory)大小是根据系统可用内存以及每个节点被配置的角色自动配置的。这种自动配置旨在帮助用户避免由于内存分配不当而导致的问题,如内存溢出(OutOfMemoryError)或内存浪费。如果想做限制,可以适当调整
# 进入到config目录下
cd /u1/elasticsearch-8.15.0/config/
# 编辑jvm.options文件
vim jvm.options
# 调整实例
-Xms1g
-Xmx1g
2.4 创建启动用户
root用户不能直接启动ES,需要创建专用用户启动
# 创建用户
useradd user-es
# 创建所属组
chown user-es:user-es -R /u1/elasticsearch-8.15.0
# 切换到user-es用户
su user-es
# 进入bin目录
cd /u1/elasticsearch-8.15.0/bin/
# 启动elasticsearch
./elasticsearch
2.5 修改ES核心配置信息
修改绑定的ip允许远程访问
# 进入配置目录
cd /u1/elasticsearch-8.15.0/config/
# 修改配置
vim elasticsearch.yml
# 默认只允许本机访问,修改为0.0.0.0后则可以远程访问
# 绑定到0.0.0.0,允许任何ip来访问
network.host: 0.0.0.0
初始化节点
cluster.name: elasticsearch
node.name: es-node-1
cluster.initial_master_nodes: ["es-node-1"]
2.6 ES服务的启动与停止
# 前台运行,Ctrl + C 则程序终止
./u1/elasticsearch-8.15.0/bin/elasticsearch
# 后台运行
./u1/elasticsearch-8.15.0/bin/elasticsearch -d
# 停止
kill 进程id
说明:
Elasticsearch端口9300、9200,其中:
9300是tcp通讯端口,集群ES节点之间通讯使用,9200是http协议的RESTful接口
启动时报错
1.文件描述符(File Descriptors)数量过低
这个错误表明Elasticsearch在启动过程中进行的引导检查(bootstrap checks)失败了,原因是分配给Elasticsearch进程的最大文件描述符(file descriptors)数量太低。Elasticsearch需要足够数量的文件描述符来管理其打开的文件和套接字,而默认的系统限制可能不足以满足这一需求。可以做如下更改
在/etc/security/limits.conf文件中,添加或修改以下行来设置文件描述符的限制(针对运行Elasticsearch的用户)
# root用户编辑
vim /etc/security/limits.conf
# 添加如下信息(user-es是创建的运行es的用户)
user-es soft nofile 65535
user-es hard nofile 65535
2.虚拟内存区域(Virtual Memory Areas)数量过低
Elasticsearch需要足够的虚拟内存区域(vm.max_map_count)来管理其内存映射。这个值在Linux系统中由vm.max_map_count
参数控制
# root用户编辑
vim /etc/sysctl.conf
# 添加配置
vm.max_map_count=262144
调整后重启并验证
# 进入目录
cd /u1/elasticsearch-8.15.0/bin/
# 启动
./elasticsearch
# 调用试试
curl 127.0.0.1:9200
#如果返回 52 empty reply from server。表示请求不通
错误原因:ES8默认开启认证,可关闭后重启访问
# cd
cd /u1/elasticsearch-8.15.0/config/
vim elasticsearch.yml
# 将xpack.security.enabled: true 改为 xpack.security.enabled: false
# 重启es
curl 127.0.0.1:9200
#返回
{
"name" : "es-node-1",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "5Erh0vD6ShCsEr-MTsOIiA",
"version" : {
"number" : "8.15.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "1a77947f34deddb41af25e6f0ddb8e830159c179",
"build_date" : "2024-08-05T10:05:34.233336849Z",
"build_snapshot" : false,
"lucene_version" : "9.11.1",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
3 可视化kibana工具安装
下载安装文件,下载地址:Download Kibana Free | Get Started Now | Elastic
下载后上传到linux,解压
cd /u1/kibana
# 解压
tar -xzf kibana-8.15.0-linux-x86_64.tar.gz
修改配置文件
vim config/kibana.yml
# server.host 修改为 0.0.0.0
server.host: "0.0.0.0"
# 连接es地址
elasticsearch.hosts: ["http://{修改为es服务ip}:9200"]
# 语言修改为中文
i18n.locale: "zh-CN"
启动kibana
# 切换目录
cd ../bin
# 启动
./kibana
# 后台启动
nohup /u1/kibana/kibana-8.15.0/bin/kibana &
浏览器请求地址 http://ip:5601/
4 Kibana+ES 账号密码认证
4.1 ES开启认证
# 编辑/config/elasticsearch.yml 配置文件
vim /config/elasticsearch.yml
# 修改配置
xpack.security.enabled: true
xpack.security.http.ssl.enabled: false
xpack.security.enrollment.enabled: true
xpack.security.transport.ssl.enabled: true
# 重启ES
4.2修改账号密码
修改ES账号密码:首次启动,ES会在日志输出密码,如果没记录,可以用ES自带的工具修改密码。
# 进入es /bin目录下,执行以下命令,给elastic生成随机密码,输出
./elasticsearch-reset-password -u elastic
# 进入es /bin目录下,执行以下命令,给elastic输入并修改密码
./elasticsearch-reset-password --username elastic -i
# 在此可以修改或重置kibana密码,kibana连接ES时使用,不要用elastic超级账号连接
修改kibana连接ES配置信息
# 进入kibana安装目录 修改config/kibana.yml配置
vim /config/kibana.yml
#修改以下配置
elasticsearch.username: "kibana"
elasticsearch.password: "密码字符串"
# 重启kibana(bin目录下,后台启动加 &)
./kibana &
可看到已经改为使用服务账户令牌
访问Kibana页面,可用kibana账号登录,但权限不足,因此使用elastic账号登录即可
5 ik分词器安装
在bin目录下执行命令安装(版本与es版本必须一致)
./elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.15.0
安装完成后重启es服务。
可在kibana页面-开发工具测试ik分词器