| 背景 最近项目中使用了 dubbo 在实现服务注册和发现,需要实现对服务提供者和调用者的监控,之前有研究过基于 redis作为注册中心的监控平台,不过本文基于 zk 作为注册中心,进行 dubbo-admin 和 dubbo-monitor 搭建。另外项目基于 dubbo 2.6.4版本,所以该监控版本调整为 dubbo2.6.4。步骤 GitHub官方组件目前在重构,采用前后分离技术,尚未完成。本文采用的还是 master 分支的老版本 dubbo-admingit clone https://github.com/apache/incubator-dubbo-ops将项目根目录下的 pom.xml文件中的 dubbo 版本调整为2.6.4 <dubbo_all_version>2.6.4</dubbo_all_version>将 dubbo-admin 项目下的 pom.xml文件中的 dubbo版本进行调整,并且增加 netty 依赖 
 <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.6.4</version></dependency><dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.30.Final</version></dependency> 
 server.port=7001spring.velocity.cache=falsespring.velocity.charset=UTF-8spring.velocity.layout-url=/templates/default.vmspring.messages.fallback-to-system-locale=falsespring.messages.basename=i18n/message# root 用户登录账户和密码spring.root.password=root# guest 用户登录账户和密码spring.guest.password=guest# zk 注册中心地址,可以配置单个或者多个dubbo.registry.address=zookeeper://ip1:2181?backup=ip2:2181,ip3:2181# 配置 zk 中根目录文件夹,不配默认为 dubbo,并非生产者和消费的的分组dubbo.registry.group=ad-dubbo 
 说明:如果不这样修改,在管理后台会有问题,官方 issue
 dubbo-monitor搭建在根目录下执行 mvn clean package启动 dubbo-admin,执行 java -jar dubbo-admin/target/dubbo-admin-0.0.1-SNAPSHOT.jar打开http://127.0.0.1:7071即可看到界面,登录账户和密码为 applicatio.properties中配置的默认root/root,guest/guest 
 1、修改 dubbo-monitor-simple 项目 resources/conf 目录下的 dubbo.properties dubbo.container=log4j,spring,registry,jetty-monitordubbo.application.name=dubbo-admin-monitordubbo.application.owner=dubbo# zk 注册中心地址同 admindubbo.registry.address=zookeeper://1p1:2181?backup=ip2:2181,ip3:2181dubbo.protocol.port=7070dubbo.jetty.port=7002dubbo.monitor.queue=1000# 统计数据和图表的生产路径,需要手动提前创建dubbo.jetty.directory=/opt/monitor# charts 目录,必须放到 dubbo.jetty.directory目录下dubbo.charts.directory=${dubbo.jetty.directory}/charts# statistics 目录,必须放到 dubbo.jetty.directory目录下dubbo.statistics.directory=${dubbo.jetty.directory}/statisticsdubbo.log4j.file=logs/dubbo-monitor-simple.logdubbo.log4j.level=WARN# zk 注册中心的根目录,不配置默认为 dubbodubbo.registry.group=ad-dubbo 
 2、在根目录下执行 mvn clean package,在 dubbo-monitor-simple/target目录下的 dubbo-monitor-simple-2.0.0-assembly.tar.gz拷贝到其他目录,或者本目录,解压并启动 tar xzvf dubbo-monitor-simple-2.0.0-assembly.tar.gzcd dubbo-monitor-simple-2.0.0./assembly.bin/server.sh start 
 3、打开http://127.0.0.1:7002 配置生产者和消费者,进行调用就会显示类似下面的图,这里的图修改图片生成的时间为1分钟 4、注意事项 dubbo.monitor.queue:监测队列大小,默认为100000chart 图片默认五分钟根据统计目录的数据生成一张 png 图片,在SimpleMonitorService.java 中110行,可以修改自己需要的时间间隔, ![]()dubbo.jetty.directory=/opt/monitor这个路径必须自己手动提前创建,否则无法自动创建统计和图片目录,导致没有图片显示如果没有出现图片,在生产者和消费者的配置中添加监控地址 dubbo.monitor.address= 172.20.155.60:7070 
 # 配置文件dubbo.registry.group = ad-dubbodubbo.monitor.address= 172.20.155.60:7070
# 基于 SpringBoot 增加配置@Beanpublic MonitorConfig monitorConfig() { MonitorConfig config = new MonitorConfig(); config.setAddress(monitorAddress); config.setProtocol("registry"); return config;} 
 
 |