ES 数据库安装(Linux版本)
1. 安装 JDK
-
YUM 安装 jdk 源
yum install -y epel-release
-
查看可用版本
yum search jdk
-
选择想要的版本
yum install -y java-1.8.0-openjdk.x86_64
- 注意,任何带后缀的,都是一些插件包,不是JDK
- 如
java-1.8.0-openjdk-devel.x86_64
java-1.8.0-openjdk-src.x86_64
都是不对的
-
结果测试
[root@vultrguest ~]# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
2. 安装 Elasticsearch
-
找到官方下载链接
- https://www.elastic.co/downloads/elasticsearch
- 选择linux版本,右键选择复制链接
-
使用wget 下载
- 下载之前,确认你自己的目录
- 输入
pwd
, 查看当前目录 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.6.1-linux-x86_64.tar.gz
-
解压文件
tar -xvf elasticsearch-7.6.1-linux-x86_64.tar.gz
3. 下载Elasticsearch-head
-
打开官网
https://github.com/mobz/elasticsearch-head
-
git clone 或者 直接下载 zip 压缩包
git clone git://github.com/mobz/elasticsearch-head.git
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
-
解压后进入目录
- cd elasticsearch-head
-
下载 nodejs
yum install -y nodejs
- 检查是否安装成功
node -v
国内请下载 npm install -g cnpm
- 以下命令请全部使用
cnpm
进行代替,不然慢的一批
-
下载
grunt
一个 nodejs 服务端工具npm install -g grunt-cli
-
下载 nodejs 的依赖包
- 请确保在
elasticsearch-head
目录下 npm install
- 请确保在
4. 修改配置文件
-
修改内核参数, max file descriptors 和 max number of threads
vi /etc/security/limits.conf
- 添加以下4 行
* soft nofile 65536 * hard nofile 65536 * soft nproc 4096 * hard nproc 4096
-
修改虚拟内存参数
sysctl -w vm.max_map_count=270000
- 创建一个新用户并授予权限
- 由于 ES 直接使用root 用户执行会报错,需要创建一个专门的用户进行管理
[test@vultrguest root]$useradd test
[test@vultrguest root]$echo "123456" | passwd --stdin test
# 配置 sudo权限,编辑/etc/sudoers
[test@vultrguest root]$visudo
找到这一行
root ALL=(ALL) ALL
然后再下边再加一条配置:
test ALL=(ALL) ALL
-
找到装的目录,修改所属用户,我的目录是
/data/es
chowd -R test /data
-R
的意思是data目录下面的所有文件修改
-
修改 ES 配置文件
[test@vultrguest elasticsearch-7.6.1]$ ll
total 568
drwxrwxrwx. 2 test root 4096 Feb 29 00:18 bin
drwxrwxrwx. 2 test root 4096 Mar 28 07:32 config
drwxrwxr-x. 3 test test 4096 Mar 28 06:31 data
drwxrwxrwx. 9 test root 4096 Feb 29 00:18 jdk
drwxrwxrwx. 3 test root 4096 Feb 29 00:18 lib
-rwxrwxrwx. 1 test root 13675 Feb 29 00:13 LICENSE.txt
drwxrwxrwx. 2 test root 4096 Mar 28 07:32 logs
drwxrwxrwx. 38 test root 4096 Feb 29 00:18 modules
-rwxrwxrwx. 1 test root 523209 Feb 29 00:18 NOTICE.txt
drwxrwxrwx. 2 test root 4096 Feb 29 00:18 plugins
-rwxrwxrwx. 1 test root 8164 Feb 29 00:13 README.asciidoc
- `vi config/elasticsearch.yml`
```
# 修改以下参数
不修改,远程无法访问
network.host: 0.0.0.0
此处填上你的本机ip
discovery.seed_hosts: ["ip"]
# 添加以下参数,用于跨域
http.cors.enabled: true
http.cors.allow-origin: '*'
```
-
修改 elasticsearch-head 配置文件,修改IP进行远程访问
cd elasticsearch-head-master/
vi Gruntfile.js
connect: { server: { options: { # 添加这一行,能够进行远程访问 hostname: '0.0.0.0', port: 9100, base: '.', keepalive: true } }
5. 启动服务
-
启动ES
bin/elasticsearch
-
启动 elasticsearch-head
grunt server
- 注意 elasticsearch-head即使添加了 hostname,日志中仍旧显示 localhost
-
ES 默认端口为 9200 和 9300
-
es-head 默认端口为 9100
-
打开页面,修改 localhost 为 1.1.1.1, 并点击连接,如果没有反应,请在
config/elasticsearch.yml
添加上参数http.cors.enabled: true http.cors.allow-origin: '*'
-
如下图
-
直接访问 ip:9200 如下图
-
如果无法访问,先查看服务是否报错,且防火墙是否开启
systemctl status firewalld
systemctl stop firewalld