一、运维配置


基础配置

        tickTime:最小事件间隔的长度。 
        dataDir:数据快照目录

高级配置

        dataLogDir:Zookeeper服务器存储事务日志文件的目录,默认和快照数据存储在同一个目录,我们应该尽量分开,尽量给事务日志的目录配置到一个单独的磁盘。可以极大的提高Zookeeper的整体性能。因为事务日志的记录多磁盘性能要求非常高, 为了保证数据的一致性,Zookeeper在返回客户端事务请求响应之前, 必须将本次请求对应的事务写入到磁盘中,因此事务日志写入的性能直接决定了Zookeeper在处理事务请求时的吞吐量,针对同一个磁盘的其他并发读写操作,尤其是快照操操作会极大的影响事务日志的写入性能。 
        globalOutstandingLimit:配置Zookeeper服务器最大请求堆积数。
        preAllocSize:配置Zookeeper事务日志文件预分配的磁盘空间的大小,默认为64m。
        snapCount:配置相邻两次数据快照之间的事务操作的次数,事务操作之后进行一次数据快照。 
        maxClientCnxns:socket层面上来限制单个客户端与单个服务器之间的并发连接数, 通过ip对连接进行限制。0:不做限制(只针对单台客户机和单台服务器的限制,不可以对集群进行总数的限制)
        clientPortAddress:针对多网卡的机器,可以为每个ip地址指定不同的监听端口。
        minSessionTimeout、maxSessionTimeout:服务器对客户端会话的超时时间进行限制(两数的范围内)。
        fsync.warningthresholdms:用于配置事务日志同步操作时消耗事件的报警阀值,一旦进行同步操作,消耗的事件大于这个参数的值,那么就会在日志中打印报警日志。
        autopurge.snapRetainCount:历史事务日志和快照日志自动清理。自动清理的时候需要保存的快照数据文件数量,和对应的事务日志文件 。最小值是3,配置的比3小的话会自动设置为3,至少需要保存3个快照数据文件和事务日志文件。 
        autopurge.purgeInterval:和上面一起使用,配置历史文件自动清理的频率,如果是0或者负数表示不需要开启定时清理的功能, 默认是0。
        electionAlg:配置Zookeeper的lender选举算法。3.4.0后只有一中选举算法,所以这个参数现在是没用了。 
        leaderServes:配置lender服务器是否接收客户端的连接,默认是可以接收的。(Zookeeper的lender是用来进行事务更新请求的协调,和集群本身的运行时的协调。这里可以设置不接收客户端的连接)
        syncLimit:lender和flower之间心跳检测的最大延迟时间。用来判断flower是否存活。默认5s,可以根据网络环境来调整。

二、ZooKeeper 4字命令

        因为很多命令都是4个字,所以叫4字命令。 

判断Zookeeper是否启动

        telnet 192.168.10.5 2181
        连接成功后输入:stat,就可以查看到相关信息了。
        也可以通过nc的方式来实现:echo stat | nc 192.168.10.5 2181
        效果是一样的。
    
        其他命令
        stat:获取Zookeeper服务器运行时的状态信息。 

        srvr:和stat类似,仅仅输出服务器的自身信息,没有客户端的连接信息。
        
        conf:Zookeeper服务器运行时使用的基本配置信息。
        
        cons:输出当前服务器的所有客户的连接信息等

        crst:功能性的指令,用于重置所有客户端的连接统计信息。 

        dump:用于输出当前集群的会话信息,包括这么会话的会话id, 以及每个会话创建的临时节点等信息。 

        envi:输出Zookeeper所在服务器的运行时环境信息。 

        ruok:输出当前Zookeeper服务器是否正在运行。 

        wcsh输出当前服务器管理的watcher管理的概要信息 。 

        wchc:输出当前服务器上管理的watcher管理的详细信息。 

        wchp:和wchc类似,不同在于wchp已节点路径为单位。 

        mntr:输出比stat更为相信的服务器信息

三、在运维中使用 JMX

        对外提供运行时数据信息。

1. 需要修改Zookeeper服务器的启动脚本
    vim zkServer.sh,ZOOMSIN=修改为:
    ZOOMAIN="
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.local.only=true
-Djava.rmi.server.hostname=192.168.84.141
-Dcom.sun.management.jmxremote.port=8899
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
org.apache.zookeeper.server.quorum.QuorumPeerMain"
    重启Zookeeper。(如果要管理多台服务器,需要对每一台服务器都进行类似的修改。 )

2. 使用JConsole来管理Zookeeper
    JConsole是jdk的工具,需要安装jdk
    运行:C:\Program Files\Java\jdk1.8.0_60\bin\jconsole.exe

    连接:输入上面配置的的ip和端口。

    这里我们主要关注MBean,是Zookeeper服务器对外暴露的MBean,点击进去可以查看详细信息
    


四、监控平台搭建和使用

1. netflix的exhibitor
    Netflix公司也开源的一套ZooKeeper客户端框架Curator。    

2. zabbix
    zabbix业界比较出色的服务器监控软件。

exhibitor的安装和使用

1. github下载源代码
    https://github.com/Netflix/exhibitor,下载zip包。

2. 编译
    进入目录:exhibitor-master\exhibitor-master\exhibitor-standalone\src\main\resources\buildscripts\standalone\maven>
    执行命令:mvn clean package 【我编译好的:http://pan.baidu.com/s/1slF2gVz 】
    把编译好的target下的jar上传到服务器,执行:java -jar exhibitor-1.5.6.jar -c
file

3. 使用
    可以重启集群中的Zookeeper、查看节点信息、配置集群中的Zookeeper、查看log等操作
    
    例子:
    制作一份集群中都共享的配置(需要在集群中的服务器都安装exhibitor的jar)
    

Zookeeper运维的更多相关文章

  1. zookeeper运维 --【】转】

     from:http://blog.csdn.net/hengyunabc/article/details/19006911  zookeeper运维 尽管zookeeper在编程上有很多的阱陷,AP ...

  2. zookeeper 运维

    尽管zookeeper在编程上有很多的阱陷,API也非常的难用,但zookeeper服务本身可以说是很牢靠的了,所以在网上貌似关于运维的文章比较少. 但省心并不代表不会出麻烦,下面总结下zookeep ...

  3. zookeeper运维(转)

    本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要 ...

  4. ZooKeeper 运维经验

    转自:http://www.juvenxu.com/2015/03/20/experiences-on-zookeeper-ops/ ZooKeeper 运维经验 ZooKeeper 是分布式环境下非 ...

  5. Zookeeper 运维实践手册

    Zookeeper是一个高可用的分布式数据管理与协调框架,该框架能很好地保证分布式环境中数据一致性.一般用来实现服务发现(类似DNS),配置管理,分布式锁,leader选举等. 一.生产环境中Zook ...

  6. Zookeeper运维常用四字命令

    Zookeeper运维常用四字命令 echo stat|nc 127.0.0.1 2181 查看哪个节点被选择作为follower或者leader 使用echo ruok|nc 127.0.0.1 2 ...

  7. Zookeeper运维经验

    转自:http://www.juvenxu.com/2015/03/20/experiences-on-zookeeper-ops/ ZooKeeper 是分布式环境下非常重要的一个中间件,可以完成动 ...

  8. Zookeeper运维的一些经验[转]

    Zookeeper是一个分布式协调框架,有不错的性能,也经过许多公司的验证,所以在很多场景都有使用.大家一般用Zookeeper来实现服务发现(类似DNS),配置管理,分布式锁,leader选举等.在 ...

  9. Zookeeper运维问题集锦

    实际工作中用到Zookeeper集群的地方很多, 也碰到过各种各样的问题, 在这里作个收集整理, 后续会一直补充; 其中很多问题的原因, 解决方案都是google而来, 这里只是作次搬运工; 其实很多 ...

随机推荐

  1. Noip2017 普及 T3 Chess

    神奇的场上原码 #include<iostream> #include<cstdio> #include<cstring> #include<queue> ...

  2. 多表insert操作详解

    --1.无条件的多表insert all ; ; ; --没有条件,向多个目标表全量插入,必须有all insert all --不指定emp_1后面的列,也不指定values,那么emp_1中的所有 ...

  3. VMWare 虚拟机 共享文件夹

    1.不能拷贝和直接拖拽文件至虚拟机系统中  解决办法:    通过共享文件夹的方式进行文件共享.   (Win7 32位  10.0版本的虚拟机). ①:选择虚拟机 虚拟机 → 设置  如下图: ②: ...

  4. PHP 完整表单实例

    PHP - 在表单中确保输入值 在用户点击提交按钮后,为确保字段值是否输入正确,我们在HTML的input元素中插添加PHP脚本, 各字段名为: name, email, 和 website. 在评论 ...

  5. Compass 更智能的搜索引擎(3)--高亮,排序,过滤以及各种搜索

    要想使得一个搜索系统更加的完美,查询精确度和页面显示算是其中比较重要的两个方面.今天,我们就来谈谈怎么使得我们的搜索系统更加的完美. 关于分词 下载地址 配置 关于高亮 关于排序 原理 冗余字段 使用 ...

  6. 从1....n中随机输出m个不重复的数

    void knuth(int n, int m) { srand((unsigned) time( NULL)); for (int i = 0; i < n && m; i++ ...

  7. 初识Spring Boot框架

    前面的铺垫文章已经连着写了六篇了,主要是介绍了Spring和SpringMVC框架,小伙伴们在学习的过程中大概也发现了这两个框架需要我们手动配置的地方非常多,不过做JavaEE开发的小伙伴们肯定也听说 ...

  8. 2014 BDTC 参会有感

    中国大数据技术大会(Big Data Technology Conference,BDTC)是目前国内最具影响.规模最大的大数据领域的技术盛会.大会的前身是Hadoop中国云计算大会(Hadoop i ...

  9. ROS探索总结(十七)——构建完整的机器人应用系统

           上一篇博客介绍了HRMRP机器人平台的设计,基于该平台,可以完成丰富的机器人应用,以较为典型的机器人导航为例,如何使用HRMRP来完成相应的功能?本篇博客将详细介绍如何将HRMRP应用到 ...

  10. 3-sum问题

    给定一个整数数组,判断能否从中找出3个数a.b.c,使得他们的和为0,如果能,请找出所有满足和为0个3个数对. #define SIZE 10 void judgeAndPut(int* arr, i ...