Governance模块

Governance为用户提供一个事件治理的Web管理端。支持事件治理、区块链节点分析、系统监控预警等。

本节介绍Governance子模块的详细安装步骤,部署系统之前请确认系统要求WeEvent服务的快速安装请参见快速安装

以下安装以CentOS 7.2为例。

前置条件

  • Broker模块

    必选配置。通过Broker访问区块链。

​ 版本和Governance一致。具体安装步骤,请参见Broker模块安装

  • Mysql数据库

    必选配置。Governance通过Mysql存储统计数据。

    推荐安装Mysql 5.7+版本。具体安装步骤,安装请参见Mysql安装

获取安装包

下载安装包weevent-governance安装包,并且解压到/usr/local/weevent/下。

$ cd /usr/local/weevent/
$ wget https://github.com/WeBankFinTech/WeEvent/releases/download/v0.9.0/weevent-governance-0.9.0.tar.gz
$ tar -xvf weevent-governance-0.9.0.tar.gz

如果机器无法访问外网wget执行失败,可以通过别的方式下载再rz上传。

解压后的目录结构如下

$ cd ./weevent-governance-0.9.0
$ tree -L 2
|-- apps
|   `-- weevent-governance-0.9.0.jar
|-- check-service.sh
|-- conf
|   |-- application-dev.yml
|   |-- application-prod.yml
|   |-- application.yml
|   |-- log4j2.xml
|   |-- mappers
|   |-- server.p12
|   `-- sso.client.properties
|-- gen-cert-key.sh
|-- governance.sh
|-- html
|   |-- index.html
|   `-- static
`-- init-governance.sh

修改配置文件

  • 配置端口

    在配置文件./conf/application-prod.yml中,Governance 的服务端口server:port ,默认8082

    server:
      port: ${server_port}
    
  • 配置Mysql数据库

    在配置文件./conf/application-prod.yml中,修改datasource中的url配置、usernamepassword

    spring:  
      datasource:
        url: jdbc:mysql://127.0.0.1:3306/goverdb?useUnicode=true&characterEncoding=utf-8&useSSL=false
        driver-class-name: org.mariadb.jdbc.Driver
        username: xxx
        password: yyyy
        type: org.apache.commons.dbcp2.BasicDataSource
    

    初始化系统,执行脚本init-governance.sh ,成功输出如下。否则,用户需要检查配置项是否正常。

    $ ./init-governance.sh
    init governance db success
    
  • 配置Broker访问入口

    在配置文件./conf/application-prod.yml中,修改对应的broker访问URL。

     weevent:
       url: http://127.0.0.1:8080/weevent
    
  • 生成HTTPS证书

    通过HTTPS方式访问Governance服务,需要配置一个访问证书。服务采用PKCS12格式

    安装包里自带了默认证书./conf/server.p12 ,可以直接使用。用户也可以选择使用包里的./gen-cert-key.sh脚本重新生成证书。使用新证书过程如下:

    • 生成证书

      $ ./gen-cert-key.sh
      Enter keystore password:  
      Re-enter new password: 
      What is your first and last name?
        [Unknown]:  zhangsan
      What is the name of your organizational unit?
        [Unknown]:  org1       
      What is the name of your organization?
        [Unknown]:  orgname
      What is the name of your City or Locality?
        [Unknown]:  shenzhen
      What is the name of your State or Province?
        [Unknown]:  guangdong
      What is the two-letter country code for this unit?
        [Unknown]:  cn
      Is CN=zhangsan, OU=org1, O=orgname, L=shenzhen, ST=guangdong, C=cn correct?
        [no]:  y
      

      根据提示填写证书主题信息和密码,生成的证书server.p12已更新到./weevent-governance-0.9.0/conf/server.p12

    • 修改证书配置

      参见./conf/application.ymlssl配置项

        ssl: 
          enabled: true
          key-store: classpath:server.p12
          key-store-password: 123456
          keyStoreType: PKCS12
          keyAlias: weevent
      

服务启停

  • 服务启动 通过./governance.sh start命令启动服务,正常启动如下:

    $ ./governance.sh start
    start weevent-governance success (PID=53926)
    add the crontab job success
    

    通过./governance.sh stop命令停止服务。

    ./governance.sh start命令会启动进程,并且将进程监控命令./governance.sh monitor添加到crontab里。

    ./governance.sh stop命令在进程成功停止后会移除crontab监控任务。

  • 验证服务

    通过./check-service.sh 命令检查服务功能是否正常。

    $ ./check-service.sh
    check governance service
    governance service is ok
    

加入Nginx反向代理

WeEvent服务的所有请求都通过Nginx模块接入,Nginx模块的安装参见Nginx模块安装

如果需要部署多个进程实例,将上述步骤安装好的Governance目录打包拷贝到其他机器上,解压启动即可。

Nginx配置文件/etc/nginx/conf/conf.d/rs.conf中,以下为配置2个Governance进程的样例。

upstream governance_backend{
    server 127.0.0.1:8082 weight=100 max_fails=3;
    server 127.0.0.2:8082 weight=100 max_fails=3;
  
    ip_hash;
    keepalive 1024;
}

通过Nginx重新加载配置后生效,进入Nginx安装路径,执行以下命令。

$ ./sbin/nginx -t
.../nginx/conf/nginx.conf syntax is ok
.../nginx/conf/nginx.conf test is successful
$ ./sbin/nginx -s reload

用户可以通过浏览器访问http://ip:8080/weevent-governance/。Governance页面如下:

../../_images/Governance-ui.png