Centos7 配置Elasticsearch集群

准备设备

准备三台机器:{172.20.28.150, 172.20.28.151, 172.20.28.152}

[root@els3 ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)
[root@els3 ~]# ifconfig | grep 172.20
        inet 172.20.28.152  netmask 255.255.255.0  broadcast 172.20.28.255

安装JDK

由于Elasticsearch依托JAVA,分别在这三台设备上安装JDK, 安装后的目录在 /usr/java/jdk1.8.0_261-amd64/bin/java
由于现在下载JDK需要登录Oracle账号,所以每此下RPM包都需要重新验证。

[root@els3 ~]# yum install -y wget 
[root@els3 ~]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn/java/jdk/8u261-b12/a4634525489241b9a9e1aa73d9e118e6/jdk-8u261-linux-x64.rpm?AuthParam=1594954017_7f9a36bbb1235f2968e8b798d9a8cbbd"
[root@els2 ~]# mv jdk-8u261-linux-x64.rpm\?AuthParam\=1594954017_7f9a36bbb1235f2968e8b798d9a8cbbd  jdk-8u261-linux-x64.rpm
[root@els3 ~]# sudo yum -y localinstall jdk-8u261-linux-x64.rpm

[root@els2 ~]# java -version
java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
[root@els2 ~]# ls -al /usr/bin/java
lrwxrwxrwx 1 root root 22 Jul 17 10:55 /usr/bin/java -> /etc/alternatives/java
[root@els2 ~]# ls -al /etc/alternatives/java
lrwxrwxrwx 1 root root 37 Jul 17 10:55 /etc/alternatives/java -> /usr/java/jdk1.8.0_261-amd64/bin/java

安装Elasticsearch

  • 通过添加Elastic的包存储库,可以将Elasticsearch与包管理器一起安装。将Elasitcsearch的公共GPG加入到RPM中。
[root@els3 ~]# sudo rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch
  • 为Elasticsearch创建一个新的创库文件。将以下内容写入到/etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
  • 安装Elasticsearch, 这个过程会比较慢。
[root@els3 ~]# sudo yum -y install elasticsearch

配置Elasticsearch

分别配置三台设备的Elasticsearch,注意节点名称node.namenetwork.host

[root@els2 ~]# vim /etc/elasticsearch/elasticsearch.yml
 cluster.name: es_cluster
 node.name: es_node01

 node.master: true
 node.data: true

 index.number_of_shards: 5
 index.number_of_replicas: 1
 index.max_result_window: 1000000

 path.data: /opt/elasticsearch/data
 path.logs: /opt/elasticsearch/logs

 network.host: 172.20.28.150
 http.port: 9200
 transport.tcp.port: 9300

 discovery.zen.ping.unicast.hosts: ["172.20.28.17:9300","172.20.28.18:9300","172.20.28.19:9300"]
  • 启动Elasticsearch,启动日志内无任何数据。
[root@els2 jna--1985354563]#  systemctl start elasticsearch
[root@els2 jna--1985354563]# /etc/init.d/elasticsearch start
Starting elasticsearch (via systemctl):                    [  OK  ]
[root@els2 jna--1985354563]# sudo service elasticsearch status
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Fri 2020-07-17 15:04:45 CST; 14s ago
     Docs: http://www.elastic.co
  Process: 14429 ExecStart=/usr/share/elasticsearch/bin/elasticsearch -Des.pidfile=${PID_DIR}/elasticsearch.pid -Des.default.path.home=${ES_HOME} -Des.default.path.logs=${LOG_DIR} -Des.default.path.data=${DATA_DIR} -Des.default.path.conf=${CONF_DIR} (code=exited, status=1/FAILURE)

排错

  • /usr/share/elasticsearch/bin/elasticsearch执行脚本,提示没有config,复制配置文件后又提示不能以root用户启动。
[root@els2 elasticsearch]# su - elasticsearch
Last login: Fri Jul 17 15:43:06 CST 2020 on pts/0
This account is currently not available.
  • journalctl -xe 发现权限出错,不能以root用户访问该目录。
Jul 17 17:17:25 els2 elasticsearch[28409]: Exception in thread "main" java.lang.IllegalStateException: Unable to access 'path.data' (/opt/elasticsearch/data/es_cluster)
Jul 17 17:17:25 els2 elasticsearch[28409]: Likely root cause: java.nio.file.AccessDeniedException: /opt/elasticsearch/data/es_cluster
  • vim /etc/passwd 将elasticsearch栏的,/sbin/nologin 改成 /bin/bash 之后正常启动。切换用户能正常启动,但是启用的不是自己配置的文件。
[root@els2 elasticsearch]# su - elasticsearch
Last login: Fri Jul 17 17:28:51 CST 2020 on pts/1
-bash-4.2$ /etc/init.d/elasticsearch  start
Starting elasticsearch (via systemctl):  ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password: 
  • journaltcl -xe 查看日志。有个疑问点:
    ◇: logs、data目录权限是:root:elasticsearch
Jul 18 16:08:27 els1 elasticsearch[30141]: java.io.FileNotFoundException: /opt/elasticsearch/logs/es_cluster.log (Permission denied)
Jul 18 16:08:28 els1 elasticsearch[30141]:  Exception in thread "main" java.lang.IllegalStateException: Unable to access 'path.data' (/usr/share/elasticsearch/data)
Jul 18 16:08:28 els1 elasticsearch[30141]: Likely root cause: java.nio.file.AccessDeniedException: /opt/elasticsearch/data/es_cluster
  • 修改目录权限,问题解决。
[root@els1 opt]# chown -R elasticsearch:elasticsearch  elasticsearch/
total 4
drwxr-xr-x 4 elasticsearch elasticsearch 4096 Jul 17 14:15 elasticsearch
[root@els1 opt]# ll elasticsearch/
total 8
drwxr-xr-x 2 elasticsearch elasticsearch 4096 Jul 17 14:15 data
drwxr-xr-x 2 elasticsearch elasticsearch 4096 Jul 17 14:15 logs

[root@els1 opt]# /etc/init.d/elasticsearch start
[root@els1 opt]# netstat -anpt | grep 9200
tcp6       0      0 172.20.28.150:9200      :::*                    LISTEN      31583/java  

完成

  • 查看集群健康状态
[root@els1 opt]# curl -XGET 'http://172.20.28.150:9200/_cluster/health?pretty'
{
  "cluster_name" : "es_cluster",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 3,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 0,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 100.0
}
  • 设置开机自动启动
[root@els1 opt]# systemctl enable elasticsearch
[root@els1 opt]# systemctl list-unit-files  | grep elastic
elasticsearch.service                         enabled

安装插件

  • 使用插件命令,去官网下载,报错。 去stackoverflow查,说是可以使用--verbose参数查看详细信息。
[root@els2 bin]# ./plugin install head
-> Installing head...
Trying https://download.elastic.co/elasticsearch/release/org/elasticsearch/plugin/head/2.4.6/head-2.4.6.zip ...
ERROR: failed to download out of all possible locations..., use --verbose to get detailed information


[root@els2 bin]# ./plugin install --verbose mobz/elasticsearch-head
-> Installing mobz/elasticsearch-head...
Trying https://github.com/mobz/elasticsearch-head/archive/master.zip
Downloading ..............................
Installed head into /usr/share/elasticsearch/plugins/head
  • 另外一种方法,GitHub上下载zip包,解压到plugins/head/_site/目录下,重启后即可。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351