一、安装JDK1.8

 

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

二、安装ES

三个节点:master、slave01、slave02

1、这里下载的是elasticsearch-6.3.1.rpm版本包

https://www.elastic.co/cn/downloads/elasticsearch

2、解压

rpm -ivh elasticsearch-6.3.1.rpm

 3、elasticsearch的配置文件

elasticsearch配置文件在这两个地方,有两个配置文件:

[root@master mnt]# ll /etc/elasticsearch/
总用量 28
-rw-rw---- 1 root elasticsearch  207 4月   8 18:10 elasticsearch.keystore
-rw-rw---- 1 root elasticsearch 3300 4月   8 18:14 elasticsearch.yml
-rw-rw---- 1 root elasticsearch 2920 6月  30 2018 jvm.options
-rw-rw---- 1 root elasticsearch 6380 6月  30 2018 log4j2.properties
-rw-rw---- 1 root elasticsearch  473 6月  30 2018 role_mapping.yml
-rw-rw---- 1 root elasticsearch  197 6月  30 2018 roles.yml
-rw-rw---- 1 root elasticsearch    0 6月  30 2018 users
-rw-rw---- 1 root elasticsearch    0 6月  30 2018 users_roles
[root@master mnt]# ll /etc/sysconfig/elasticsearch
-rw-rw---- 1 root elasticsearch 1613 6月  30 2018 /etc/sysconfig/elasticsearch

elasticsearch.yml 文件用于配置集群节点等相关信息的,elasticsearch 文件则是配置服务本身相关的配置,例如某个配置文件的路径以及java的一些路径配置什么的。

4、修改配置文件

master节点:

[root@master~]# vim /etc/elasticsearch/elasticsearch.yml  # 增加或更改以下内容

  cluster.name: elasticsearch1 # 集群中的名称
  node.name: master # 该节点名称
  node.master: true # 意思是该节点为主节点
  node.data: false # 表示这不是数据节点
  network.host: 0.0.0.0 # 监听全部ip,在实际环境中应设置为一个安全的ip
  http.port: 9200 # es服务的端口号
  discovery.zen.ping.unicast.hosts: ["192.168.200.100", "192.168.200.101", "192.168.200.102"] # 配置自动发现

slave01节点:

[root@slave01~]# vim /etc/elasticsearch/elasticsearch.yml  # 增加或更改以下内容
cluster.name: elasticsearch1 # 集群中的名称
node.name: slave01# 该节点名称
node.master: false# 意思是该节点不为主节点
node.data: true# 表示这是数据节点
network.host: 0.0.0.0 # 监听全部ip,在实际环境中应设置为一个安全的ip
http.port: 9200 # es服务的端口号
discovery.zen.ping.unicast.hosts: ["192.168.200.100", "192.168.200.101", "192.168.200.102"] # 配置自动发现

slave02节点:

[root@slave01~]# vim /etc/elasticsearch/elasticsearch.yml  # 增加或更改以下内容
cluster.name: elasticsearch1 # 集群中的名称
node.name: slave02# 该节点名称
node.master: false# 意思是该节点不为主节点
node.data: true# 表示这是数据节点
network.host: 0.0.0.0 # 监听全部ip,在实际环境中应设置为一个安全的ip
http.port: 9200 # es服务的端口号
discovery.zen.ping.unicast.hosts: ["192.168.200.100", "192.168.200.101", "192.168.200.102"] # 配置自动发现

完成以上的配置之后,到主节点上,启动es服务:

systemctl start elasticsearch.service

主节点启动完成之后,再启动其他节点的es服务。

三、服务启动异常排查(以master节点为例,实际操作了三个节点:master、slave01、slave02)

1、我这里启动主节点的时候没有启动成功,于是查看es的日志,但是却并没有生成,那就只能去看系统日志了:

[root@master~]# ls /var/log/elasticsearch/
[root@master~]# tail -n50 /var/log/message

Elasticsearch+Kibana环境搭建 随笔 第1张

如图,可以看到是JDK的路径配置得不对,没法在PATH里找到相应的目录。

于是查看JAVA_HOME环境变量的值指向哪里:

[root@master mnt]# echo $JAVA_HOME
/mnt/jdk1.8.0_111

发现指向的路径并没有错,那就可能是忘记在profile里写export了,于是在profile的末尾加上了这一句:

export JAVA_HOME JAVA_BIN JRE_HOME PATH CLASSPATH
[root@master mnt]# source /etc/profile

使用source命令重新加载了profile之后,重新启动es服务,但是依旧启动不起来,于是我发现我忽略了一条错误日志:

Elasticsearch+Kibana环境搭建 随笔 第2张

这是无法在环境变量中找到java可执行文件,那就好办了,做一个软链接过去即可:

[root@master~]# ln -s /mnt/jdk1.8.0_111/bin/java /usr/bin/

再次启动es服务,这次就终于启动成功了:

[root@master~]# systemctl restart elasticsearch.service 
[root@master~]# ps aux |grep elasticsearch
elastic+   2655  9.4 31.8 3621592 1231396 ?     Ssl  15:42   0:14 /bin/java -Xms1g -Xmx1g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -XX:-OmitStackTraceInFastThrow -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dio.netty.recycler.maxCapacityPerThread=0 -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Djava.io.tmpdir=/tmp/elasticsearch.4M9NarAc -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/lib/elasticsearch -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime -Xloggc:/var/log/elasticsearch/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=32 -XX:GCLogFileSize=64m -Des.path.home=/usr/share/elasticsearch -Des.path.conf=/etc/elasticsearch -cp /usr/share/elasticsearch/lib/* org.elasticsearch.bootstrap.Elasticsearch -p /var/run/elasticsearch/elasticsearch.pid --quiet
root       2735  0.0  0.0 112660   968 pts/0    S+   15:44   0:00 grep --color=auto elasticsearch
[root@master~]# netstat -lntp |grep java  # es服务会监听两个端口
tcp6       0      0 :::9200                 :::*                    LISTEN      2655/java           
tcp6       0      0 :::9300                 :::*                    LISTEN      2655/java           
[root@master~]# 

9300端口是集群通信用的,9200则是数据传输时用的。

主节点启动成功后,依次启动其他节点即可,我这里其他节点都是启动正常的。

 查看集群状况:

[root@master mnt]# curl 'master:9200/_cluster/health?pretty'        
{
  "cluster_name" : "elasticsearch1",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 3,
  "number_of_data_nodes" : 2,
  "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
}

 

四、安装Kibana

1.下载https://www.elastic.co/cn/downloads/kibana 版本要和es版本相同 

2、在master上解压

tar -zxvf kibana-6.3.1-linux-x86_64.tar.gz

3、修改配置文件

vim config/kibana.yml

elasticsearch.url: "http://192.168.200.101:9200"      # kibana监控哪台es机器

server.port:5601

server.host: "192.168.200.101"                # kibana运行在哪台机器

启动:bin/kibana 

查看界面http://192.168.200.101:5601 可以直接访问

Elasticsearch+Kibana环境搭建 随笔 第3张

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄