一、运维配置


基础配置

        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. 3-学习GPRS_Air202(需要知道的关于Lua的一些基本的知识)

      http://www.cnblogs.com/yangfengwu/p/8948935.html 学东西一定是打破沙锅学到底,有问题就解决问题,不要试图去回避或者放弃解决当前的问题,如果总是回避或 ...

  2. 南京邮电大学java程序设计作业在线编程第五次作业

    王利国的"Java语言程序设计第5次作业(2018)"详细 主页 我的作业列表 作业结果详细 总分:100 选择题得分:50  1. 以下哪一个工具是Java的编译器?( ) A. ...

  3. 剑指架构师系列-Redis集群部署

    初步搭建Redis集群 克隆已经安装Redis的虚拟机,我们使用这两个虚拟机中的Redis来搭建集群. master:192.168.2.129 端口:7001 slave:192.168.2.132 ...

  4. 05_CRUD操作

      1.Params拦截器: 作用:Parameters拦截器将把表单字段映射到ValueStack栈的栈顶对象的各个属性中, 注意:如果某个字段在栈顶对象中没有对应的属性,则Params拦截器将尝试 ...

  5. Android开发艺术探索第五章——理解RemoteViews

    Android开发艺术探索第五章--理解RemoteViews 这门课的重心在于RemoteViews,RemoteViews可以理解为一种远程的View,其实他和远程的Service是一样的,Rem ...

  6. how to output quotes in bash prompt

    introduction In certain situations, quotes are required to be output in the command prompt. To do th ...

  7. Android样式(style)和主题(theme)

    样式和主题 样式是指为 View 或窗口指定外观和格式的属性集合.样式可以指定高度.填充.字体颜色.字号.背景色等许多属性. 样式是在与指定布局的 XML 不同的 XML 资源中进行定义. Andro ...

  8. 网络爬虫框架Scrapy简介

    作者: 黄进(QQ:7149101) 一. 网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本:它是一个自动提取网页的程序,它为搜索引擎从万维 ...

  9. 一个貌似比较吊的递归转换为loop--总算成功了.

    class Stack(object): """ A class to hold arguements and state data. """ ...

  10. JBOSS EAP 6 系列六 公共模块的jar配置到jboss的modules详细配置

    公司项目中遇到并要解决的问题 1:原则上除了自己写的代码之外,公共的jar不应该都在打包的时候打包到ear里面,这样的话包太大,也不符合的分层的逻辑,在jboss容器内部,每个ear的包重复jar都会 ...