Elasticsearch的安装
对于es的安装官网上相关操作系统和es版本对应关系Elastic Support Matrix | Elasticsearch
安装jdk
jdk可参考linux下安装jdk8_u010689849的博客-CSDN博客
对于es所需要的jdk,官网上也有说明Elastic Support Matrix | Elasticsearch
而jdk1.8能满足大部分的es版本
下载解压es
官网下载elasticsearch-7.13.2-linux-x86_64.tar.gz
解压tar -zvxf elasticsearch-7.13.2-linux-x86_64.tar.gz
解压后目录如下
其中config下为配置文件,最主要的elasticsearch.yml就在这个目录下
可以看到目录下有jdk,这是es默认自带的jdk,进入jdk/bin目录,
可以看到当前es目录中的jdk版本。
配置elasticsearch.yml
打开elasticsearch.yml,可以看到相关的配置信息包含
集群配置:如果不配置默认集群名为my-application
节点配置:不配置默认为节点名称默认为node-1
路径:data和log路径
是否锁住内存
指定访问地址和访问端口,默认只有本机能访问,端口为9200
启动es
进入bin目录
执行./elasticsearch为显示启动,而./elasticsearch -d为守护式启动
可以看到启动失败了
这里建议使用jdk11,配置jdk11
由于系统环境变量已经配置了jdk8,不能将jdk11配置在环境变量。这里修改elasticsearch
vim elasticsearch
#set jdk enviroment
export JAVA_HOME=/usr/local/java/jdk-11.0.11
export PATH=$JAVA_HOME:$PATH
#judge jdk existion
if [ -x "$JAVA_HOME/bin/java" ]; then
JAVA="/usr/local/java/jdk-11.0.11"
else
JAVA=`which java`
fi
也可以修改为es默认自带的jdk路径
再次启动时出现org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
因为es不能以root账户启动elasticSearch,
创建新账户
创建用户命令:
adduser <用户名>
adduser elasticsearch
设置密码
passwd <用户名>
当然还需要配置相关的读写权限
chown <用户名> /usr/local/elasticsearch-7.13.2 -R
chown elasticsearch /usr/local/elasticsearch-7.13.2 -R
使用新用户登录系统再次执行elasticsearch
问题:max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
修改/etc/security/limits.conf文件
* hard nofile 65535
* soft nofile 65535
然后重新登陆系统才能生效
问题: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
保存退出后执行
sysctl -p
问题: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
意思是discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes最少要配置一个
修改elasticsearch.yml
配置cluster.initial_master_nodes: ["node-1"],这里的node-1为node-name配置的值
再次启动后
可以看到日志里有一个started,表示启动成功了
在浏览器中输入ip:9200结果如下:
集群名称,节点名称,es版本等信息都能看到
Kibana的安装和使用
Kibana为es的可视化图形界面客户端
下载Kibana,官网地址Download Kibana Free | Get Started Now | Elastic | Elastic
解压 tar -zxvf kibana-7.13.4-linux-x86_64.tar.gz
配置Kibana
进入Kibana所在目录,进入config目录
修改配置kibana.yml
server.host,允许连接的远程ip,默认是localhost,修改为0.0.0.0则远程访问不受限制,这个一定要改
elasticsearch.hosts,连接的elasticsearch地址,默认是本机
若es配置了服务器,则需要配置用户名和密码
还有日志路径等等可以根据实际情况配置
启动Kibana
和es一样,不能使用root来启动,需创建用户并配置好权限,并用此用户执行bin目录下kibana
执行后可以实时看到日志信息,
浏览器输入ip:5601可以看到图形化界面
若es挂掉了,可以看到日志信息ConnectionError: connect ECONNREFUSED...
Kibana启动方式
显式启动,执行后日志直接显示,随着退出服务终止
./kibana
守护式启动,日志不会在控制台显示
nohup ./kibana &
或
nohup ./kibana >/dev/null &
终止Kibana
- 查看进程号 jps 或者 ps -ef|grep kibana 或者 ps -ef|grep 5601
- 杀死进程 kill -9 进程号
head插件
elasticsearch-head介绍
elasticsearch-head是一个界面化的集群操作和管理工具,可以对集群进行傻瓜式操作。elasticsearch-head插件是使用JavaScript开发的,依赖Node.js库,使用Grunt工具构建,所以等会我们要安装elasticsearch-head,还需要先安装Node.js和Grunt
head插件安装
nodejs下载安装,下载地址:下载 | Node.js 中文网
执行命令xz -d node-v16.5.0-linux-x64.tar.xz解压成tar包
执行tar -xvf node-v16.5.0-linux-x64.tar
配置环境变量
执行命令:vim /etc/profile
添加
export NODE_HOME=/usr/local/node-v16.5.0-linux-x64
PATH=$PATH:$NODE_HOME/bin
重新加载环境变量:source /etc/profile
输入node -v会显示版本号,则说明安装成功
安装grunt
执行命令:npm install -g grunt-cli
可能或安装失败可以替换成国内镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org
执行grunt -version,判断grunt是否安装成功
下载Head插件
GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
解压zip包
打开glasticsearch-head-master文件夹,修改Gruntfile.js文件,添加hostname:'*',这样就不限制IP地址的访问了
由图可看到访问的地址为9100,确保防火墙端口打开
当前目录输入npm install
npm run start
浏览器输入ip:9100界面如下:
修改es配置文件,设置允许跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
es-head界面中输入es的url
集群健康值检查
集群健康值为绿色则为健康
绿色:所有master和slave均正常
黄色:至少一个slave不可用,但是所有master均为active,数据仍然是可以保证完整性的
红色:所有master不可用
一般情况下红色很难,因为当master挂了后会重现选举master