centos7.2环境elasticsearch-5.0.1+kibana-5.0.1+zookeeper3.4.6+kafka_2.9.2-0.8.2.1部署详解





环境准备:

操作系统:centos7.2 x86_64



# uname -a

Linux u04elk03.yaya.corp 3.10.0-327.22.2.el7.x86_64 #1 SMP Thu Jun 23 17:05:11 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

软件包:

jdk-8u102-linux-x64.rpm

kibana-5.0.1-x86_64.rpm

elasticsearch-5.0.1.rpm

kafka版本:2.9.2-0.8.2.1.tgz

zookeeper3.4.6.tar.gz



zook和kafka集群:

u04elk03.yaya.corp

u04elk02.yaya.corp

u04elk.yaya.corp



elasticsearch集群:

u04elk03.yaya.corp

u04elk02.yaya.corp



1.安装jdk1.8,记得删除之前的openjdk或者低版本jdk





rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.101-3.b13.el7_2.x86_64

rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch

rpm -e --nodeps tzdata-java-2016f-1.el7.noarch

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.101-3.b13.el7_2.x86_64

rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch





2.安装elasticsearch-5.0.1

下载地址:https://www.elastic.co/downloads

rpm -ivh elasticsearch-5.0.1.rpm





u04elk02.yaya.corp的elasticsearch.yml配置

cluster.name: yunva_elk_cluster

# 集群的关键配置

discovery.zen.ping.unicast.hosts: ["u04elk02.yaya.corp", "u04elk03.yaya.corp"]

node.name: u04elk02.yaya.corp

node.master: true

node.data: true

path.data: /data/es/data

path.logs: /data/es/logs

bootstrap.memory_lock: false

network.host: 0.0.0.0

http.port: 9200





u04elk03.yaya.corp的配置

# cat /etc/elasticsearch/elasticsearch.yml

cluster.name: yunva_elk_cluster

# 集群的关键配置

discovery.zen.ping.unicast.hosts: ["u04elk02.yaya.corp", "u04elk03.yaya.corp"]

node.name: u04elk03.yaya.corp

node.master: true

path.data: /data/es/data

path.logs: /data/es/logs

bootstrap.memory_lock: false

network.host: 0.0.0.0

http.port: 9200





创建日志和数据存放目录

mkdir -p /data/es/data

mkdir /data/es/logs

chown -R elasticsearch.elasticsearch /data/es





启动elasticsearch



systemctl start elasticsearch

systemctl enable elasticsearch



访问以下web地址验证是否ok:

http://192.168.3.13:9200/



出现如下信息,说明没有问题



{

  "name" : "u04elk02.yaya.corp",

  "cluster_name" : "yunva_elk_cluster",

  "cluster_uuid" : "_6G7IvUeT6-2Qdh_AXo2mA",

  "version" : {

    "number" : "5.0.1",

    "build_hash" : "080bb47",

    "build_date" : "2016-11-11T22:08:49.812Z",

    "build_snapshot" : false,

    "lucene_version" : "6.2.1"

  },

  "tagline" : "You Know, for Search"

}





可以查看相关集群的状态信息





# curl -XGET 'http://localhost:9200/_cluster/state/{metrics}/{indices}'

{"cluster_name":"yunva_elk_cluster"}





# curl -XGET 'http://localhost:9200/_cluster/state?pretty' 

{

  "cluster_name" : "yunva_elk_cluster",

  "version" : 2,

  "state_uuid" : "hHaLqrlyT4KszbCCZ5Yy-Q",

  "master_node" : "oe-62CJxS_G5sKLYWeepqA",

  "blocks" : { },

  "nodes" : {

    "oe-62CJxS_G5sKLYWeepqA" : {

      "name" : "u04elk02.yaya.corp",

      "ephemeral_id" : "qhW1YiSURwKZUenjKDRWZw",

      "transport_address" : "10.19.124.119:9300",

      "attributes" : { }

    }

  },

  "metadata" : {

    "cluster_uuid" : "4b6LLl0GRdWNm9r7acGE8Q",

    "templates" : { },

    "indices" : { },

    "index-graveyard" : {

      "tombstones" : [ ]

    }

  },

  "routing_table" : {

    "indices" : { }

  },

  "routing_nodes" : {

    "unassigned" : [ ],

    "nodes" : {

      "oe-62CJxS_G5sKLYWeepqA" : [ ]

    }

  }

}





elasticsearch-5.0.1 只支持内核3.5以上版本的linux操作系统

centos6.5报错:

[2016-11-23T16:16:24,329][WARN ][o.e.b.JNANatives         ] unable to install syscall filter:

java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SECCOMP and CONFIG_SECCOMP_FILTER compiled in





①优化elasticsearch内存配置:

修改配置文件:





vim /etc/elasticsearch/jvm.options

-Xms10g

-Xmx10g





建议配置为物理最大内存的一半以上,在/usr/share/elasticsearch/bin/elasticsearch.in.sh配置没有用

查看日志出现类似heap size [9.9gb] 说明配置成功:

日志文件:/data/es/logs/yunva_elk_cluster.log

[2016-11-23T20:02:52,900][INFO ][o.e.e.NodeEnvironment    ] [u04elk02.yaya.corp] heap size [9.9gb], compressed ordinary object pointers [true]





②配置文件句柄

vim /etc/security/limits.d/20-nproc.conf

删除这行:

*          soft    nproc     4096





3.安装kibana

rpm -ivh kibana-5.0.1-x86_64.rpm





编辑配置文件

vim /etc/kibana/kibana.yml

修改这两项,其他默认不用动

server.host: "0.0.0.0"

elasticsearch.url: "http://localhost:9200"





启动命令:

systemctl start kibana

systemctl enable kibana





4.安装zookeeper集群,单独配置,不用kafka自带的(集群节点建议是单数个,本次我们有启用3个节点)





下载地址:http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/

tar -zxf zookeeper-3.4.6.tar.gz 

cd /data/zookeeper-3.4.6/

cp zoo_sample.cfg zoo.cfg





vim zoo.cfg

---------------------------------------

tickTime=2000

initLimit=10

syncLimit=5

# 数据保存目录

dataDir=/data/zookeeper-3.4.6/data

# 日志保存目录

dataLogDir=/data/zookeeper-3.4.6/logs

# 保留的快照个数

autopurge.snapRetainCount=20

# 保留的时间,单位小时

autopurge.purgeInterval=30

clientPort=2181

server.1=u04elk.yaya.corp:2888:3888

server.2=u04elk02.yaya.corp:2888:3888

server.3=u04elk03.yaya.corp:2888:3888

---------------------------------------





创建data和Log文件夹





mkdir /data/zookeeper-3.4.6/data

mkdir /data/zookeeper-3.4.6/logs





在zoo.cfg中的dataDir指定的目录下,新建myid文件。

例如:$ZK_INSTALL/data下,新建myid。在myid文件中输入1。表示为server.1。

cd /data/zookeeper-3.4.6/data/myid

touch myid

echo 1 > myid





将整个目录拷贝到其他节点,然后修改myid为各自的节点标示即可:

scp -P 2022 /data/zookeeper-3.4.6/ -r u04elk.yaya.corp:/data/





5.kafka配置

下载地址:http://kafka.apache.org/downloads

 

/data/kafka_2.9.2-0.8.2.1

# egrep -v "#|^$" config/server.properties

---------------------------------------

broker.id=1

port=9092

host.name=0.0.0.0

num.network.threads=3

 

num.io.threads=8

socket.send.buffer.bytes=102400

socket.receive.buffer.bytes=102400

socket.request.max.bytes=104857600

log.dirs=/tmp/kafka-logs

num.partitions=1

num.recovery.threads.per.data.dir=1

log.retention.hours=168

log.segment.bytes=1073741824

log.retention.check.interval.ms=300000

log.cleaner.enable=false

zookeeper.connect=u04elk.yaya.corp:2181,u04elk02.yaya.corp:2181,u04elk03.yaya.corp:2181

zookeeper.connection.timeout.ms=6000

---------------------------------------





只改zook和host.name,broker.id=1这三项,其他默认

zookeeper.connect=u04elk.yaya.corp:2181,u04elk02.yaya.corp:2181,u04elk03.yaya.corp:2181

host.name=0.0.0.0





启动

bin/kafka-server-start.sh config/server.properties &



注意:

broker.id=0   broker的id,每个kafka节点配置不能一样,可以0,1,2等

host.name=192.168.10.2  broker的hostname;如果hostname已经设置的话,broker将只会绑定到这个地址上;如果没有设置,它将绑定到所有接口,并发布一份到ZK。每台节点设置成当前节点的IP地址





将文件拷贝到其他节点,修改broker.id的值,在各节点中启动kafka:

scp -P 2022 /data/kafka_2.9.2-0.8.2.1 -r u04elk.yaya.corp:/data/



bin/kafka-server-start.sh config/server.properties &



zook启动报错:

# ./zkServer.sh status

JMX enabled by default

Using config: /data/zookeeper-3.4.6/bin/../conf/zoo.cfg

Error contacting service. It is probably not running.



网上的解决方案:



1.打开zkServer.sh 找到status)

STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`

在nc与localhost之间加上 -q 1 (是数字1而不是字母l)

如果已存在则去掉

注:在我的zkServer.sh脚本文件里根本没有这一行,所以没有生效



2.调用sh zkServer.sh status 遇到这个问题。百度,google了后发现有人是修改sh脚本里的一个nc的参数来解决,可在3.4.6的sh文件里并没有找到nc的调用。配置文档里指定的log目录没有创建导致出错,手动增加目录后重启,问题解决。

注:我想不是日志的问题所以这个方法根本就没有试





3.创建数据目录,也就是在你zoo.cfg配置文件里dataDir指定的那个目录下创建myid文件,并且指定id,改id为你zoo.cfg文件中server.1=localhost:2887:3887中的1.只要在myid头部写入1即可.

注:这是我的解决办法



实际的解决办法:

vim /etc/hosts

将本机对应的127.0.0.1和192.168.1.103 对应的主机名删除(主机名是正确的,但是无法启动,可能是绑定了127.0.0.1)

kafka在centos系统上的报错:

/data/kafka_2.9.2-0.8.2.1/zookeeper.out文件中的报错:Path:/admin/preferred_replica_election Error:KeeperErrorCode = NoNode for /admin/preferred_replica_election





2016-11-23 19:26:33,472 [myid:2] - INFO  [ProcessThread(sid:2 cport:-1)::PrepRequestProcessor@645] - Got user-level KeeperException when processing sessionid:0x25890ed3acc0000 type:create cxid:0x10 zxid:0x20000000b txntype:-1 reqpath:n/a Error Path:/admin Error:KeeperErrorCode
= NoNode for /admin

2016-11-23 19:26:33,641 [myid:2] - INFO  [ProcessThread(sid:2 cport:-1)::PrepRequestProcessor@645] - Got user-level KeeperException when processing sessionid:0x25890ed3acc0000 type:setData cxid:0x1a zxid:0x20000000f txntype:-1 reqpath:n/a Error Path:/controller_epoch
Error:KeeperErrorCode = NoNode for /controller_epoch

2016-11-23 19:26:33,682 [myid:2] - INFO  [ProcessThread(sid:2 cport:-1)::PrepRequestProcessor@645] - Got user-level KeeperException when processing sessionid:0x25890ed3acc0000 type:delete cxid:0x27 zxid:0x200000011 txntype:-1 reqpath:n/a Error Path:/admin/preferred_replica_election
Error:KeeperErrorCode = NoNode for /admin/preferred_replica_election





原因分析:

机器有两块网卡,kafka的 host.name 开始只绑定在了内部IP上,另一块对外网卡无法访问,把值设置为空的话会kafka监听端口在所有的网卡上绑定,但是在外网访问时,客户端又遇到了 java.nio.channels.ClosedChannelException 异常信息,server端用tcpdump分析的时候发现客户端有传递kafka所在机器的机器名过来。在client里断点跟踪一下发现是 findLeader 的时候返回的元信息是机器名而不是IP。客户端无法解析这个机器名所以出现了前面的异常。





在server.properties 里还有另一个参数是解决这个问题的, advertised.host.name 参数用来配置返回的host.name值,把这个参数配置为外网IP地址即可。



这个参数默认没有启用,默认是返回的 java.net.InetAddress.getCanonicalHostName 的值,在我的mac上这个值并不等于 hostname 的值而是返回IP,但在linux上这个值就是 hostname 的值。

ok的配置

broker.id=0
port=9092
advertised.host.name=10.x.x.21
num.network.threads=3 num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=24
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=true
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000

centos7.2环境elasticsearch-5.0.1+kibana-5.0.1+zookeeper3.4.6+kafka_2.9.2-0.8.2.1部署详解的更多相关文章

  1. MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解

    MySQL高可用方案-PXC(Percona XtraDB Cluster)环境部署详解 Percona XtraDB Cluster简称PXC.Percona Xtradb Cluster的实现是在 ...

  2. legend3---Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

    legend3---Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead) 一.总结 一句话总结: 1.安装的话就是下载好git,va ...

  3. centos6.5环境下zookeeper-3.4.6集群环境部署及单机部署详解

    centos6.5环境下Zookeeper-3.4.6集群环境部署 [系统]Centos 6.5 集群部署 [软件]准备好jdk环境,此次我们的环境是open_jdk1.8.0_101 zookeep ...

  4. Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

    注意! laravel/homestead box项目地址已经不再是原来的 https://atlas.hashicorp.com/laravel/boxes/homestead 而已经变更成 htt ...

  5. ELK部署详解--kibana

    kibana.yml # Kibana is served by a back end server. This setting specifies the port to use.#端口server ...

  6. ELK部署详解--elasticsearch

    #Elasticsearch 是一个实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析.它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编 ...

  7. LVS负载均衡在Ubuntu环境下部署详解

    一.本地环境介绍: 负载均衡的三台机器均为Ubuntu Server 14.04 64位系统,内核中已集成ipvs模块( modprobe -l | grep ipvs 查看 ).为演示LVS负载均衡 ...

  8. CentOS7 JDK1.8部署详解

    一.下载 首先需要将本地下载好的jdk包拷贝到Linux中:scp jdk-8u91-linux-x64.tar.gz hadoop@192.168.***.***:~/software/ //星号处 ...

  9. jdk1.8源码包下载并导入到开发环境下助推高质量代码(Eclipse、MyEclipse和Scala IDEA for Eclipse皆适用)(图文详解)

    不多说,直接上干货! jdk1.8 源码, Linux的同学可以用的上. 由于源码JDK是前版本的超集, 所以1.4, 1.5, 1.6, 1.7都可以用的上.     其实大家安装的jdk路径下,这 ...

随机推荐

  1. 自动化运维:网站svn代码上线更新(flask+saltstack)

    阶段性总结:      跌跌撞撞的用了一周左右的时间做完了网站自动升级功能,中间遇到了很多的问题,也学到了很多,在此做一个总结.   1.整体架构: 后台:nginx+uwsgi  #nginx提供w ...

  2. crontab服务详解(任务计划)

    crontab是一个很方便的在unix/linux系统上定时(循环)执行某个任务的程序使用cron服务,用 service crond status 查看 cron服务状态,如果没有启动则 servi ...

  3. [2014.01.27]wfRadar 雷达图组件 2.5

    全新开发的雷达图组件--wfRadar,使用简单,功能强大,图像处理效果极佳. 组件支持多种图片格式,包括bmp,jpg,gif,wmf,emf,ico,png,pcx,tif,tga,pcx,dcx ...

  4. springmvc配置servlet的拦截形式/*和/的区别

    今天复制一个现有的spring-mvc的项目修改配置作为新的项目,结果悲剧了!遇到了一个小问题困扰了半天,找同事找总监都没有搞定,纠结了半天终于发现了问题所在,随笔记一下,所谓好记性不如烂博客嘛! 问 ...

  5. 现代DOJO(翻译)

    http://dojotoolkit.org/documentation/tutorials/1.10/modern_dojo/index.html 你可能已经不用doio一段时间了,或者你一直想保持 ...

  6. [译]How to Setup Sync Gateway on Ubuntu如何在ubuntu上安装sync-gateway

    参考文章https://hidekiitakura.com/2015/03/21/how-to-setup-sync-gateway-on-ubuntudigitalocean/ 在此对作者表示感谢 ...

  7. Maven私有仓库搭建和使用

    下载和安装 下载地址: http://www.sonatype.com/nexus-repository-oss 安装: Linux版的无需安装,直接解压即可,然后进入bin目录下,运行./nexus ...

  8. Python IDE PyCharm的基本快捷键和配置简介

    快捷键 1.编辑(Editing)Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctr ...

  9. [手机取证] Apple Watch取证初探

    转载文章请注明出处 1. 关于Apple Watch 苹果公司在2015年3月正式发布了智能手表Apple Watch,包括Apple Watch.Apple Watch Sport以及Apple W ...

  10. ant 介绍 http://blog.csdn.net/sunjavaduke/archive/2007/03/08/1523819.aspx

    转自: 本内容包含了Ant的历史简要介绍,Ant的功能以及Ant框架的介绍,并对下载安装使用Ant进行了示例介绍,同时通过一个Java程序讲解了Ant的基本使用方法. 1.       Ant简介:这 ...