Redis运维精讲之监控脚本篇

Redis监控监本的设计理念,着手于:当某个节点的进程或者端口号不存在时,可以自动将该节点重启。由于Redis集群具有节点恢复后自动连接集群的功能,所以,只要我们保证每分钟检测一次节点状态,即可达成目的。

[[email protected] redis]# cat rebootreids.sh
#!/bin/bash
for port in 6371 6471
do
        ps -ef | grep $port | grep -v grep > /dev/null || netstat -antpu | grep $port | grep LISTEN > /dev/null || /root/redis/src/redis-server /root/redis/conf/$port\.conf
done
 

Redis运维精讲之监控脚本篇

之后,我们需要将这个脚本设置到定时任务里面

[[email protected] redis]# ls /root/redis/rebootreids.sh
/root/redis/rebootreids.sh
[[email protected] redis]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[[email protected] redis]# crontab -l
*/1 * * * * sh /root/redis/rebootreids.sh
[[email protected] redis]#

如此一来,我们就再也不用担心该节点会挂掉了。当然,这个脚本需要在所有的IP中都要配置,并且,要看清楚当前启动Redis所使用的用户。

这里有个坑:如果你用普通用户启动的Redis进程,却将定时任务配置在root下,那么恭喜你,你的集群肯定会重建失败