memcache、redis监控及模板制作、监控项、触发器详解(小节8)

100 阅读1分钟

监控memcache

如果制作一个完整的模板

106

安装memcache

apt install redis memcached -y

修改memcache配置文件

vim /etc/memcached.conf
-l 0.0.0.0   <--修改监控地址

重启memcache服务

systemctl restart memcached

测试能否取到当前连接数的值

echo -e "stats\nquit" | ncat 192.168.37.106 11211 | grep "STAT curr_connections" |awk '{print $3}'
1    <--当前连接数

编辑脚本

cd /etc/zabbix/zabbix_agentd.conf.d/


vim memcache.sh
#!/bin/bash
echo -e "stats\nquit" | ncat 192.168.37.106 11211 | grep "STAT curr_connections" |awk '{print $3}'

#添加执行权限
chmod a+x memcache.sh
vim /etc/zabbix/zabbix_agentd.conf

UserParameter=memcache_conn,/etc/zabbix/zabbix_agentd.conf.d/memcache.sh

重启服务

systemctl restart zabbix-agent

101

zabbix_get -s 192.168.37.106 -p 10050 -k "memcache_conn"
1    <--返回值

添加监控项 图片.png

图片.png

图片.png

添加图形 图片.png

图片.png

图片.png

106

cd /etc/zabbix/zabbix_agentd.conf.d/

vim memcached.sh

#!/bin/bash
memcached_status(){
        M_PORT=$1
        M_COMMAND=$2
        echo -e "stats\nquit" | ncat  127.0.0.1 "$M_PORT" | grep "STAT $M_COMMAND" | awk '{print $3}'
}
main(){
    case $1 in
        memcached_status)
            memcached_status $2 $3
                ;;
    esac
}
main $1 $2 $3

#添加权限
chmod a+x memcached.sh

创建模板

图片.png

图片.png

106

#注释掉
vim /etc/zabbix/zabbix_agentd.conf

#UserParameter=memcache_conn,/etc/zabbix/zabbix_agentd.conf.d/memcache.sh
#添加
vim linux01.conf

UserParameter=memcached_status[*],/etc/zabbix/zabbix_agentd.conf.d/memcached.sh "$1" "$2" "$3"

重启服务

systemctl restart zabbix-agent

101

zabbix_get -s 192.168.37.106 -p 10050 -k "memcached_status[memcached_status,11211,curr_connections]"
2

图片.png

图片.png

图片.png 添加图形 图片.png

图片.png 关联主机 图片.png

图片.png

再次添加一个值 图片.png

克隆 图片.png

图片.png 创建图形 图片.png

图片.png

图片.png

触发器 图片.png

图片.png

图片.png

图片.png

报警了、如果没有报警[在其他主机上"telnet 192.168.37.106 11211"]超过2次即可 图片.png

监控redis

106

安装redis

apt install redis -y

修改redis配置文件

vim /etc/redis/redis.conf
bind 0.0.0.0 ::1   <--修改监控地址

重启redis服务

systemctl restart redis

创建脚本

cd /etc/zabbix/zabbix_agentd.conf.d/

vim redis.sh
#!/bin/bash
redis_status(){
        R_PORT=$1
        R_COMMAND=$2
        (echo -en "INFO \r\n";sleep 1;) | ncat 127.0.0.1 "$R_PORT" > /usr/local/zabbix/redis_"$R_PORT".tmp
	REDIS_STAT_VALUE=$(grep ""$R_COMMAND":" /usr/local/zabbix/redis_"$R_PORT".tmp | cut -d ':' -f2)
	echo $REDIS_STAT_VALUE
}

help(){
        echo "${0} + redis_status + PORT + COMMAND"
}

main(){
        case $1 in
		redis_status)
			redis_status $2 $3
			;;
		*)
			help
			;;
	esac
}

main $1 $2 $3

添加执行权限、创建目录

chmod a+x redis.sh
mkdir /usr/local/zabbix

chown zabbix.zabbix /usr/local/zabbix

测试是否能取到info中的值

图片.png

#     脚本名称      函数    端口号 值
bash redis.sh redis_status 6379 role
master    <--返回值
vim linux01.conf

UserParameter=redis_status[*],/etc/zabbix/zabbix_agentd.conf.d/redis.sh "$1" "$2" "$3"

重启服务

systemctl restart zabbix-agent

101

权限拒绝

zabbix_get -s 192.168.37.106 -p 10050 -k "redis_status[redis_status,6379,used_memory]"
/etc/zabbix/zabbix_agentd.conf.d/redis.sh: line 5: /usr/local/zabbix/redis_6379.tmp: Permission denied
841304

106

修改权限

chown zabbix.zabbix /usr/local/zabbix/redis_6379.tmp

101

zabbix_get -s 192.168.37.106 -p 10050 -k "redis_status[redis_status,6379,used_memory]"
862176

创建模板

图片.png

图片.png

创建监控项 图片.png

图片.png

图片.png

克隆 图片.png

图片.png 关联模板

图片.png 创建图形

图片.png

图片.png

图片.png

图片.png

图片.png 创建触发器 图片.png 大于3就会报警 图片.png

图片.png

图片.png

在其他主机中连接106主机的6379端口、超过3次会报警 图片.png

图片.png 邮件已经收到报警信息 图片.png