Elasticsearch从入门到精通-02环境搭建
Elasticsearch从入门到精通-02环境搭建
👏作者���介:大家好,我是程序员行走的鱼
🍂博主从本篇正式开始ES学习,希望小伙伴可以一起探讨
📖 本篇主要介绍和大家一块学习一下ES环境搭建,主要包括Elasticsearch、Kibina、IK分词器、ES-Head插件安装
链接:https://pan.baidu.com/s/1MciUlOeLP1q3o2Jt9zKYDA
提取码:YYDS
ES相关软件都在上边连接中
1.1 Linux下搭建Elasticsearch
1.安装包下载
本次安装版本:7.8.0 安装包自行去官网下载
2.解压
在安装包所在目录进行压缩
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
3.创建用户
因为安全问题,Elasticsearch 不允许 root 用户直接运行,所以要创建新用户,在 root 用户中创建新用户
useradd es #新增 es 用户 passwd es #为 es 用户设置密码 #userdel -r es #如果错了,可以删除再加 chown -R es:es /usr/environment/elasticsearch/elasticsearch-7.8.0 #文件夹所有者
4.修改配置文件
修改usr/environment/elasticsearch/elasticsearch-7.8.0/config/elasticsearch.yml
# 在文件尾部加入如下配置 cluster.name: elasticsearch node.name: node-1 network.host: 0.0.0.0 http.port: 9200 cluster.initial_master_nodes: ["node-1"]
修改/etc/security/limits.conf
(可以解决出现max file descriptors [4096] for elasticsearch process likely too low,increase to at least [65536])
ES因为需要大量的创建索引文件,需要大量的打开系统的文件,所以我们需要解除linux系统当中打开文件最大数目的限制,不然ES启动就会抛错
# 在文件末尾中增加下面内容 # 每个进程可以打开的文件数的限制 es soft nofile 65536 es hard nofile 65536
修改/etc/security/limits.d/20-nproc.conf
(可以解决出现max number of threads [1024] for user [es] likely too low, increase to atleast [4096])
修改普通用户可以创建的最大线程数
# 在文件末尾中增加下面内容 # 每个进程可以打开的文件数的限制 es soft nofile 65536 es hard nofile 65536 # 操作系统级别对每个用户创建的进程数的限制 * hard nproc 4096 # 注:* 带表 Linux 所有用户名称
修改/etc/sysctl.conf
(可以解决max virtual memory areas vm.max_map_count [65530] likely too low,increase to at least [262144]))
调大系统的虚拟内存
# 在文件中增加下面内容 # 一个进程可以拥有的 VMA(虚拟内存区域)的数量,默认值为 65536 vm.max_map_count=655360
重新加载
sysctl -p
5.启动
#前台启动 bin/elasticsearch #后台启动 bin/elasticsearch -d
注意:9300端口为Elasticsearch集群间组件的通信端口,9200端口为浏览器访问的 http协议 RESTful 端口。
6.测试
打开浏览器(推荐使用谷歌浏览器),输入地址:http://ip:9200,测试结果
Elasticsearch 是使用 java 开发的,且 7.8 版本的 ES 需要 JDK 版本 1.8 以上,默认安装包带有 jdk 环境,如果系统配置 JAVA_HOME,那么使用系统默认的 JDK,如果没有配置使用自带的 JDK,一般建议使用系统配置的 JDK。
双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改config/jvm.options 配置文件
#设置 JVM 初始内存为 1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存
#设置 JVM 最大可用内存为 1G
-Xms1g
-Xmx1g
7.关闭
netstat -tunlp|grep 9200 kill -9 进程号
1.2 Linux下搭建Kibina
Kibana 是一个免费且开放的用户界面,能够让你对 Elasticsearch 数据进行可视化,并让你在 Elastic Stack 中进行导航。你可以进行各种操作,从跟踪查询负载,到理解请求如何流经你的整个应用,都能轻松完成。下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-7.8.0-linux-x86_64.tar.gz
安装步骤:
还是需要用非root用户去操作!
1.解压安装包
tar -zxvf kibana-7.8.0-linux-x86_64.tar.gz
2.修改配置文件
vim config/kibana.yml # 默认端口 server.port: 5601 server.host: '0.0.0.0' # # ES 服务器的地址 elasticsearch.hosts: ["http://192.168.0.135:9200"] # # 索引名 kibana.index: ".kibana" # # 支持中文 i18n.locale: "zh-CN"
3.启动
#授权 chown -R es:es /usr/environment/kibana/kibana-7.8.0-linux-x86_64 #启动 nohup ./kibana &
4.测试
访问http://ip:5601/app/kibana#/home出现一下界面说明搭建成功.
5.关闭
netstat -tunlp|grep 5601 kill -9 端口号
1.3 Linux下IK分词器安装
IK分词器下载地址
在es的安装目录下/plugins创建ik
mkdir ‐p ik
将下载的ik分词器上传并解压到该目录
unzip elasticsearch-analysis-ik-7.6.1.zip
1.4 Linux下安装ES-Head插件
1.1 解压安装包
下载node-v8.1.0-linux-x64.tar.gz文件后解压
tar -zxvf node-v8.1.0-linux-x64.tar.gz
1.2 创建软连接
sudo ln -s /usr/local/es/node-v8.1.0-linux-x64/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm sudo ln -s /usr/local/es/node-v8.1.0-linux-x64/bin/node /usr/local/bin/node
1.3 修改环境变量
vi /etc/profile export NODE_HOME=/usr/local/es/node-v8.1.0-linux-x64 export PATH=:$PATH:$NODE_HOME/bin
修改完环境变量使用source生效
source /etc/profile
1.4 验证安装成功
node -v npm -2,v
1.5 修改Gruntfile.js
cd /usr/local/es/elasticsearch-head vim Gruntfile.js
找到代码的93行:hostname改为自己的ip或者hostame
connect: { server: { options: { hostname: '自己的hostame', port: 9100, base: '.', keepalive: true } } }
1.6 修改app.js
cd /usr/local/es/elasticsearch-head/_site vim app.js #在Vim中输入「:4354」,定位到第4354行,修 #改 http://localhost:9200为http://ip:9200
1.7 启动head服务
cd /usr/local/es/elasticsearch-head/node_modules/grunt/bin/
进程前台启动命令
./grunt server
进程后台启动名称
nohup ./grunt server >/dev/null 2>&1 & Running "connect:server" (connect) taskWaiting forever...Started connect web server on http://192.168.52.100:9100 #如何停止:elasticsearch-head进程 #执行以下命令找到elasticsearch-head的插件进程,然后使用kill -9 杀死进程即可 netstat -nltp | grep 9100 kill -9 8328
2.6 访问elasticsearch-head界面
打开Google Chrome访问 http://ip:9100/
1.4 Docker下安装Elasticsearch
创建网络
在docker环境下,我们还需要使用kibina和Elasticsearch联通,所以需要先创建一个es网络
docker network create es-net
下载镜像
docker pull elasticsearch:7.6.1
运行容器
docker run -d \ --name es \ -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ -e "discovery.type=single-node" \ -v /usr/environment/docker/es/data:/usr/share/elasticsearch/data \ -v /usr/environment/docker/es/plugins:/usr/share/elasticsearch/plugins \ -v /usr/environment/docker/es/config/:/usr/share/elasticsearch/config \ --privileged \ --network es-net \ -p 9200:9200 \ -p 9300:9300 \ elasticsearch:7.6.1
-e “ES_JAVA_OPTS=-Xms512m -Xmx512m” \ #设置ES java内存
-e “discovery.type=single-node” \ #设置ES集群模式
-v es-data:/usr/environment/docker/es/data \ #数据目录映射
-v es-plugins:/usr/environment/docker/es/plugins \ #插件目录映射
-v es-config:/usr/environment/docker/es/config \ # 配置文件映射
--privileged
--network es-net
-p 9200:9200
-p 9300:9300 \
1.5 Docker下安装kibina
下载镜像:
docker pull kibana:7.6.1
运行容器:
docker run -d \ --name kibana \ -e ELASTICSEARCH_HOSTS=http://es:9200 \ --restart=always \ -v kibana-config:/usr/environment/docker/kibana/config \ -v kibana-data:/usr/environment/docker/kibana/data \ --network=es-net \ -p 5601:5601 \ kibana:7.6.1
–network es-net :与elasticsearch在同一个网络中
-e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
-p 5601:5601:端口映射配置
设置中文:
进入容器
docker exec -it kibana bash
修改配置文件
vim config/kibana.yml
在末尾添加i18n.locale: "zh-CN"后重启容器即可
1.6 Docker安装IK分词器
查看挂在ES插件目录
docker volume inspect es-plugin
把下载的IK分词器压缩包上传到这个目录下创建ik目录并且进行解压即可
1.7 Docker安装ES-Head插件
1.拉取镜像
docker pull mobz/elasticsearch-head:5
2.运行容器
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
3.可能出现跨域问题,需要修改ES配置文件
在elasticsearch.yml配置文件末尾添加一下内容
http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: "*"
4.访问页面:
外链图片转存中…(img-TGGJOH61-1709690221149)]
1.7 Docker安装ES-Head插件
1.拉取镜像
docker pull mobz/elasticsearch-head:5
2.运行容器
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
3.可能出现跨域问题,需要修改ES配置文件
在elasticsearch.yml配置文件末尾添加一下内容
http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: "*"
🌟至此本篇就结束了,下一篇将介绍ES客户端kibana的使用以及常用的简单语法