zabbix监控redis方法

2025-10-06 08:03:26

1、redis的运行端口是6379

zabbix监控redis方法

2、创建一个计划任务,每5分钟将redis info输出到一个文本中

zabbix监控redis方法

3、测试下,基本是不占用多少时间,消耗多少性能的

zabbix监控redis方法

4、自定义redis监控项

UserParameter=redis.monitor[*],python /etc/zabbix/scripts/monitor_rds.py $1

zabbix监控redis方法

5、[root@localhost zabbix_agentd.d]# cat /etc/zabbix/scripts/monitor_rds.py

# -*- coding:utf-8 -*-

# 内存使用容量   used_memory   maxmemory   total_system_memory

# 内存使用率

# 连接数  connected_clients

# role  role

import json

import sys

def return_list():

    dict1 = {}

    list1 = ['used_memory', 'maxmemory', 'total_system_memory', 'connected_clients', 'role']

    file01 = open('/tmp/.6379.txt')

    content = file01.readlines()

    if content:

        file01.close()

        for i in content:

            new_str = i.split('\r')[0]

            if new_str and not new_str.startswith('#'):

                # print new_str

                key = new_str.split(':')[0]

                value = new_str.split(':')[1]

                if key in list1:

                    dict1[key] = value

        return dict1

    else:

        return None

def get_float2(num):

    new_num = float(num)/(1024*1024)

    new_num = float('%.2f' % new_num)

    return new_num

def get_per(num1,num2):

    per = 100*float(num1)/float(num2)

    new_per = float('%.2f' % per)

    return new_per

def get_new_dict():

    dict1 = return_list()

    if dict1:

        used_memory = dict1['used_memory']

        maxmemory = dict1['maxmemory']

        total_system_memory = dict1['total_system_memory']

        have_used_memory = get_float2(used_memory)

        if int(maxmemory) != 0:

            free_memory =  int(maxmemory) - int(used_memory)

            used_memory_per = get_per(have_used_memory,get_float2(maxmemory))

        else:

            free_memory =  int(total_system_memory) - int(used_memory)

            used_memory_per = get_per(have_used_memory,get_float2(total_system_memory))

        dict1['used_memory'] = have_used_memory

        dict1['free_memory'] = get_float2(free_memory)

        dict1['used_memory_per'] = used_memory_per

        return dict1

    else:

        return None

def return_zabbix():

    list1 = ['used_memory', 'used_memory_per', 'connected_clients', 'role','free_memory']

    item = {'data': [{'{#ITEM}': value} for value in list1]}

    print json.dumps(item, indent=4)

if __name__ == '__main__':

    dict1 = get_new_dict()

    if len(sys.argv) == 1:

        return_zabbix()

    elif len(sys.argv) == 2 and dict1:

        if sys.argv[1] == "used_memory":

            print dict1['used_memory']

        elif sys.argv[1] == "used_memory_per":

            print dict1['used_memory_per']

        elif sys.argv[1] == "connected_clients":

            print dict1['connected_clients']

        elif sys.argv[1] == "role":

            print dict1['role']

        elif sys.argv[1] == "free_memory":

            print dict1['free_memory']

    else:

        print 0

zabbix监控redis方法

6、都能正常输出内容

zabbix监控redis方法

7、主要监控的是,使用内存情况,内存使用率,连接数,角色,剩余内存

used_memory', 'used_memory_per', 'connected_clients', 'role','free_memory

zabbix监控redis方法

8、再配置触发器就能实时监控redis的使用情况了

zabbix监控redis方法

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢