CacheCloud+Redis 4 部署

一 基本介绍
https://github.com/sohutv/cachecloud
二 安装准备
CacheCloud需要以下环境:
JDK 7+
Maven 3
MySQL 5.7
Redis 4
JDK和Maven不在说明,
MySQL 请参考:
http://www.cnblogs.com/starof/p/4680083.html
http://www.jianshu.com/p/bb43fe520315
Redis 4
请参考我的前面记录:
http://www.jianshu.com/p/c8a957413284

三 初始化部署

  1. 下载CacheCloud
    官网https://github.com/sohutv/cachecloud
    进入到/usr/local目录
    git clone https://github.com/sohutv/cachecloud.git
    cd cachecloud

  2. 初始化数据库
    1)在MySQL中创建库并授权

mysql>create database cachecloud;
mysql>grant all on cachecloud.* to 'admin'@'localhost' identified by 'admin';
mysql>flush privileges;
2) 导入初始数据
mysql>use cachecloud;
mysql>source /usr/local/cachecloud/script/cachecloud.sql;
3)编辑/usr/local/cachecloud/cachecloud-open-web/src/main/swap/online.properties
和local.properties

cachecloud.db.url = jdbc:mysql://127.0.0.1:3306/cachecloud
cachecloud.db.user = admin
cachecloud.db.password = admin
cachecloud.maxPoolSize = 20

isClustered = true
isDebug = false
spring-file=classpath:spring/spring-online.xml
log_base=/opt/cachecloud-web/logs
web.port=8585
log.level=WARN

四 启动cachecloud系统

  1. 源码部署:可以进行二次开发和配置修改
    1). 本地启动:
    在cachecloud根目录下运行
    mvn clean compile install -Plocal
    在cachecloud-open-web模块下运行
    mvn spring-boot:run

2). 生产环境
在cachecloud根目录下运行
mvn clean compile install -Ponline

mkdir -p /opt/cachecloud-web
cp cachecloud-open-web/target/cachecloud-open-web-1.0-SNAPSHOT.war /opt/cachecloud-web/
cp cachecloud-open-web/src/main/resources/cachecloud-web.conf /opt/cachecloud-web/
mv /opt/cachecloud-web/cachecloud-web.conf /opt/cachecloud-web/cachecloud-open-web-1.0-SNAPSHOT.conf

启动方法1(作为系统服务启动,可能存在系统兼容性问题,目前redhat6.5,centos7正常)
ln -s /opt/cachecloud-web/cachecloud-open-web-1.0-SNAPSHOT.war /etc/init.d/cachecloud-web
/etc/init.d/cachecloud-web start

启动方法2(使用脚本启动,大部分操作系统都正常)
cp script/start.sh /opt/cachecloud-web/
cp script/stop.sh /opt/cachecloud-web/

sh start.sh #如果机器内存不足,可以适当调小:-Xmx和-Xms(默认是4g)
sh stop.sh

2.二进制文件:直接启动
下载对应release版本的环境,例如1.2,将其在/opt下解压,解压后文件目录如下
cachecloud-open-web-1.0-SNAPSHOT.war: cachecloud war包
cachecloud.sql: 数据库schema,默认数据名为cache_cloud,可以自行修改
jdbc.properties:jdbc数据库配置,自行配置
start.sh:启动脚本
stop.sh: 停止脚本
logs:存放日志的目录

默认端口是8585,可以修改start.sh中的server.port进行重置

  1. 登录确认
    (1) 访问:http://127.0.0.1:9999/manage/login (9999是tomcat的端口号,具体要参考第三节中的online.propertieslocal.properties中的web.port)

(2) 如果访问正常,请使用用户名:admin、密码:admin访问系统,跳转到应用列表下:

图片.png

五 管理Redis集群

  1. 使用cachecloud-init.sh安装redis和初始化,可根据需求修改脚本中redis的版本
    chmod +x /usr/local/cachecloud/script/cachecloud-init.sh
    /usr/local/cachecloud/script/cachecloud-init.sh redis

  2. 在服务器上创建cachecloud SSH连接账号,和系统配置管理页面里的用户名和密码保持一致即可
    useradd cachecloud
    passwd cachecloud

  3. 点击右上角管理后台—>机器管理,添加机器

图片.png

4.redis cluster安装(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点)
我使用已安装的redis cluster 系统。

  1. 点击右上角导入应用
图片.png

如果成功。可见下面类似界面:

图片.png

五 问题:

  1. machine_info缺少collect字段
### SQL: select           id, modify_time,           ssh_user,ssh_passwd,ip,room,mem,cpu,`virtual`,real_ip,service_time,fault_count,warn,available,type,groupId,extra_desc,collect               from machine_info where available = 1
### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'collect' in 'field list'
; bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'collect' in 'field list'] with root cause
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'collect' in 'field list'

解决办法:
增加此字段
alter table machine_info add collect int(11) NOT NULL DEFAULT '0' COMMENT '是否收集服务器信息,0否,1是';

推荐阅读更多精彩内容