Dubbo监控和管理(dubbokeeper)

作者: 十二楼中月 | 来源:发表于2018-06-28 14:57 被阅读83次

    dubbo服务原理图:


    原理图

    1. Dubbo服务管理和监控的选择

    Dubbo服务的监控官方提供dubbo-monitor-simple, 韩都衣舍的dubbo-monitor-x, 还有dubbokeeper
    下面推荐几种搭配:
    a: 官方的dubbo-admin + 韩都的dubbo-monitor-x
    b: 全官方的dubbo-admin + dubbo-monitor-simple
    c: dubbokeeper 一套
    试验过dubbo-monitor安装和测试效果不是太好,最近有测试dubbokeeper,他包括了管理和监控,并且和透视zookeeper其他中心.但是这里发现监控的数据准确性不高。监控只是一方面,真正还是希望发送故障时可以第一时间告警,dubbokeeper没有告警功能。

    2. Dubbokeeper服务安装和配置

    下载源码
    git clone https://github.com/dubboclub/dubbokeeper.git
    用mysql存储,先执行根目录下的
    install-mysql.sh
    在target目录下 监控数据存储和收集
    dubbokeeper/target/mysql-dubbokeeper-server/mysql-server/conf 修改这里面的配置
    配置监控的zookeeper注册中心
    dubbo.application.name=mysql-monitor
    dubbo.application.owner=bieber
    dubbo.registry.address=zookeeper://192.168.15.203:2181
    dubbo.protocol.name=dubbo
    dubbo.protocol.port=20884
    
    monitor.collect.interval=10000
    #use netty4
    dubbo.provider.transporter=netty4
    monitor.write.interval=60
    #mysql配置 如果是远程的localhost改为mysql所做主机mysql 端口根据需要修改。后面的是你创建用来存储监控的数据库名
    dubbo.monitor.mysql.url=jdbc:mysql://localhost:3306/dubbo-monitor
    dubbo.monitor.mysql.username=root
    dubbo.monitor.mysql.password=wlw123456
    dubbo.monitor.mysql.pool.max=10
    dubbo.monitor.mysql.pool.min=10
    
    

    此处需要特别注意:因为使用mysql数据库存储因此在此之前必须先安装mysql软件可以安装在同一个机器上也可以安装在其他机器上但是要能连接上去
    初始化数据库:

    CREATE TABLE `application` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(100) NOT NULL DEFAULT '',
      `type` varchar(50) NOT NULL DEFAULT '',
      PRIMARY KEY (`id`),
      UNIQUE KEY `应用名词索引` (`name`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    3. 管理和UI展示

    dubbokeeper/target/mysql-dubbokeeper-ui这个下面的war包dubbokeeper-ui-1.0.1.war扔到tomcat或jetty部署即可(这个才是真正的管理+监控 UI)
    这里需要注意需要安装好tomcat并且在将war放到tomcat的webapp下面删除tomcat的默认文件。
    重启tomcat,在webapp下发现多了个文件夹dubbokeeper-ui-1.0.1修改dubbokeeper-ui-1.0.1/WEB-INF/classes下的dubbo.properties

    设置zookeeper注册中心 此处需要和上面设置的mysql-monitor一样
    dubbo.application.name=common-monitor
    dubbo.application.owner=bieber
    dubbo.registry.address=zookeeper://192.168.15.203:2181
    
    #use netty4
    dubbo.reference.client=netty4
    
    #peeper config  此处可以配置多个zookeeper注册中心可以透视zookeeper服务
    peeper.zookeepers=101.89.137.26:2181,101.89.177.224:2181,180.153.53.160:2181,192.168.15.203:2181
    peeper.zookeeper.session.timeout=60000
    
    #logger 日志文件
    monitor.log.home=/monitor-log
    
    monitor.collect.interval=6000
    

    重新配置以后,删除掉war包。重启tomcat服务
    http://192.168.199.90:82/dubbokeeper-ui-1.0.1/index.htm#/statistics

    查看界面
    关系

    4. 服务端和客户端配置

    • monitor


      monitor报错

      打开monitor时报错如上图,没有启动dubbo-monitor-server导致的

    cd /root/dubbokeeper/target/mysql-dubbokeeper-server/bin
    chmod +x start-mysql.sh
    ./start-mysql.sh
    
    启动成功

    如上图就是启动成功了,再次过程中可能会遇到数据库连接报错,修改配置文件中数据库部分,如果找不到数据库名称,检查新建的数据库名和初始化表是否正确。此处需要注意:后台运行可以使用nohup ./start-mysql.sh
    上述操作以后发现monitor下面并没有数据:

    1.  数据有问题,里面没有生成数据。检查两个配置文件中设置zookeeper中心是否相同
    2.  数据库是否初始化
    3.  Dubbo服务的提供者和消费者是否设置spring-dubbo.xml
    <!-- 监控中心-->
    <dubbo:monitor protocol="registry" />
    4.  如果都设置了等待一会儿,可能需要你去调用一次服务触发下就可以看到
    
    监控

    查看dubbo服务,展示耗时、并发等,显示详细的调用情况


    dubbo服务调用情况
    详细调用
    • Zookeeper


      展示各个注册中心的服务
    • Admin管理
      应用管理
      包含当前系统所有子应用信息列表,以及各个引用服务引用消费列表信息,同时可以对某个应用的服务进行上下线操作,权重调整等,同时可以查看应用部署实体信息列表。目的是实现服务的可管理
      动态配置
      这是利用dubbo基于注册中心来管理服务实现对服务的参数在服务运行状态进行调整,比如对服务的超时时间调整,对服务的mock以及可以添加自定义参数的调整等,目的是服务的可配置。


      admin

    此工具的admin功能不是很全,建议可以使用官方提供的dubbo-admin进行管理

    相关文章

      网友评论

        本文标题:Dubbo监控和管理(dubbokeeper)

        本文链接:https://www.haomeiwen.com/subject/ihvgyftx.html