標籤:redis 與keepalive合用 檢測機制修訂
近期又被自己造的keepalive檢測機制搞了,直接上最新最佳化後的指令碼:############start scriptskillall -0 redis-serverif [ "$?" -eq 0 ]; then echo good exit 0else LOGFILE=/var/log/keepalived-redis-state.log echo "[check_fail_log]" >> $LOGFILE date >> $LOGFILE killall -0 redis-server if [ "$?" -ne 0 ]; then echo killall_bad_two >> /var/log/keepalived-redis-state.log numprocess1=`netstat -tnpl | grep 6379 -c` numprocess2=`ps -ef | grep redis-server | grep -c 6379` if [[ ${numprocess1} -lt 1 ]] && [[ ${numprocess2} -lt 1 ]]; then echo process_bad_three >> /var/log/keepalived-redis-state.log #start judge status /etc/init.d/redis status if [[ $? -eq 0 ]]; then echo good exit 0 else echo status_bad_four >> /var/log/keepalived-redis-state.log /etc/init.d/redis status >> /var/log/keepalived-redis-state.log ####start last judge ALIVE=`/usr/bin/redis-cli -p 6379 PING` if [ "$ALIVE" != "PONG" ]; then echo ping_bad_five >> /var/log/keepalived-redis-state.log exit 1 else exit 0 fi ###end last judge fi #end judge status else exit 0 fi else exit 0 fifi############end scripts目前的判斷為:第一層: 重試兩次 進程訊號判斷。第二層: netstat 及 ps -ef 判斷第三層: /etc/init.d/redis status 返回碼判斷。第四層: redis ping 返回碼判斷。以上每一層失敗,都會列印日誌。失敗後說明redis進程及業務訪問出現問題,正式開始啟動切換操作。測試環境測試效果。日誌記錄:[check_fail_log]Thu May 19 09:46:23 CST 2016killall_bad_twoprocess_bad_threestatus_bad_fourredis-server is stoppedping_bad_five
本文出自 “linux系統維護” 部落格,請務必保留此出處http://linuxadmin.blog.51cto.com/2683824/1774987
redis與keepalive合用,檢測機制修訂