千家信息网

redis监控zabbix自动化监测端口和内存(shell和

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,第一步:编写redis python 的端口发现脚本 redis_port.py#!/usr/bin/env pythonimport osimport jsont=os.popen("""ps au
千家信息网最后更新 2025年12月03日redis监控zabbix自动化监测端口和内存(shell和
第一步:编写redis python 的端口发现脚本 redis_port.py

#!/usr/bin/env python

import os
import json

t=os.popen("""ps aux |grep -v grep |grep redis-server|awk -F '*:' '{print $2}'|awk '{print $1}' """)
ports = []
for port in t.readlines():
r = os.path.basename(port.strip())
ports += [{'{#REDIS_PORT}':r}]
print json.dumps({'data':ports},sort_keys=True,indent=4,separators=(',',':'))

编写redis shell 的端口发现脚本 check_redis_port.sh

#!/bin/sh

REDIS_SERVER_PIDS="$(ps -ef|egrep -v 'grep|egrep|vi|vim|find|cat|tac|head|tail|more|less'|grep 'redis-server'|awk '{print $2}')"
REDIS_PORTS=""
for pid in ${REDIS_SERVER_PIDS};do
PORTS=$(sudo netstat -anlp|grep -w ${pid}|awk '{print $4}'|awk -F: '{print $2}'|grep -v "[0-9][0-9][0-9][0-9][0-9]"|grep -v "^$" |head -1)
REDIS_PORTS="${PORTS} ${REDIS_PORTS}"
done
port=(${REDIS_PORTS})

function node_port {length=${#port[@]}
br/>length=${#port[@]}

printf '\t'"\"data\":["
for ((i=0;i<$length;i++));do
printf '\n\t\t{'
printf "\"{#REDIS_PORT}\":\"${port[$i]}\"}"
if [ $i -lt $[$length-1] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
}
node_port

修改权限: chmod 755 redis_port.py check_redis_port.sh

shell和python选择一种即可。

第二步:监测端口存活

#!/bin/bash
function redis_cli_command () {
redis_cli_tmp="$(whereis redis-cli|awk -F: '{print $2}')"
${redis_cli_tmp} -v > /dev/null 2>&1
if [ $? -eq 0 ];then
redis_cli="${redis_cli_tmp}"
else
REDIS_USERS="$(ps -ef|egrep -v 'grep|egrep|vi|vim|cat|tac|head|tail|more|less'|grep 'redis-server'|awk '{print $1}'|sort|uniq)"
for user in ${REDIS_USERS};do
USER_HOME="$(cat /etc/passwd|grep ${user}|awk -F: '{print $(NF-1)}')"
if [ -d ${USER_HOME} ];then
redis_cli_tmp="$(sudo find ${USER_HOME}/redis* -type f -name redis-cli|head -1)"
${redis_cli_tmp} -v > /dev/null 2>&1
[ $? -eq 0 ] && redis_cli="${redis_cli_tmp}" && break
fi
done
fi
}

hostip=/sbin/ifconfig|grep 10.169.42| awk '{print $2}'
redis_cli_command

liveness=$(${redis_cli} -h ${hostip} -p $1 ping)
if [ ${liveness} == "PONG" ];then
echo "PONG"
else
echo "error"
fi

监测内存使用情况百分比

#!/bin/bash
function redis_cli_command () {
redis_cli_tmp="$(whereis redis-cli|awk -F: '{print $2}')"
${redis_cli_tmp} -v > /dev/null 2>&1
if [ $? -eq 0 ];then
redis_cli="${redis_cli_tmp}"
else
REDIS_USERS="$(ps -ef|egrep -v 'grep|egrep|vi|vim|cat|tac|head|tail|more|less'|grep 'redis-server'|awk '{print $1}'|sort|uniq)"
for user in ${REDIS_USERS};do
USER_HOME="$(cat /etc/passwd|grep ${user}|awk -F: '{print $(NF-1)}')"
if [ -d ${USER_HOME} ];then
redis_cli_tmp="$(sudo find ${USER_HOME}/redis* -type f -name redis-cli|head -1)"
${redis_cli_tmp} -v > /dev/null 2>&1
[ $? -eq 0 ] && redis_cli="${redis_cli_tmp}" && break
fi
done
fi
}

hostip=/sbin/ifconfig|grep 10.169.42| awk '{print $2}'
redis_cli_command

used_memory=$(${redis_cli} -h ${hostip} -p $1 info|grep 'used_memory:'|awk -F: '{print $2}'|tr -d '\r')
max_memory=$(${redis_cli} -h ${hostip} -p $1 config get maxmemory|tail -1|awk '{print $NF}'|tr -d '"')
if [ ${max_memory} -eq 0 ];then
echo "0"
elif [ ${max_memory} -gt 0 ];then
num_per=echo "scale=0;$used_memory*100"/${max_memory}|bc
echo $num_per
fi

zabbix 模板配置

自动发现

触发器


{HOST.NAME}:{#REDIS_PORT} redis ping异常,请检查
{Template for redis:redis.liveness[{#REDIS_PORT}].str(PONG)}=0

{HOST.NAME}:{#REDIS_PORT} redis 内存使用率>80%,达到{ITEM.LASTVALUE1}%
{Template for redis:redis_used_memory_per[{#REDIS_PORT}].last()}>80

zabbix 配置文件添加 配置完重启

UserParameter=redis_port.discovery,/app/sinova/zabbix/scripts/check_redis_port.sh
UserParameter=redis_used_memory_per[*],/app/sinova/zabbix/scripts/redis_used_memory.sh $1

端口 配置 内存 监测 脚本 使用率 情况 文件 权限 模板 百分 百分比 触发器 检查 选择 监控 自动化 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 应用自组织网络技术视频 时代网络技术分类创新服务 我的世界服务器仙界 软件开发转正ppt怎么写 阿里云esc服务器怎么搭建网站 软件开发所需学习背景 数据库备份设备类型及其相应特点 数据库编程实验 国际软件开发技术实验总结 中国的网络安全企业 sql2000数据库卸载不完全 辽阳app软件开发价格 web与数据库互动 网络技术引流方法有哪些 电脑百图秀软件服务器在哪里 中国计算机网络安全环境特点 数据库安全控制的目的是什么 安装新中大数据库装不上 找不见向数据库新添加的表 广播电视局网络安全的重要性 系统软件中数据库管理系统功能 歌曲数据库系统 网络技术论坛导航 安徽直播平台软件开发多少钱 mysql数据库表的创建 苹果macdns服务器 广州机械备件管理软件开发 数据库还原一直提示被占用 软件开发项目招标文件 数据库安全控制的目的是什么
0