在中小型互联网公司里面,对于运维使用的监控系统不是很完善。今天介绍一下 CacheCloud,是搜狐视频开源的 Redis 云平台。可以对Redis 官方提供的3 种部署模式(Standalone
、Sentinel
、Cluster
)做管控,实现了Redis 实例自动部署、管理Redis 碎片化、完善统计、监控等功能,可以提高Redis 服务器的利用率,减少运维成本和误操作等。具体的功能请查看官方文档(官方提供了 视频讲解 ),下面是官方的功能图:
下载源代码
项目地址为:https://github.com/sohutv/cachecloud,使用git 命令如下:
git clone https://github.com/sohutv/cachecloud
下载代码后,导入开发工具,以IDEA 为例。
其中common 项目被其他 2 个所依赖,web 项目是cachecloud 的Server端,client 是提供给Redis Client 的SDK(CacheCloud的Client 对Jedis做了一些封装
)。
启动Server
1、初始化MySQL数据库
如数据库为:cachecloud,字符集编码为UTF-8,执行以下脚本:cachecloud-master/script/cachecloud.sql
。
需要修改DB 的相关连接参数:
2、启动(本地)
在cachecloud根目录下运行
mvn clean compile install -Plocal
在cachecloud-open-web模块下运行
mvn spring-boot:run
线上运行时,不建议以内嵌方式运行。
登录系统
系统启动之后,打开 http://127.0.0.1:9999 (默认端口)。SQL 脚本初始化时,预留了一个admin
的超级管理员账号(密码:admin
)。登录后如下所示:
初始状态时,应用列表为空。点击后台应用进入–> 可以查看和设置管理员的密码,和机器相关配置。如下所示:
上述的配置需要注意一点的是,对于Redis 的所有机器
来说,ssh 的用户和密码都是一样的(CacheCloud本身限制
)。这里面需要用脚本再机器上面初始化,去创建上面的用户。
Redis 机器环境初始化
对于环境初始化的脚本,最好使用root 用户去执行。也就是将 cachecloud-master/script/cachecloud-init.sh 拷贝到 /root/ 目录下,然后执行 sh cachecloud-init.sh {username}
。笔者这里的 {username}
使用的是cachecloud。这里面的脚本也很简单,主要完成了下面几项工作。
- 创建 cachecloud 用户;
- 初始化 cachecloud 工作空间和授权;
- 安装Redis(redis3.0.7)。
对于工作空间,笔者不建议更改。对于Redis的版本,用户可以自己调整。脚本执行后,会提示输入密码,这里面的密码每台机器都是相同的,然后配置在 “系统配置管理”里面,如上图所示。
普通用户注册
首先退出 admin 用户,然后点击 “新用户注册”,如下图所示:
信息填写完成提交后,管理员会收到一条审批的流程,审批通过后即可使用。这里面需要注意的是,CacheCloud对于登录的认证,需要自己根据公司去修改。笔者测试时,直接注释掉了 普通用户
的认证(任何密码都可以校验通过)。需要修改 com.sohu.cache.web.util.LoginUtil#passportCheck()
,直接返回 true 即可。
应用申请
用户登录成功之后,可以申请应用。
上面的Redis 的部署类型,就是Redis 官方提供的 3 种类型。后面需要管理员审批通过,如下所示:
上面IP 需要注意的是,这些IP 都需要在 “机器管理” 里面提前维护进去,也就是都需要提前初始化之前脚本。并且需要开启6379及以上一段范围的端口,因为CacheCloud 创建Redis 实例的端口,是从6379 开始往上递增的。
客户端连接
上面的应用申请完成之后,会生成一个 应用ID。这个ID 会在CacheCloud 客户端的SDK 接入时用到。点击 应用ID 时,可以看到客户端的示例代码:
上面的maven 依赖是之前源码包里面的Client ,使用时需要上传到公司内部的私服。 这里面需要注意的是,需要修改Client 源码包中的CacheCloud的服务地址:
到此,CacheCloud 的 安装和使用就介绍完了。