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*
Copyright © www.sqlfans.cn 2024 All Right Reserved更新时间: 2024-10-14 18:50:53

results matching ""

    No results matching ""