elasticsearch单机部署


安装部署elasticsearch
1.下载地址
下载地址:https://www.elastic.co/downloads/elasticsearch,我这里下载的是 elasticsearch-6.4.0.tar.gz


2.解压缩并创建数据目录
[root@localhost soft]# tar -xvf elasticsearch-6.4.0.tar.gz
[root@localhost soft]# mv elasticsearch-6.4.0 /opt/
[root@localhost soft]#cd /opt/elasticsearch-6.4.0
[root@localhost soft]#mkdir data

3.创建用户
因为启动es不能在root用户下启动,所以要事先创建非root用户
[root@localhost opt]# useradd esuser
[root@localhost opt]# chown -R esuser.esuser ./elasticsearch-6.4.0/


4.配置环境变量
[esuser@localhost ~]$ more .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

JAVA_HOME=/opt/jdk1.8.0_151
PATH=$JAVA_HOME/bin:$PATH:$HOME/.local/bin:$HOME/bin
export PATH

5.修改配置
vi /opt/elasticsearch-6.4.0/config/elasticsearch.yml
A.开放network.host,如下:
network.host: 192.168.1.85

B.在后面添加如下两项
http.cors.enabled: true
http.cors.allow-origin: "*"

http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type


C.修改日志存放路径
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /opt/elasticsearch-6.4.0/data
path.logs:/opt/elasticsearch-6.4.0/logs

6.修改系统配置文件
A.修改limits.conf配置文件
vi /etc/security/limits.conf
root用户下添加如下2两项,然后退出使用crate用户登陆,使其生效
*        hard    nofile           65536
*        soft    nofile           65536

可是,我的配置本来就已经设置成这样了的
网上找来找去,都是修改limits.conf文件这个答案,最怕这种了,所有的人都指向同一个答案,却不能解决自己的问题
后来突然想到是不是环境变量的问题,仔细检查了一遍,发现一个可疑的设置

vi /etc/profile
ulimit -n 65535
使用 ulimit -Hn 查看当前值,果然是65535,


ulimit -Hn
65535
也就是说每次更新环境变量的时候limits.conf的hard nofile 65536设置被覆盖掉了
这就好办了,vi /etc/profile 将 ulimit -n 65535 行注释掉,退出重新进入当前用户,再使用 ulimit -Hn 查看当前值,已经是65536了,设置成功!



B.修改sysctl.conf文件
vi /etc/sysctl.conf
vm.max_map_count=262144


执行下面命令生效
sysctl -p


7.配置jvm内存大小
修改文件./config/jvm.options
# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space
-Xms8g
-Xmx8g

修改文件
./bin/elasticsearch
添加红色项目
export ES_HEAP_SIZE=8g
source "`dirname "$0"`"/elasticsearch-env

8.退出重新登录用户登录并启动
[root@localhost opt]# su - esuser
[esuser@localhost bin]$ cd /opt/elasticsearch-6.4.0/bin
[esuser@localhost bin]$./elasticsearch -d


9.测试我们的es是否好用
[esuser@localhost logs]$ curl http://192.168.1.85:9200/?pretty
{
  "name" : "UyIrNGO",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "YNvgGJC0QLeMsKt71e7tsw",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
[esuser@localhost logs]$


10.外部浏览器调试es时需要修改的配置

11.然后在浏览器里输入如下地址
http://192.168.1.85:9200/

12.配置验证(elastic默认的密码是changeme)
修改配置文件,在配置文件最后加上
xpack.security.enabled: true
然后重新启动
运行如下命令设置密码
./elasticsearch-setup-passwords interactive



13.通过账目密码访问
curl -u elastic:elastic "192.168.1.85:9200"

14.设置开机自启动
在/etc/systemd/system目录下创建elasticsearch.service文件
[Unit]
Description=elasticsearch
[Service]
User=yeemiao
LimitNOFILE=100000
LimitNPROC=100000
ExecStart=/home/yeemiao/es/bin/elasticsearch
[Install]
WantedBy=multi-user.target

设置开机自启
systemctl enable elasticsearch

阿里云机器
[yeemiao@common-es01 ~]$ more /etc/systemd/system/elasticsearch.service

    [Unit]
    Description=elasticsearch.service
    After=network.target
     
    [Service]
    Type=forking
    ExecStart=/usr/bin/su - yeemiao -c "/home/yeemiao/es/bin/elasticsearch -d -p pid"
     
    [Install]
    WantedBy=multi-user.target


15.问题
阿里云ssh的方式登陆进去发现max file descriptors不生效,非要su - root后,再su - yeemiao才生效,是否生效可以用如下命令查看:
ulimit -Hn




[1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
解决办法:
Centos6不支持SecComp,而ES5.2.0默认bootstrap.system_call_filter为true

禁用:在elasticsearch.yml中配置bootstrap.system_call_filter为false,注意要在Memory下面:
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

posted @ 2019-10-22 11:39  slnngk  阅读(1668)  评论(0编辑  收藏  举报