dubbo-admin:
因為我們不能直觀的看到dubbo和zk上到底有什么服務(提供者),所以我們需要一個可視化工具來方便我們管理每一個服務和每一個節點。
dubbo-admin 就是dubbo的管理控制台
需要的准備工作是你的Linux已經安裝了
jdk
Zookeeper
tomcat
編譯java包還需要用到Maven,安裝教程
https://www.cnblogs.com/centos2017/p/10382161.html
1、官網下載dubbo源碼
Dubbo 在2.6版本時合並了dubbox 的分支,現在dubbo-admin也遷移到一個單獨項目 apache/incubator-dubbo-ops
在這個地址只能下載 apache-dubbo-2.5.0版本,這個里面帶有admin
https://github.com/apache/incubator-dubbo/
新版本中apache-dubbo-2.7.0已經沒有dubbo-admin了
轉移到新項目
總結:
- 打成war包,放到tomcat容器中,啟動,訪問,期間可能存在端口沖突,主要使用於dubbo2.5.x之前的版本
- 打成jar包,通過java -jar xxx.jar命令啟動,訪問,dubbo2.6.0之后開始使用該方式
舊版本的安裝流程
1.下載
2、編譯dubbo-admin工程,打成war包 dubbo-admin-2.5.8.war
3、進入 WEB-INF 目錄修改文件 dubbo.properties 設置zookeeper 地址 dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest 4、在tomcat 中部署dubbo-admin-2.5.8.war 5、用戶密碼都root/root
新版本安裝流程
### 生產環境配置
1. 下載代碼: `git clone https://github.com/apache/incubator-dubbo-ops.git`
2. 在 `dubbo-admin-server/src/main/resources/application-production.properties`中指定注冊中心地址
3. 構建
> - `mvn clean package`
4. 啟動
* `mvn --projects dubbo-admin-server spring-boot:run`
或者
* `cd dubbo-admin-distribution/target; java -jar dubbo-admin-0.1.jar`
5. 訪問 `http://localhost:8080`
dubbo-Monitor:
dubbo-monitor-simple是dubbo提供的簡單監控中心,可以用來顯示接口暴露,注冊情況,也可以看接口的調用明細,調用時間等。
- Simple Monitor掛掉不會影響到Consumer和Provider之間的調用,所以用於生產環境不會有風險。
- Simple Monitor采用磁盤存儲統計信息,請注意安裝機器的磁盤限制,如果要集群,建議用mount共享磁盤。
- charts目錄必須放在jetty.directory下,否則頁面上訪問不了。
- 配置好了之后可以結合admin管理后台使用,可以清晰的看到服務的訪問記錄、成功次數、失敗次數。
下面是官網的安裝步驟
安裝: git clone https://github.com/apache/incubator-dubbo-ops cd incubator-dubbo-ops && mvn package cd dubbo-monitor-simple/target && tar xvf dubbo-monitor-simple-2.0.0-assembly.tar.gz cd dubbo-monitor-simple-2.0.0 配置: vi conf/dubbo.properties 啟動: ./assembly.bin/start.sh 停止: ./assembly.bin/stop.sh 重啟: ./assembly.bin/restart.sh 調試: ./assembly.bin/start.sh debug 系統狀態: ./assembly.bin/dump.sh 總控入口: ./assembly.bin/server.sh start ./assembly.bin/server.sh stop ./assembly.bin/server.sh restart ./assembly.bin/server.sh debug ./assembly.bin/server.sh dump 標准輸出: tail -f logs/stdout.log 命令行 [1]: telnet 127.0.0.1 7070 help 或者: echo status | nc -i 1 127.0.0.1 7070 訪問: http://127.0.0.1:8080
我的安裝步驟
1. 下載源碼(托管在github上) ~]# wget https://github.com/alibaba/dubbo/archive/dubbo-2.6.0.zip ~]# unzip dubbo-2.6.0.zip ~]# cd dubbo-dubbo-2.6.0/ 2. 安裝依賴 ~]# yum -y install java-1.8.0-openjdk maven maven: 用於編譯dubbo-simple-monitor jdk: dubbo-simple-monitor是java語言所寫,故需要jdk 3. 編譯dubbo-simple-monitor dubbo-dubbo-2.6.0]# cd dubbo-simple/dubbo-monitor-simple/ dubbo-monitor-simple]# mvn clean install
編譯成功后的目標文件為:target/dubbo-monitor-simple-2.6.0-assembly.tar.gz
進入target文件夾
可以直接下載我編譯好的包

4. 修改配置文件 我們使用dubbo-monitor-simple-2.6.0-assembly.tar.gz啟動程序,因為還有一些配置需要修改 target]# tar xf dubbo-monitor-simple-2.6.0-assemble.tar.gz -C /usr/local target]# cd /usr/local local]# vim dubbo-monitor-simple-2.6.0/conf/dubbo.properties # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. dubbo.container=log4j,spring,registry,jetty dubbo.application.name=simple-monitor dubbo.application.owner= #dubbo.registry.address=multicast://224.5.6.7:1234 dubbo.registry.address=zookeeper://127.0.0.1:2181 zookeeper的地址 #dubbo.registry.address=redis://127.0.0.1:6379 #dubbo.registry.address=dubbo://127.0.0.1:9090 dubbo.protocol.port=7070 dubbo.jetty.port=8080 服務啟動后訪問的端口(修改一下,不要和tomcat沖突) dubbo.jetty.directory=/data/monitor dubbo.charts.directory=${dubbo.jetty.directory}/charts dubbo.statistics.directory=/data/monitor/statistics dubbo.log4j.file=logs/dubbo-monitor-simple.log dubbo.log4j.level=WARN

5. 啟動服務 dubbo-monitor-simple-2.6.0]# bin/start.sh
報錯:
2018-07-06 16:18:37,135 [main] WARN com.alibaba.dubbo.config.ServiceConfig (ServiceConfig.java:568) - [DUBBO] lvs: lvs: Temporary failure in name resolution, dubbo version: 2.6.0, current host: 127.0.0.1 java.net.UnknownHostException: lvs: lvs: Temporary failure in name resolution at java.net.InetAddress.getLocalHost(InetAddress.java:1505) at com.alibaba.dubbo.config.ServiceConfig.findConfigedHosts(ServiceConfig.java:566) at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:469) at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:357) at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:316) at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:215) at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:121) at com.alibaba.dubbo.config.spring.ServiceBean.onApplicationEvent(ServiceBean.java:50)
解決:修改hosts文件,把服務器名稱 lvs 和 127.0.0.1 地址做一下 映射就好了
# vi /etc/hosts 加入 127.0.0.1 lvs
出現的錯誤
1.
# ./start.sh ./start.sh: line 30: netstat: command not found Starting the simple-monitor ...../start.sh: line 79: netstat: command not found ../start.sh: line 79: netstat: command not found
提示找不到netstat命令,centos7 默認不使用這個命令了。
我們安裝一下network工具包,就可以使用這個命令了
# yum install net-tools
2.
訪問時無法看到圖
解決
- dubbo-simple-monitor配置文件中dubbo.jetty.directory中指明的目錄需要手動創建
- 我們需要監控的服務在配置dubbo時要加入<dubbo:monitor protocol="registry"/>這項配置
