zabbix监控ssdb

需求:

公司最近用了一个叫做SSDB的东西,这个东西有点像redis,但是使用的硬盘存储,如果量比redis大,但速度肯定没redis快。然后PHP程序去连接SSDB的时候偶现大面积的timeout的问题,但是服务端日志没有报错。排查不到哪里出的问题。社区资料极少,但是发现每次出现timeout的时候看elk日志QPS相对也会升高,所以感觉是ssdb自身的QPS限制。但是找不到哪个参数是修改这个的,所以最后搞了一个ssdb双主的集群使用。

所以想加一个监控,主要监控SSDB的一些常用命令和其他的东西。但是网上找的基本都是同一个复制品。没啥参考作用,所以自己琢磨搞了一套。其他有需要的朋友可以用。

1、zabbix监控脚本

#!/bin/bash
# 因为SSDB不像redis可以直接在控制台上面执行info命令,所以要借助expect命令来交互式输入
# 这个也是SSDB让人诟病的一个地方,因为ssdb-cli没有密码的参数
# 
cd `dirname $0`
flag=$1
detail=$2
# 截取前面三个字符串,判断是否是命令
cmd="${flag:0:3}"
if [ $# -eq 1 ];then
./ssdb_info.exp info cmd |grep -A 1 $flag | sed  -n '2p'|awk '{print $1}'
elif [ $# -eq 2 -a $cmd == "cmd" ] ;then
    case $detail in
                "calls")
                        ./ssdb_info.exp  info cmd |grep -A 1 $flag | sed -n '2p' | awk '{print $2}'
                        ;;
                "time_wait")
                        ./ssdb_info.exp  info cmd |grep -A 1 $flag | sed -n '2p' | awk '{print $4}'
                        ;;
                        "time_proc")
                        ./ssdb_info.exp info cmd |grep -A 1 $flag | sed -n '2p' | awk '{print $6}'
                        ;;
                *)
                        echo "input error"
                        ;;
    esac
elif [ $# -eq 2 -a $cmd == "lev" ];then
        case $detail in
                "Files")
                        ./ssdb_info.exp  info |grep -A 7 $flag | sed -n '5p' |awk '{print $2}'
                ;;
                "Size")
                        ./ssdb_info.exp  info |grep -A 7 $flag | sed -n '5p' |awk '{print $3}'
                ;;
                "Time")
                        ./ssdb_info.exp  info |grep -A 7 $flag | sed -n '5p' |awk '{print $4}'
                ;;
                "Read")
                        ./ssdb_info.exp  info |grep -A 7 $flag | sed -n '5p' |awk '{print $5}'
                ;;
                "Write")
                        ./ssdb_info.exp  info |grep -A 1 $flag | sed -n '5p' |awk '{print $6}'
                ;;
                *)
                        echo "input error"
                ;;
    esac
elif [ $# -eq 2 ];then
        ./ssdb_info.exp  info cmd | grep -A 3 $flag | grep $detail|awk '{print $3}'
fi

ssdb_info.exp脚本

#!/usr/bin/expect 
set cmd [lindex $argv 0]
set param [lindex $argv 1]
set timeout 1
spawn  /usr/local/bin/ssdb-cli -h 127.0.0.1 -p 8889

expect  "8889>"
send "auth '123456'\r"
send "$cmd $param\r"

expect eof

2、zabbix_agentd.conf文件配置

vim zabbix_agentd.conf 
UserParameter=check_ssdb[*],/bin/bash /usr/local/zabbix/scripts/check_ssdb.sh $1 $2

3、页面添加相关的监控项,或者直接导入监控模板

模板下载链接:zbx_export_templates.xml-Linux文档类资源-CSDN下载zabbix监控ssdb模板更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/MYF12/37362085

4、最后的监控效果:

Guess you like

Origin blog.csdn.net/MYF12/article/details/121164211