当前位置: 首页 > news >正文

Redis单点部署及exporter的安装

Redis单点一键部署脚本

maxmemory需要按需修改

#!/bin/bash

# 安装依赖
apt update
apt install -y gcc make pkg-config tcl

# 创建安装目录
mkdir -p /data/redis
cd /data/redis

# 修改内核参数允许redis进行内存申请
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
sysctl -p

# 下载并编译Redis
wget https://download.redis.io/releases/redis-7.2.4.tar.gz
tar xzf redis-7.2.4.tar.gz
cd redis-7.2.4
make

# 安装Redis
make install

# 创建必要的目录
mkdir -p /data/redis/conf
mkdir -p /data/redis/log
mkdir -p /data/redis/data

# 创建redis配置文件
cat > /data/redis/conf/redis.conf << 'EOF'
# 基本配置
bind 0.0.0.0
port 6379
daemonize yes
pidfile /data/redis/redis.pid
dir /data/redis/data
logfile /data/redis/log/redis.log
# 安全配置
protected-mode yes
maxmemory-policy volatile-lru
maxmemory 5120M
requirepass xxxxxxx
# RDB配置
save 60 1
save 300 10
save 60 10000
dbfilename dump.rdb
rdbcompression yes
rdb-save-incremental-fsync yes
# 禁用AOF
appendonly no
EOF

# 创建systemd服务文件
cat > /etc/systemd/system/redis.service << 'EOF'
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
Type=forking
User=root
PIDFile=/data/redis/redis.pid
ExecStart=/usr/local/bin/redis-server /data/redis/conf/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always

[Install]
WantedBy=multi-user.target
EOF

# 重新加载systemd并启动Redis
systemctl daemon-reload
systemctl enable redis
systemctl start redis

# 检查Redis状态
systemctl status redis

redis exporter一键部署脚本

#!/bin/bash

# 变量配置
REDIS_CONF="/data/redis/conf/redis.conf"  # Redis配置文件路径
EXPORTER_VERSION="v1.34.0"               # Redis Exporter版本
EXPORTER_DIR="/data/redis/redis_exporter" # Redis Exporter安装路径
REDIS_EXPORTER_CMD="/usr/local/bin/redis_exporter"  # Redis Exporter命令路径
REDIS_EXPORTER_SERVICE="/etc/systemd/system/redis_exporter.service"  # systemd服务文件路径

# 下载并安装Redis Exporter
echo "下载 Redis Exporter ${EXPORTER_VERSION}..."
cd /tmp
wget https://github.com/oliver006/redis_exporter/releases/download/${EXPORTER_VERSION}/redis_exporter-${EXPORTER_VERSION}.linux-amd64.tar.gz
tar xvf redis_exporter-${EXPORTER_VERSION}.linux-amd64.tar.gz
mv redis_exporter-${EXPORTER_VERSION}.linux-amd64/redis_exporter $REDIS_EXPORTER_CMD
chmod +x $REDIS_EXPORTER_CMD

# 创建服务启动脚本
echo "创建 Redis Exporter 启动脚本..."
cat << 'EOF' > /data/redis/redis_exporter.sh
#!/bin/bash

# 设置Redis配置文件路径
REDIS_CONF="/data/redis/conf/redis.conf"

# 从redis.conf中提取requirepass参数(去除注释和空行)
REDIS_PASSWORD=$(grep -E '^requirepass' $REDIS_CONF | awk '{print $2}')

# 设置Redis Exporter的监听地址
REDIS_EXPORTER_PORT="9121"

# 设置Redis Exporter的地址和密码
REDIS_EXPORTER_CMD="/usr/local/bin/redis_exporter"

# 获取IP地址
IP=$(hostname -I|awk '{print $1}')

# 启动redis_exporter,如果有密码则加上密码参数
if [ -z "$REDIS_PASSWORD" ]; then
  # 如果没有密码
  $REDIS_EXPORTER_CMD --redis.addr="tcp://$IP:6379" --web.listen-address=":$REDIS_EXPORTER_PORT"
else
  # 如果有密码
  $REDIS_EXPORTER_CMD --redis.addr="tcp://$IP:6379" --redis.password="$REDIS_PASSWORD" --web.listen-address=":$REDIS_EXPORTER_PORT"
fi
EOF

chmod +x /data/redis/redis_exporter.sh

# 创建 Redis Exporter systemd 服务文件
echo "创建 systemd 服务文件..."
cat << EOF > $REDIS_EXPORTER_SERVICE
[Unit]
Description=Redis Exporter for Prometheus
After=network.target

[Service]
Type=simple
User=root
ExecStart=/data/redis/redis_exporter.sh
Restart=always
WorkingDirectory=/data/redis
StandardOutput=syslog
StandardError=syslog

[Install]
WantedBy=multi-user.target
EOF

# 重新加载 systemd 配置
echo "重新加载 systemd 配置..."
systemctl daemon-reload

# 启动 Redis Exporter 服务
echo "启动 Redis Exporter 服务..."
systemctl start redis_exporter

# 设置开机自启
echo "设置 Redis Exporter 开机自启..."
systemctl enable redis_exporter

# 验证 Redis Exporter 是否正常运行
echo "检查 Redis Exporter 服务状态..."
systemctl status redis_exporter

echo "Redis Exporter 安装并配置完成!"

相关文章:

  • vue非组件的初学笔记
  • 单片机中有FLASH为啥还需要EEROM?
  • DeepSeek技术实践:从基础到高阶的模型交互方法论
  • 编译安装php
  • Maven Home Path配置Bundled (Maven 3)和Use Maven wrapper解释
  • 《深度学习》——调整学习率和保存使用最优模型
  • 2025年入职/转行网络安全,该如何规划?网络安全职业规划
  • 滑动窗口-无重复字符的最长子串
  • Jenkinsdebug:遇到ERROR: unable to select packages:怎么处理
  • 小爱音箱连接电脑外放之后,浏览器网页视频暂停播放后,音箱整体没声音问题解决
  • 笔试-果园施肥
  • LeetCode 热题 100_单词搜索(60_79_中等_C++)(深度优先搜索(回溯))(初始化二维vector的大小)
  • zotero翻译文献每行开头有奇怪数字
  • 数组和对象深浅拷贝
  • JSP(学习自用)
  • 【火星】火星 数字地面模型(DEM)数字正射影像(DOM)下载
  • 【动手学轨迹预测】3.1 基于锚点的轨迹预测
  • Web后端 Tomcat服务器
  • Java零基础入门笔记:(1-2)入门(简介、基础知识)
  • AI前端开发与职业稳定性:ScriptEcho赋能下的未来展望
  • 个人网站开发工具/域名服务器ip地址查询
  • 建立网站最好的模板/平台推广策划方案
  • 郑州专业做网站的公司/免费推广软件下载
  • 做美女图片网站犯法吗/微信视频号小店
  • 网站开发用的电脑/临沂网站seo
  • 微网站 前景/小红书广告投放平台