Redis单点部署及exporter的安装

打印 上一主题 下一主题

主题 1023|帖子 1023|积分 3069

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Redis单点一键部署脚本

maxmemory需要按需修改
  1. #!/bin/bash
  2. # 安装依赖
  3. apt update
  4. apt install -y gcc make pkg-config tcl
  5. # 创建安装目录
  6. mkdir -p /data/redis
  7. cd /data/redis
  8. # 修改内核参数允许redis进行内存申请
  9. echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
  10. sysctl -p
  11. # 下载并编译Redis
  12. wget https://download.redis.io/releases/redis-7.2.4.tar.gz
  13. tar xzf redis-7.2.4.tar.gz
  14. cd redis-7.2.4
  15. make
  16. # 安装Redis
  17. make install
  18. # 创建必要的目录
  19. mkdir -p /data/redis/conf
  20. mkdir -p /data/redis/log
  21. mkdir -p /data/redis/data
  22. # 创建redis配置文件
  23. cat > /data/redis/conf/redis.conf << 'EOF'
  24. # 基本配置
  25. bind 0.0.0.0
  26. port 6379
  27. daemonize yes
  28. pidfile /data/redis/redis.pid
  29. dir /data/redis/data
  30. logfile /data/redis/log/redis.log
  31. # 安全配置
  32. protected-mode yes
  33. maxmemory-policy volatile-lru
  34. maxmemory 5120M
  35. requirepass xxxxxxx
  36. # RDB配置
  37. save 60 1
  38. save 300 10
  39. save 60 10000
  40. dbfilename dump.rdb
  41. rdbcompression yes
  42. rdb-save-incremental-fsync yes
  43. # 禁用AOF
  44. appendonly no
  45. EOF
  46. # 创建systemd服务文件
  47. cat > /etc/systemd/system/redis.service << 'EOF'
  48. [Unit]
  49. Description=Redis In-Memory Data Store
  50. After=network.target
  51. [Service]
  52. Type=forking
  53. User=root
  54. PIDFile=/data/redis/redis.pid
  55. ExecStart=/usr/local/bin/redis-server /data/redis/conf/redis.conf
  56. ExecStop=/usr/local/bin/redis-cli shutdown
  57. Restart=always
  58. [Install]
  59. WantedBy=multi-user.target
  60. EOF
  61. # 重新加载systemd并启动Redis
  62. systemctl daemon-reload
  63. systemctl enable redis
  64. systemctl start redis
  65. # 检查Redis状态
  66. systemctl status redis
复制代码
redis exporter一键部署脚本

  1. #!/bin/bash
  2. # 变量配置
  3. REDIS_CONF="/data/redis/conf/redis.conf"  # Redis配置文件路径
  4. EXPORTER_VERSION="v1.34.0"               # Redis Exporter版本
  5. EXPORTER_DIR="/data/redis/redis_exporter" # Redis Exporter安装路径
  6. REDIS_EXPORTER_CMD="/usr/local/bin/redis_exporter"  # Redis Exporter命令路径
  7. REDIS_EXPORTER_SERVICE="/etc/systemd/system/redis_exporter.service"  # systemd服务文件路径
  8. # 下载并安装Redis Exporter
  9. echo "下载 Redis Exporter ${EXPORTER_VERSION}..."
  10. cd /tmp
  11. wget https://github.com/oliver006/redis_exporter/releases/download/${EXPORTER_VERSION}/redis_exporter-${EXPORTER_VERSION}.linux-amd64.tar.gz
  12. tar xvf redis_exporter-${EXPORTER_VERSION}.linux-amd64.tar.gz
  13. mv redis_exporter-${EXPORTER_VERSION}.linux-amd64/redis_exporter $REDIS_EXPORTER_CMD
  14. chmod +x $REDIS_EXPORTER_CMD
  15. # 创建服务启动脚本
  16. echo "创建 Redis Exporter 启动脚本..."
  17. cat << 'EOF' > /data/redis/redis_exporter.sh
  18. #!/bin/bash
  19. # 设置Redis配置文件路径
  20. REDIS_CONF="/data/redis/conf/redis.conf"
  21. # 从redis.conf中提取requirepass参数(去除注释和空行)
  22. REDIS_PASSWORD=$(grep -E '^requirepass' $REDIS_CONF | awk '{print $2}')
  23. # 设置Redis Exporter的监听地址
  24. REDIS_EXPORTER_PORT="9121"
  25. # 设置Redis Exporter的地址和密码
  26. REDIS_EXPORTER_CMD="/usr/local/bin/redis_exporter"
  27. # 获取IP地址
  28. IP=$(hostname -I|awk '{print $1}')
  29. # 启动redis_exporter,如果有密码则加上密码参数
  30. if [ -z "$REDIS_PASSWORD" ]; then
  31.   # 如果没有密码
  32.   $REDIS_EXPORTER_CMD --redis.addr="tcp://$IP:6379" --web.listen-address=":$REDIS_EXPORTER_PORT"
  33. else
  34.   # 如果有密码
  35.   $REDIS_EXPORTER_CMD --redis.addr="tcp://$IP:6379" --redis.password="$REDIS_PASSWORD" --web.listen-address=":$REDIS_EXPORTER_PORT"
  36. fi
  37. EOF
  38. chmod +x /data/redis/redis_exporter.sh
  39. # 创建 Redis Exporter systemd 服务文件
  40. echo "创建 systemd 服务文件..."
  41. cat << EOF > $REDIS_EXPORTER_SERVICE
  42. [Unit]
  43. Description=Redis Exporter for Prometheus
  44. After=network.target
  45. [Service]
  46. Type=simple
  47. User=root
  48. ExecStart=/data/redis/redis_exporter.sh
  49. Restart=always
  50. WorkingDirectory=/data/redis
  51. StandardOutput=syslog
  52. StandardError=syslog
  53. [Install]
  54. WantedBy=multi-user.target
  55. EOF
  56. # 重新加载 systemd 配置
  57. echo "重新加载 systemd 配置..."
  58. systemctl daemon-reload
  59. # 启动 Redis Exporter 服务
  60. echo "启动 Redis Exporter 服务..."
  61. systemctl start redis_exporter
  62. # 设置开机自启
  63. echo "设置 Redis Exporter 开机自启..."
  64. systemctl enable redis_exporter
  65. # 验证 Redis Exporter 是否正常运行
  66. echo "检查 Redis Exporter 服务状态..."
  67. systemctl status redis_exporter
  68. echo "Redis Exporter 安装并配置完成!"
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

立聪堂德州十三局店

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表