0
点赞
收藏
分享

微信扫一扫

elk笔记1--搭建elk集群


elk笔记1--搭建elk集群

  • ​​1 需求说明​​
  • ​​2 环境准备​​
  • ​​2.1 配置java 环境​​
  • ​​2.2 更新系统配置​​
  • ​​2.3 elasticserach|kibana 配置更改​​
  • ​​更改elasticsearch配置文件 elasticsearch.yml​​
  • ​​更改kibana配置文件 kibana.yml​​
  • ​​3 测试结果​​
  • ​​4 注意事项​​
  • ​​5 说明​​

最近由于需要,笔者继续研究使用es,以下将es的安装和使用记录在此处,以便于后续查阅.

1 需求说明

  1. 软件版本说明

名称

版本

下载地址

参考文档

jdk

jdk-8u201-linux-x64(1.8.0_171)

推荐 jdk1.8.0_144

登录官网下载

​​oracle java 官网​​

elk

elk6.8.8

​​elk downloads​​

​​elk Document​​

  1. 服务器规划

ip

host

用途

端口说明

192.168.2.21

es01

es

kibana

9200

5601

9300

192.168.2.22

es02

es

9200

9300

192.168.2.23

es03

es

9200

9300

2 环境准备

2.1 配置java 环境

  1. 解压tar包到制定位置
  2. 在~/.bashrc 中添加变量,并保存

export JAVA_HOME=/home/xg/soft/jdk1.8.0_201
export PATH=$PATH:$JAVA_HOME/bin

  1. java -version 确认java 环境配置成功

2.2 更新系统配置

  1. 设置hosts
    在/etc/hosts 中加入以下内容:

192.168.2.21 es01
192.168.2.22 es02
192.168.2.23 es03
``

  1. 固定网卡ip
    将/etc/network/interfaces更改为如下内容

source /etc/network/interfaces.d/*
# for elk
auto ens33
iface ens33 inet static
address 192.168.2.21 #注意es02为22, es03为23
netmask 255.255.255.0
gateway 192.168.2.1
hwaddress 00:0c:29:40:81:21 #注意es02为22, es03为23

  1. 更新 limts.conf 参数
    在 cat /etc/security/limits.conf 中更新nofile和nproc的值,笔者这里根据以前使用经验设置了一个够elk启动的值,也可以根据需要设置更大的值.

# for elk

  1. 更新 sysctl.conf 参数
    在 /etc/sysctl.conf 中添加如下内容

# for elk
vm.max_map_count=655360

2.3 elasticserach|kibana 配置更改

以下为笔者的目录配置, 若使用直接复制笔者的配置,参考笔者新建对应的目录.

xg@xg:~/soft/bigdata$ tree -L 1
.
├── data
├── elk6.8.8
├── log
└── shell
xg@xg:~/soft/bigdata$ tree -L 2
.

更改elasticsearch配置文件 elasticsearch.yml

  1. 更改集群名称
    cluster.name: es6.8
    三个节点必须保证相同的集群名称
  2. 更改节点名称
    node.name: node-1
    es02,es03 分别为node-1,node-3
  3. 更改节点数据存储位置
    path.data: /home/xg/soft/bigdata/data/es6.8.8
  4. 更改节点日志存储位置
    path.logs: /home/xg/soft/bigdata/log/es6.8.8
  5. 更改host对应的ip
    network.host: 0.0.0.0
    此处若对所有机器开放访问权限则为0.0.0.0,也可以指定网段
  6. 更改port
    http.port: 9200
    建议统一为9200,若不设置的话,9200端口被占用后就会自动向后飘移一个端口

更改kibana配置文件 kibana.yml

  1. 更改kibana 名称
    server.name: “Kibana-6.8”
  2. 更改es hosts
    elasticsearch.hosts: [“http://localhost:9200”]
    此处默认,也可以指定

3 测试结果

  1. 启动脚本

#!/bin/bash

help()
{
cat <<_EOF
Help function:
bash updown_elk.sh help|es|kibana|stopall
_EOF
}

elk_es()
{
cd /home/xg/soft/bigdata/elk6.8.8/elasticsearch-6.8.8/bin/
ES_JAVA_OPTS="-Xms500m -Xmx500m" ./elasticsearch &
}

elk_kibana()
{
sleep 20
cd /home/xg/soft/bigdata/elk6.8.8/kibana-6.8.8-linux-x86_64/bin
./kibana &
}

elk_stop()
{
ps -ef|grep -v grep|grep node|grep 'src/cli'|awk '{print $2}'|xargs kill
sleep 5
jps|grep -v grep|grep -i elasticsearch|awk '{print $1}'|xargs kill
}

case "$1" in
help)
help
;;
es)
elk_es
;;
kibana)
elk_kibana
;;
stopall)
elk_stop
;;
*)
echo "Unknown command: $1"
help
exit 1
;;

  1. 启动效果
    查看集群状态如下:
    ​​​http://192.168.2.21:9200/_cluster/health​​
  2. elk笔记1--搭建elk集群_elk

  3. monitor查看集群状态如下:
  4. elk笔记1--搭建elk集群_java_02

4 注意事项

  1. 集群中多个节点运行在同一个机器上
    若ABC 3个机器上分别部署了clusterA的a1b1c1 3个节点,直接设置相同的集群名称,正常情况下可能会无法加入,此时需要设置discovery.seed_hosts 属性,
    例如clusterA的master节点 transport.tcp.port 为 9301,则依次在seed_hosts中添加ip:9301即可,如下所示:
    [“10.120.75.102:9301”,“10.120.75.103:9301”,“10.120.75.107:9301”]
    重启节点的时候,新节点就会通过seed_hosts总的ip:9301和现有的集群通信,并加入到集群中
  2. 节点属性
    node.attr.rack: r2(设置机架属性)
    node.attr.zone: zone-b (设置区域属性)
  3. es集群节点设置
    es节点包括master,data,ingest,coordinating
    node.master: true(默认值)
    node.data: true(默认值)
    node.data: true(默认值)
    当设置master和data都为false后,节点就为ingest类型,即为client节点;
    当master、data和ingest都为false,该节点就为coordinating节点;
    对于小集群可以不区分各个节点类型,较大集群,如20个节点以上的,建议区分节点的类型。

5 说明

笔者测试系统为vm下的Ubuntu 1604 server

举报

相关推荐

0 条评论