CacheCloud可视化平台搭建
CacheCloud 是搜狐视频(sohu tv)开源的一个Redis私有云管理平台,它支持Redis多种架构(Standalone、Sentinel、Cluster)高效管理、有效降低大规模redis运维成本,提升资源管控能力和利用率。平台提供快速搭建/迁移,运维管理,弹性伸缩,统计监控,客户端整合接入等功能。
[TOC]
快速安装 CacheCloud
系统初始化
#.1.配置dns并安装基础软件
sed -i 's/^nameserver.*/nameserver 223.5.5.5/g' /etc/resolv.conf
cat /etc/resolv.conf | grep "^nameserver" > /dev/null || echo "nameserver 223.5.5.5" > /etc/resolv.conf
yum install -y -q curl wget ntp ntpdate lrzsz telnet zip unzip net-tools
#.2.修改时区并同步时间
timedatectl set-timezone Asia/Shanghai
/usr/sbin/ntpdate -u ntp.aliyun.com
#.3.建议禁用firewalld否则重启后需要iptable -F清除防火墙策略
/usr/sbin/iptables -F
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
#.4.建议关闭selinux否则会限制服务
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce 0
安装 java
- 下载安装jdk 1.8.0_391
curl -sL http://iso.sqlfans.cn/jdk/install_jdk_8u391.sh | bash
source /etc/bashrc
java -version
安装 mysql
- 安装 mysql 5.7
cd /opt
wget -c http://iso.sqlfans.cn/mysql/percona-server-5.7.44-48.tar.gz
wget -c http://iso.sqlfans.cn/mysql/config/5.7/my_innodb.cnf
wget -c http://iso.sqlfans.cn/mysql/install_percona_5744.sh
sh install_percona_5744.sh /opt /data 3306
- 确认已安装成功
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock -e"select @@version;"
初始化 mysql 数据
- 创建数据库和账号
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock -e"DROP DATABASE IF EXISTS cachecloud;"
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock -e"CREATE DATABASE cachecloud DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock -e"CREATE USER IF NOT EXISTS 'user_cachecloud'@'%' IDENTIFIED BY 'qtKZij9XcTLhU_xN';"
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock -e"GRANT ALL PRIVILEGES ON cachecloud.* TO 'user_cachecloud'@'%';"
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock -e"FLUSH PRIVILEGES;"
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock -e"select host,user,authentication_string,plugin,account_locked from mysql.user;"
- 导入建表语句
curl -sL http://iso.sqlfans.cn/redis/cachecloud-sql-3.2.sql -o /opt/cachecloud-sql-3.2.sql
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock cachecloud -e"source /opt/cachecloud-sql-3.2.sql;"
mysql -uuser_cachecloud -pqtKZij9XcTLhU_xN -S /tmp/mysql_3306.sock cachecloud -e"show tables like 'app%';"
安装 reids
- 安装 redis 7.0.11,用于存放 CacheCloud 任务流日志数据
cd /opt/
wget -c http://iso.sqlfans.cn/redis/redis-7.0.11.tar.gz
wget -c http://iso.sqlfans.cn/redis/install_redis_7011.sh
sh install_redis_7011.sh /data 7100
- 确认读写及版本信息
echo "set dba kevin" | /usr/local/bin/redis-cli -a RbY9k2_NBf1QWy8I -c -p 7100 2>/dev/null
echo "get dba" | /usr/local/bin/redis-cli -a RbY9k2_NBf1QWy8I -c -p 7100 2>/dev/null
echo "info server" | /usr/local/bin/redis-cli -a RbY9k2_NBf1QWy8I -c -p 7100 2>/dev/null | grep redis_version
启动 CacheCloud 工程
- 下载 jar 包
mkdir -p /data/cachecloud
curl -L http://iso.sqlfans.cn/redis/cachecloud-web-3.2.war -o /data/cachecloud/cachecloud-web-3.2.war
- 准备配置文件:application-open.yml,放到war包同目录下
cat > /data/cachecloud/application-open.yml <<EOF
spring:
application:
name: cloud.cachecloud-web.open
import: classpath:spring/spring.xml
server:
port: 8080
domain: 10.30.3.234:8080
cachecloud:
primary:
url: jdbc:mysql://10.30.3.234:3306/cachecloud?useUnicode=true&characterEncoding=UTF8&autoReconnect=true&connectTimeout=3000&socketTimeout=10000&serverTimezone=Asia/Shanghai
user: user_cachecloud
password: qtKZij9XcTLhU_xN
initialPoolSize: 10
maxPoolSize: 50
redis:
main:
host: 10.30.3.234
port: 7100
password: RbY9k2_NBf1QWy8I
web:
clients: 10.30.3.234
aof:
rewrite:
ignore-appIds:
EOF
- 启动 web 工程
cd /data/cachecloud/
ps -ef | grep cachecloud | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null
nohup java -jar -Dspring.profiles.active=open cachecloud-web-3.2.war &
sleep 15 && netstat -lnpt | grep 8080
- 登录测试
地址:http://10.30.3.234:8080/manage/login
账号:admin
密码:admin
配置使用
1.系统初始配置
- 入口:
http://{ip}:8080/manage/config/init
- 管理后台 - 系统配置,主要修改如下几个参数:
ssh授权方式(*):密码
机器ssh用户名(*):redisops #.初始化redis服务器环境的时候会创建
机器ssh密码(*):Admin_147 #.初始化redis服务器环境的时候会创建
机器ssh端口(*):22
cachecloud-admin用户名(*):admin
cachelcoud-admin密码(*):admin #.建议将默认密码改掉
cachecloud根目录:/opt
nmon安装目录(*):/opt/cachecloud
注:ssh配置主要是打通cachecloud服务器与Redis机器交互通讯方式
2.创建一个用户
- 入口:
http://{ip}:8080/manage/user/list
- 用户管理 - 添加新用户,新用户的密码默认与用户名相同,若要修改密码可尝试如下:
mysql -udba_admin -pcf_rB1NKCzbaQuPH -S /tmp/mysql_3306.sock -e"update cachecloud.app_user set password = md5('Admin_147') where name = 'yuxiukai';"
3.添加机房
- 入口:
http://{ip}:8080/manage/machine/index?tabTag=room
- 机器管理 - 机房管理,配置机房信息,示例添加
上海xx机房
机房名称:上海xx机房
机房状态:有效
描述:上海xx机房
网段:10.30.*.*
运营商:xx科技
4.初始化redis服务器环境
- 登录要安装redis的服务器(示例
10.30.3.231
),初始化Redis服务器环境,示例新建用户redisops
,密码Admin_147
cd /opt/
curl -sL http://iso.sqlfans.cn/redis/cachecloud-init-3.2.sh -o /opt/cachecloud-init.sh
sh cachecloud-init.sh redisops
5.添加资源
- 入口:
http://{ip}:8080/manage/machine/index?tabTag=machine
- 机器管理 - 添加新机器,示例添加
10.30.3.231
机器ip:10.30.3.231
机房:上海xx机房 (10.30.*.*)
内存:4 G
cpu:4 核
disk:50 G
是否虚机:是
操作系统:centos
宿主机ip:10.30.4.27
机架信息:暂无
机器类型:Redis机器(默认)
部署类型:测试服务部署
容器类型:虚拟机
机器说明:测试机器
状态收集:开启
6.创建一个应用
- 入口:
http://{ip}:8080/admin/app/init
- 第1步,[用户]我的申请 - 申请应用,示例申请
sam-gateway-prod
应用名称(*):sam-gateway-prod #.示例应用的名称
应用描述(*):sam网关 #.示例应用的功能描述
存储种类:Redis-standalone
内存总量(*):2 GB
项目负责人(*):xxx
Redis部署版本:redis-5.0.9
是否安装Redis模块:否
测试:是
是否有数据备份:是
是否需要持久化:是
是否需要slave节点:否
预估QPS(*):800
预估条目数量:(*):100000
客户端机房:(*):上海xx机房 (10.30.*.*)
内存报警阀值(*):90
客户端连接数报警阀值(*):2000
淘汰策略(*):volatile-lfu (有过期时间的键-最少频率使用)
第2步,[管理员]管理后台 - 工单审批 - 审批列表:
http://{ip}:8080/manage/app/auditList
点击“审批处理”,在新弹出的“应用部署”窗口,选择Redis版本并设置自定义密码等,点击“生成部署预览”,确认拓扑无误,点击“开始部署”,跳转到应用部署任务流,按F5刷新状态第3步,等待应用部署成功后,在审批页点击“通过”,就此应用开通成功
注:任务流日志是存储在redis中的,即项目启动时配置文件application-open.yml中的cachecloud.redis信息
遇到的问题
场景1:如何彻底卸载cachecloud
cd /opt/
ps -ef | grep cachecloud | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null
rm -rf /opt/cachecloud*
rm -rf /data/cachecloud*