一、环境准备
Elasticsearch是采用java开发的,运行在JDK上,所以需要先安装JDK,本文档以elasticsearch 6.7.1 为例讲解,JDK为oracle官方的JDK1.8。 下载地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载jdk1.8, 解压安装
tar -xzvf jdk-8u211-linux-x64.tar.gz -C /home/data/
mv jdk-8u211-linux-x64 jdk1.8.0
配置环境变量
vi /etc/profile
在最后面添加如下配置
# java setting
export JAVA_HOME=/home/data/jdk1.8.0
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
生效环境变量设置
source /etc/profile
测试jdk安装,输入下述命令后有对应的版本信息打印出来代表安装成功。
java -version
二、下载安装
Elasticsearch 官方下载地址 https://www.elastic.co/downloads/past-releases
选择对应的版本 6.7.1 然后点Download按钮进入下载页面
选择LINUX版本下载,最终下载的文件为elasticsearch-6.7.1.tar.gz
将安装包elasticsearch-6.7.1.tar.gz 复制到linux的/home/data/目录下
解压缩安装
tar -zxvf elasticsearch-6.7.1.tar.gz
cd elasticsearch-6.7.1/config/
更改配置文件 elasticsearch.yml
#群集名称
cluster.name: test-cluster
#节点名称
node.name: node-1
#数据存放目录
path.data: /home/data/elastic/data
#日志存放目录
path.logs: /home/data/elastic/logs
#网络主机
network.host: 0.0.0.0
#HTTP服务端口
http.port: 9200
# 内部通信端口
transport.tcp.port: 9300
# 内部通信数据启用压缩
transport.tcp.compress: true
# 群集服务器列表
discovery.zen.ping.unicast.hosts: ["192.168.1.189:9300"]
创建elasticsearch 群组和用户
groupadd elasticsearch
useradd -g elasticsearch elasticsearch
创建数据文件目录及日志文件目录
mkdir -p /home/data/elastic/data
mkdir -p /home/data/elastic/logs
将elasticsearch程序目录、数据目录、日志目录的权限赋给elasticsearch用户
chown -R elasticsearch /home/data/elasticsearch-6.7.1
chown -R elasticsearch /home/data/elastic/data
chown -R elasticsearch /home/data/elastic/logs
修改操作系统参数
vi /etc/sysctl.conf
# 虚拟内存大小
vm.max_map_count=655360
生效设置
sysctl -p
vi /etc/security/limits.conf
* hard nofile 65536
* soft nofile 131072
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
重启服务器
运行elasticsearch
切换成elasticsearch用户
su elasticsearch
nohup /home/data/elasticsearch-6.7.1/bin/elasticsearch -d &
PS查看elasticsearch进程是否存在,存在则代表运行成功
ps -axu|grep elasticsearch
或者jps查看
附1:设置elasticsearch开机启动
编写es.sh脚本
vi /home/data/shell/es.sh #内容如下:
#!/bin/bash
su - elasticsearch <<EOF
nohup /home/data/elastic/elasticsearch-node1/bin/elasticsearch -d &
exit;
EOF
赋予脚本可执行权限
chmod +x /home/data/shell/es.sh
打开/etc/rc.d/rc.local文件,在末尾增加如下内容:
/home/data/shell/es.sh
在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限
chmod +x /etc/rc.d/rc.local
重启服务器前先验证 es.sh
直接输入脚本完整路径
/home/data/shell/es.sh
如正常启动了elasticsearch这代表没问题;
如果碰到 -bash: /home/data/shell/es.sh: /bin/bash^M: bad interpreter: No such file or directory 此类错误,则需要安装脚本转换小工具,将dos脚本转换成unix脚本
yum install -y dos2unix #安装dos2unix
dos2unix /home/data/shell/es.sh #执行转换命令
然后再测试脚本。
脚本OK好重启服务器即可。
附2:shell脚本的绝对路径启动方法
以elasticsearch为例:
/home/data/elasticsearch-6.7.1/bin/elasticsearch
按回车键,如果无法出现输入光标,则代表该程序为绑定当前会话方式运行,当前会话一旦退出则该程序的进程就会随之终止。
此时,可以按Ctrl+z键暂停程序,然后输入bg+回车,则可以让当前程序切换到后台执行,这时再退出会话就不会终止该程序的进程。另外,bg后如果要让该程序再回到绑定会话执行,则输入fg+回车即可。
三、运行测试
HTTP测试地址 http://192.168.1.189:9200/
安装kibana,下载对应版本号的kibana
tar -zxvf kibana-6.7.1-linux-x86_64.tar.gz
mv kibana-6.7.1-linux-x86_64 kibana-6.7.1
修改配置档 kibana.yml
vi /home/data/kibana-6.7.1/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
server.name: "node-1"
elasticsearch.hosts: ["http://localhost:9200"]
运行
nohup /home/data/kibana-6.7.1/bin/kibana &
kibana测试地址 http://192.168.1.189:5601/
进入DevTools
创建索引
PUT pst
{
"settings": {
"number_of_shards": 15,
"number_of_replicas": 0
},
"mappings": {
"position": {
"properties": {
"did": {
"type": "keyword",
"index": true,
"store": true
},
"m": {
"type": "keyword",
"index": true,
"store": true
},
"j": {
"type": "half_float",
"index": false,
"store": false
},
"w": {
"type": "half_float",
"index": false,
"store": false
},
"uid": {
"type": "long",
"index": false,
"store": false
},
"dt": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
"index": true,
"store": true
},
"h": {
"type": "keyword",
"index": false,
"store": false
}
}
}
}
}
四、插件安装
https://github.com/medcl/elasticsearch-analysis-ik
附 kibana设置登录认证
kibana 本身没有用户名密码的设置,可以使用 nginx 来实现。
1. 生成密码文件
// 安装工具包
yum install httpd-tools
// 生成密码,用户名 admin
htpasswd -c /usr/local/nginx/.htpasswd admin
# 提示输入2遍密码
New password:
Re-type new password:
Adding password for user admin
2.nginx 配置
location / {
# 设置 auth
auth_basic "kibana login auth";
auth_basic_user_file /usr/local/nginx/.htpasswd;
# 转发到 kibana
proxy_pass http://localhost:5601;
proxy_redirect off;
}
重新加载:
nginx -s reload
3. 测试
访问 nginx 地址,就会弹出认证窗口: