zoukankan      html  css  js  c++  java
  • Hygieia

    文主要是针对Hygieia的基本组件的搭建过程,包括源码编译环境的搭建、源码编译成jar包、服务打包成docker镜像、运行DB、API、UI服务,以下所有操作本人均已验证,如有问题欢迎指正,谢谢!(本文运行环境为安装了dockercentos 7。)

    1、准备环境(Centos7)

    1.1 安装JDK 

    (1) 下载JDK安装包,我这里直接到Oricle下载Centos7版本的RPM包即可:

    wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u171-linux-x64.rpm

    (2) 安装JDK

    rpm –ivh jdk-8u171-linux-x64.rpm

    安装完之后,使用java –version命令可打印出java的版本:

    (3) 配置环境变量:

      环境变量主要是要配置JAVA_HOMECLASSPATH(虽然rpm安装的java会自动添加java环境变量,但是在编译hygieia的时候,会报找不到tools.jar的异常,所以提前添加这两个),编辑/etc/profile文件,在文件底部添加以下两行:

    export JAVA_HOME=/usr/java/jdk1.8.0_171-amd64
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    然后执行“source /etc/profile”命令,使环境变量立即生效。

    (4) 验证:

    执行“echo $JAVA_HOME”和“echo $CLASSPATH”可以打印出配置的内容即可。

     

    1.2 安装Maven 

     (1)  下载maven的安装包,我这里下载的是3.3.9版本

    wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz

    (2)  解压:

    tar xzvf apache-maven-3.3.9-bin.tar.gz

     (3)  将解压的包移动到“/usr/local目录

    mv apache-maven-3.3.9-bin /usr/local/ maven3
    

    (4) 配置maven环境变量

      编辑/etc/profile文件,添加maven的信息:

    export M2_HOME=/usr/local/maven3
    export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin

    执行“source /etc/profile”,使环境变量生效

    (5)  验证:

    执行“mvn –v”显示maven的信息:

    maven安装完成。

    1.3 安装git

     git安装比较简单,直接使用yum安装即可,不需要额外的配置,操作如下:

    yum install –y git

     安装结束之后,验证git 

     

     1.4 安装node.js

    (1) 下载node.js

    wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz

     (2) 解压node压缩包:下载完成之后本地会保存一份node-v8.11.3-linux-x64.tar.xz文件

    tar -xvf node-v8.11.3-linux-x64.tar.xz

     (3) 移动node文件夹到/usr/local目录:

    mv node-v8.11.3-linux-x64 /usr/local/node

     (4) 配置node环境变量:

    编辑/etc/profile文件,添加以下内容(PATH直接追加,且放到最后一行):

    export NODE_HOME=/usr/local/node
    export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$NODE_HOME/bin

     (5) 验证node安装,执行node –v和npm –v,可得到node和npm的版本信息:执行source /etc/profile,使环境变量生效。

     

     能打印出以上信息,表示node正常安装。

    (6) 更新npm到最新版本:

    npm i npm@latest -g

     (7) 安装bower:

    使用npm命令安装bower:

    npm install -g bower

    执行bower –v查看其版本信息:

    2、代码编译、打包镜像

    2.1 克隆Hygieia代码到本地

    使用git克隆hygieia的代码到本地:

    git clone https://github.com/capitalone/Hygieia.git

     2.2 编译Hygieia代码为jar包

    (1) 将使用git克隆到的代码备份一份。

    (2) 如果当前登录用户为root用户,需要修改Hygieia/UI/pom.xml文件,在99行左右的install后面添加允许“--allow-root”,以允许root用户执行编译:

    (3) 进入代码目录,执行编译命令:

    cd Hygieia
    mvn clean install package

    (4) 可能出错原因:在编译过程中需要下载大量的文件,时间比较长,差不多3小时左右,请耐心等待……

      ① 期间可能会因为网络的原因造成失败,如果在编译日志日看到downloading某个包等待很长时间,然后直接失败了,而没有其他错误原因,可以直接重复执行“mvn clean install package”编译命令。

      ② 如果出现“update failed”,截图如下,则是权限问题:

    根据提示,执行“sudo chown -R $USER:$(id -gn $USER) /home/$USER/.config”命令,再重复执行编译命令。

      ③  出现“bower ESUDO   Cannot be run with sudo”,如下内容:

    此错误是在编译UI项目出现的错误,原因是执行编译的用户为root用户,而没有在UI/pom.xml文件中添加“--allow-root”以允许root用户执行编译。解决办法:

    • 切换到非root用户执行编译(这时候不建议这么做,又得重新下载,编译,很耗时)
    • 参考编译的第一条给UI/pom.xml添加“--allow-root”,再重新编译。

    在编译过程中出现任何错误,在解决出错之后,都选择重新编译,在所有项目都编译完成之后,建议重新拷贝一份编译前的代码,重新编译一次,这时候一般可以一次性编译通过,而且所依赖的包都已经下载到了本地,不会耗太多时间。这样可以防止断断续续的编译可能会存在什么问题。

     (5) 查看所有编译好的项目:

    工程的主要目标文件:

     

    生成的collectors目标文件:

     

    2.3 将服务打包成docker镜像

    在jar包编译成功的基础上,可以构建docker 镜像,使用容器部署。执行命令:

    mvn docker:build

    镜像构建完成之后,会产生如下镜像,可用“docker images”查看

     

    3、启动基础服务

    3.1 编写启动服务的docker-compose.yml文件:

    我使用docker-compose来运行服务,可以便捷的启动你要要的服务,首先需要编写一个docker-compose.yml文件:

    db:
      image: mongo:latest
      volumes:
        - ./data/mongodb_master/db:/data/db
      environment:
        - MONGODB_USERNAME=dashboarduser
        - MONGODB_DATABASE=dashboarddb
        - MONGODB_PASSWORD=dbpassword
      ports:
        - "27017:27017"
    
    api:
      image: hygieia-api
      volumes:
        - ./logs:/hygieia/logs
        - ./conf:/hygieia/config
      ports:
        - "8080:8080"
      environment:
        - jasypt.encryptor.password=hygieiasecret
        - SPRING_DATA_MONGODB_DATABASE=dashboarddb
        - SPRING_DATA_MONGODB_HOST=db
        - SPRING_DATA_MONGODB_PORT=27017
        - SPRING_DATA_MONGODB_USERNAME=dashboarduser
        - SPRING_DATA_MONGODB_PASSWORD=dbpassword
        - FEATURE_DYNAMIC_PIPELINE=enabled
        - AUTH_EXPIRATION_TIME=3600000
        - AUTH_SECRET=secret
        - SKIP_PROPERTIES_BUILDER=false
      links:
        - db
    
    ui:
      image: hygieia-ui
      container_name: hygieia-ui
      ports:
        - "18088:80"
      environment:
        - API_HOST=api
        - API_PORT=8080
      volumes:
        - ./conf/hygieia-ui/:/etc/nginx/conf.d
      links:
        - api

    目前只配置了DB、API和UI的内容,其他服务后面再续上。

    3.2 启动与配置服务

    (1)、首先启动mongoDB服务:

    docker-compose up -d db

    (2)、进入运行的容器,进行数据库初始配置:

    # 1、进入启动的DB容器命令行(hygieiacluster_db_1是容器的名称,根据自己的场景确定)
    docker exec -it hygieiacluster_db_1 bash
    # 2、进入mongoDB的命令行界面
    mongo 127.0.0.1/admin
    # 3、选择使用的数据库
    use dashboarddb
    # 4、创建hygieia连接MongoDB时使用的用户名及密码
    db.createUser({user: "dashboarduser", pwd: "dbpassword", roles: [{role: "readWrite", db: "dashboarddb"}]})

    (3)、启动API服务:

    docker-compose up -d api

    (4)、启动UI服务:

    docker-compose up -d ui

    3.3 服务检查

    (1)、可使用“docker ps”命令查看当前运行的container情况:

    (2)、还可以通过docker logs查看具体服务的启动情况:

    (3)、首次登录UI界面,可以看到服务的运行情况(docker-compose.yml文件里有配置UI服务对外映射的端口为18088):

    显示“API Connectivity”显示为表示连接API服务正常,则可以进行下一步操作,接着需要用户自己注册用户名和密码 , 点击Sign Up,创建自己的账户:

    创建完成之后,用该账户登录进来之后,配置自己的DashBoard,进来之后,如下界面(因为我什么都没有对接,所以展示的什么都没有……):

     

    至此,Hygieia基础组件部署完成。

  • 相关阅读:
    POJ 1703 Find them, Catch them (数据结构-并查集)
    ProductHunt:创业公司产品猎场和秀场
    firedac数据集控件的公共祖先类——TFDAdaptedDataSet
    IDFTP连不上FTP服务器的解决方法
    SQLServer到底支持多少连接数的并发?
    日志
    权限
    DATASNAP中间件调用带OUTPUT参数的存储过程
    连接池中的连接超过数据库端的最大空闲时间
    firedac的TFDStoredProc动态创建并调用存储过程
  • 原文地址:https://www.cnblogs.com/qianyeliange/p/9488395.html
Copyright © 2011-2022 走看看