-
Notifications
You must be signed in to change notification settings - Fork 2k
3.服务器端接入文档
carlosfu edited this page Mar 18, 2016
·
25 revisions
##一、初始化数据库
导入项目中cachecloud.sql初始化库表结构,默认插入admin超级管理员。
##二、CacheCloud项目配置
使用了maven作为项目构建的工具,提供了 local.properties和online.properties两套配置作为测试、线上的隔离。
属性配置说明:
##四、添加机器
###1. 运行脚本:
cachecloud项目中的cachecloud-init.sh(目录:cachecloud-web\src\main\resources\script\cachecloud-init.sh)脚本是用来初始化服务器的cachecloud环境,主要工作如下:
###3. 服务器ssh端口问题
cachecloud默认所有机器的ssh端口是22, 如果你的机器有其他端口,请自行实现如下逻辑:com.sohu.cache.ssh.SSHUtil
###4. 值班和联系人
cachecloud有一些页面涉及到联系人和值班人等等,如下图:
| 属性名 | 说明 | 示例 |
|---|---|---|
| cachecloud.db.url | mysql驱动url | jdbc:mysql://127.0.0.1:3306/cache-cloud |
| cachecloud.db.user | mysql用户名 | admin |
| cachecloud.db.password | mysql密码 | admin |
| cachecloud.machine.username | 服务器用户名,用于ssh | ${your machine username} |
| cachecloud.machine.password | 服务器密码,用于ssh | ${your machine password} |
| web.port | spring-boot内嵌tomcat启动端口 | 8080 |
| cachecloud.maxPoolSize | 数据库连接池最大数 | 根据业务需求选定 |
| isDebug | 是否是测试环境 | 测试环境true, 生产环境false |
| mobil.owner.email | 报警邮箱 | xx@sohu.com,yy@163.com |
| mobil.owner.phone | 报警手机 | 135xxxxxxxx,138xxxxxxxx |
| log_base | spring-boot内嵌tomcat日志 | 自定义 |
(redis-sentinel每次开启都用固定的机器)使用多个服务器,用逗号分隔
##三、启动cachecloud系统 ####1. 本地启动:在cachecloud-web模块下运行 mvn spring-boot:run ####2. 生产环境:在cachecloud-parent模块下运行 1. 构建:mvn -Ponline clean package 2. 上传war包到特定目录下:如/opt/cachecloud-web 3: 拷贝cachecloud-web-1.0-SNAPSHOT.conf配置到/opt/cachecloud-web目录下,注意必须跟war包同目录才生效 4. 作为linux服务启动: sudo ln -s /opt/cachecloud-web/cachecloud-web-1.0-SNAPSHOT.war /etc/init.d/cachecloud-web /etc/init.d/cachecloud-web start ####3. 登录确认-
(1) 访问:http://127.0.0.1:9999/manage/login (9999是tomcat的端口号,具体要参考第三节中的online.properties和local.properties中的web.port)
-
(2) 如果访问正常,请使用用户名:admin、密码:admin访问系统,跳转到应用列表下:
##四、添加机器
###1. 运行脚本:
cachecloud项目中的cachecloud-init.sh(目录:cachecloud-web\src\main\resources\script\cachecloud-init.sh)脚本是用来初始化服务器的cachecloud环境,主要工作如下:
-
(a). 创建cachecloud项目用户:因为cachecloud项目的部分功能(redis启动、服务器监控)是通过ssh完成的,所以这里的用户和密码要和项目中的相对应,具体详见第三节。
-
(b). 创建cachecloud项目的工作目录、数据目录、配置目录、日志目录、redis安装目录、临时目录等等。(/opt/cachecloud/data、/opt/cachecloud/conf、/opt/cachecloud/logs、/opt/cachecloud/redis、/tmp/cachecloud)
-
(c). 安装最新的release版本的Redis
###2. 脚本执行
- (a). 使用root登录目标服务器。
- (b). 将cachecloud-init.sh脚本拷贝到目标服务器当前用户目录下。
- (c). 执行 sh cachecloud-init.sh ${yourusername}
- (d). 两次确认密码
- (e). 一路安装直到成功。
###3. 建议和警告
- (a). 请在root用户下执行初始化脚本,因为初始化脚本涉及到了用户的创建等较高的权限。
- (b). 出于安全的考虑,所选的机器最好不要有外网IP地址。
- (c). 用户名和密码最好不要用cachecloud, 密码尽可能复杂。
- (d). 机器的ssh端口最好是22。
- (e). 请确保/opt/有足够的硬盘空间,因为/opt/cachecloud/data要存储RDB和AOF的持久化文件,如果硬盘过小,会造成持久化失败。(如果硬盘确实很小,建议建立一个软链接到/opt/cachecloud/data,且保证软链接的目录也是username用户,一定要保证/opt/cachecloud的目录结构)
- (f). 脚本中目前使用的是redis-3.0.6,如有需要请自行替换,建议使用3.0 release以后的版本。
public class LoginUtil {
private final static Logger logger = LoggerFactory.getLogger(LoginUtil.class);
public static boolean passportCheck(String username, String password) {
/**
* your company login check code
*/
return true;
}
}####(2) 是否为cachecloud用户 需要验证用户是否在app_user表中
###2. 报警接口说明 cachecloud提供了邮件和短信两种形式的报警工具(对于机器内存、负载、cpu以及redis实例健康状态以及一些重要的指标进行监控)。各个公司、项目组可以报警接口不尽相同,所以需要自己实现对应的功能,具体参考: ####(1) 邮件报警接口实现
- com.sohu.cache.web.component.EmailComponentImpl (cachecloud-web)
- com.sohu.tv.cachecloud.client.basic.component.EmailComponentImpl(cachecloud-client-basic)
public class EmailComponentImpl implements EmailComponent {
@Override
public boolean sendMail(String title, String content, List<String> emailList, List<String> ccList) {
/**
* your company send email codes
*/
return true;
}
}####(2) 短信报警接口实现
- com.sohu.cache.web.component.MobileAlertComponentImpl (cachecloud-web)
- com.sohu.tv.cachecloud.client.basic.component.MobileAlertComponentImpl(cachecloud-client-basic)
public class MobileAlertComponentImpl implements MobileAlertComponent {
@Override
public void sendPhone(String message, List<String> phoneList) {
/**
* your company send shortmessage codes
*/
}
...............................
}public static int getSshPort(String ip) {
/**
* 如果ssh默认端口不是22,请自行实现该逻辑
*/
return MachineProtocol.SSH_PORT_DEFAULT;
}
如果想自定义,请自行修改:/cachecloud-web/src/main/webapp/WEB-INF/include/contact.jsp