redis-monitor.py

open-falcon的部署流程<1> 本文档记录了centos6.4下open-falcon监控系统的部署流程,以及一些需要注意的地方。 参考了官方文档 http://book.open-falcon.org/zh/ 部署前的准备 设置环境变量 redis安装 MySql安装 初始化Mysql脚本 下载open-falcon 安装GoLang环境 开始部署 安装agent 安装hbs 安装transfer 安装graph 安装que 阅读详情

转载git代码: https://github.com/iambocai/falcon-monit-scripts/blob/master/redis/redis-monitor.py

#!/bin/env python
#-*- coding:utf-8 -*-

__author__ = 'iambocai'

import json
import time
import socket
import os
import re
import sys
import commands
import urllib2, base64

class RedisStats:
    # 如果你是自己编译部署到redis,请将下面的值替换为你到redis-cli路径
    #_redis_cli = '/usr/bin/redis-cli'
    _redis_cli = '/opt/machtalk/redis/src/redis-cli'
    _stat_regex = re.compile(ur'(\w+):([0-9]+\.?[0-9]*)\r')

    def __init__(self,  port='6379', passwd=None, host='127.0.0.1'):
        self._cmd = '%s -h %s -p %s info' % (self._redis_cli, host, port)
        if passwd not in ['', None]:
            #self._cmd = "%s -a %s" % (self._cmd, passwd )
        self._cmd = '%s -h %s -p %s -a %s info' % (self._redis_cli, host, port, passwd)

    def stats(self):
        ' Return a dict containing redis stats '
        info = commands.getoutput(self._cmd)
        return dict(self._stat_regex.findall(info))


def main():
    #ip = socket.gethostname()
    ip =  "10.0.125.103"
    timestamp = int(time.time())
    step = 60
    # inst_list中保存了redis配置文件列表,程序将从这些配置中读取port和password,建议使用动态发现的方法获得,如:
    insts_list = [ i for i in commands.getoutput("find  /opt/machtalk/redis/ -name '6379.conf'" ).split('\n') ]
    print insts_list
    #insts_list = [ '/etc/redis.conf' ]
    p = []

    monit_keys = [
        ('connected_clients','GAUGE'), 
        ('blocked_clients','GAUGE'), 
        ('used_memory','GAUGE'),
        ('used_memory_rss','GAUGE'),
        ('mem_fragmentation_ratio','GAUGE'),
        ('total_commands_processed','COUNTER'),
        ('rejected_connections','COUNTER'),
        ('expired_keys','COUNTER'),
        ('evicted_keys','COUNTER'),
        ('keyspace_hits','COUNTER'),
        ('keyspace_misses','COUNTER'),
        ('keyspace_hit_ratio','GAUGE'),
    ]

    for inst in insts_list:
        port = commands.getoutput("sed -n 's/^port *\([0-9]\{4,5\}\)/\\1/p' %s" % inst)
        passwd = commands.getoutput("sed -n 's/^requirepass *\([^ ]*\)/\\1/p' %s" % inst)
        metric = "redis"
        endpoint = ip
        tags = 'port=%s' % port

        try:
            conn = RedisStats(port, passwd)
            stats = conn.stats()
        except Exception,e:
            continue

        for key,vtype in monit_keys:
            if key == 'keyspace_hit_ratio':
                try:
                    value = float(stats['keyspace_hits'])/(int(stats['keyspace_hits']) + int(stats['keyspace_misses']))
                except ZeroDivisionError:
                    value = 0
            elif key == 'mem_fragmentation_ratio':
        try:
                    value = float(stats[key])
            except Exception,e:
                continue
            else:
                try:
                    value = int(stats[key])
                except:
                    continue

            i = {
                'Metric': '%s.%s' % (metric, key),
                'Endpoint': endpoint,
                'Timestamp': timestamp,
                'Step': step,
                'Value': value,
                'CounterType': vtype,
                'TAGS': tags
            }
            p.append(i)


    print json.dumps(p, sort_keys=True,indent=4)
    method = "POST"
    handler = urllib2.HTTPHandler()
    opener = urllib2.build_opener(handler)
    url = 'http://127.0.0.1:1988/v1/push'
    request = urllib2.Request(url, data=json.dumps(p) )
    request.add_header("Content-Type",'application/json')
    request.get_method = lambda: method
    try:
        connection = opener.open(request)
    except urllib2.HTTPError,e:
        connection = e

    # check. Substitute with appropriate HTTP code.
    if connection.code == 200:
        print connection.read()
    else:
        print '{"err":1,"msg":"%s"}' % connection
if __name__ == '__main__':
    proc = commands.getoutput(' ps -ef|grep %s|grep -v grep|wc -l ' % os.path.basename(sys.argv[0]))
    if int(proc) < 5:
        main()
云服务器巡检报告 网络安全 立即下载

相关推荐

监控指标(数据库巡检指标、监控指标)

1.只是文档 监控指标:主机资源监控、tomcat监控、redis监控、MQ监控、nginx监控、URL监控、Oracle监控、MySQL监控、sqlserver监控、PG监控、 数据库巡检指标:基本信息、数据库配置、检查项

falcon 关于mysql监控_Open-Falcon 监控系统监控 MySQL/Redis/MongoDB 状态监控

#!/bin/env python#-*- encoding: utf-8 -*-from __future__ importdivisionimportMySQLdbimportdatetimeimporttimeimportosimportsysimportfileinputimportrequestsimportjsonimportreclassMySQLMonitorInfo():def ...

weixin_30995363的博客 174

企业系统巡检报告

企业系统巡检报告(巡检),是企业对机房服务器、设备、应用软件、数据库等检查报告。

16_小米监控Open-Falcon:Redis监控

小米监控Open-Falcon:Redis监控更多干货分布式实战(干货)spring cloud 实战(干货)mybatis 实战(干货)spring boot 实战(干货)React 入门实战(干货)构建中小型互联网企业架构(干货)python 学习持续更新一、 介绍Redis的数据采集可以通过采集脚本redis-monitor 或者 redismon来做。redis-monitor是一个cro...

架构师的成长之路的博客 4039

DataWorks数据安全治理最佳实践

DataWorks基于数据安全治理的常见思路,针对资产梳理、技术体系建设和运营体系建设,提供了一系列数据安全产品能力,您可通过“基础防护建设、数据安全防护措施及策略增强建设、数据安全持续运营”三个阶段在DataWorks上落地数据安全治理项目。参考本文启动数据安全治理项目前,建议您先了解DataWorks数据安全产品相关能力了解DataWorks数据安全产品能力后,您可参考如下三个阶段在DataWorks上落地数据安全治理项目。

soso1968的博客 1438

RTX4090上跑CenterNet训练

参考实现 url=https://github.com/xingyizhou/CenterNet.git commit_id=5b1a490a52da57d3580e80b8bb4bbead9ef2af96

遗失的神庙 1622

Open-Falcon 监控系统监控 MySQL/Redis/MongoDB 状态监控

背景: Open-Falcon 是小米运维部开源的一款互联网企业级监控系统解决方案,具体的安装和使用说明请见官网:http://open-falcon.org/,是一款比较全的监控。而且提供各种API,只需要把数据按照规定给出就能出图,以及报警、集群支持等等。 监控: 1) MySQL 收集信息脚本(mysql_monitor.py)#!/bin/env python#-- encoding: u...

weixin_34059951的博客 245

stm32驱动NRF24L01_原理+代码解析

NRF24L01是NORDIC公司生产的一款无线通信通信芯片,采用FSK 调制,集成NORDIC自家的Enhanced Short Burst协议。可以实现点对点或是1对6的无线通信。无线通信速度最高可达到2Mbps。①2.4G全球开放的ISM频段,免许可证使用。②最高工作速率2Mbps,高校的GFSK调制,抗干扰能力强。③126个可选的频道,满足多点通信和调频通信的需要。④内置CRC检错和点对多点的通信地址控制。⑤可设置自动应答,确保数据可靠传输。//NRF24L01寄存器操作命令。

zyc18700766982的博客 2万+

Redis Monitor命令:深入了解实时数据库操作

MONITOR是一个Redis的内置命令,用于实时监控Redis服务器上执行的所有命令和活动。当我们执行这个命令时,Redis会立即返回一个实时的事件流,显示所有传入的命令以及它们的执行时间。执行上述命令后,我们将看到一个持续的输出流,显示所有正在执行的Redis命令。

十年运维开发经验的王义杰在此分享自己的知识和经验 2564

大模型测试人员完整学习体系(分层成长路线 + 知识框架 + 落地实操)

本文系统构建了大模型测试工程师的4级能力成长体系:L1(测试执行)-L2(专项测试)-L3(质量体系)-L4(行业标准),详细拆解了每个阶段的核心技能图谱。重点包括:入门层需掌握传统测试基础和大模型产品逻辑;进阶层需精通Prompt用例设计、RAG测试、安全对齐、自动化评测等专项能力;高级层聚焦评测平台搭建与质量体系建设;专家层深入算法对齐与行业标准制定。文章配套提供了分阶段技术工具栈、3-12个月学习路径及5类实战项目建议,形成了一套完整的大模型测试人才能力培养框架。

SmallBull的博客 457

全球首发48V架构的Cybertruck,到底牛在哪?| 深扒特斯拉高压系统架构

特斯拉Cybertruck作为全球首款标配48V架构的量产车,在电气系统架构上进行了多项创新。首先,它采用以太网连接高压控制器与后域控制器,提升了数据传输效率和智能化水平。其次,Cybertruck引入了Pyro烟火断开装置,用于碰撞时快速断开电池连接,提高安全性。在电流监测方面,特斯拉既保留了传统的Shunt分流器技术,又引入了更先进的磁通门电流传感器,后者具有无温漂、完全隔离等优势。48V供电系统在降低电流损耗方面表现优异,但也面临电弧风险、盐水腐蚀等挑战。Cybertruck的48V系统通过PCS供电

weixin_43199439的博客 1348

Python操作redis中的订阅、发布

建立了3个py文件 1. monitor.py文件将订阅、发布、保存服务器连接存活三者封装成一个class,这里使用线程,每隔一段时间,向redis服务器发一次ping连接,保证长时间连接redis服务器,不会和客户端断开。 # -*- coding:utf-8 -*- import threading import time import redis class RedisTest(obje...

HADLM 483

2024年 Flutter 面试题大全(2024.6.28持续更新中)

2024年 Flutter 面试题大全(持续更新中)

Code Metaverse 6667

Redis 系列(十二):性能、观测与生产排障——从慢查询到故障决策树

本文系统总结了Redis性能问题的观测手段与排障方法论,围绕三个典型线上问题场景展开。文章提出五维度观测体系:INFO全局指标、SLOWLOG慢查询、CLIENT LIST连接分析、MONITOR实时监控(慎用)和latency延迟监控,并详细说明各工具的使用方式和关键指标。针对常见性能问题(命令延迟、内存增长、连接暴涨等),给出了对应的指标检查清单和根因分析。在客户端治理方面,重点强调了连接池配置、超时重试机制及异步客户端的注意事项。最后构建了可视化的排障决策树,并通过大key阻塞案例演示完整排查流程。文

QAZ600888的博客 295

ITKMontage---ITK自动拼接模块

本文分享ITK中Remote中的ITKMontage拼接模块,希望对各位小伙伴有所帮助!1. ITKMontage介绍在医疗图像处理过程中,图像拼接有很多用处,比如DR图像的拼接。ITKMontage可以快速稳定的处理数据量较大的拼接图像。强度不均匀性校正配准全局优化融合2. ITKMontage安装ITKMontageITKMontage可脱离ITK进行单独安装,也可在ITK安装时作为模块进行安装。单独安装ITK模块安装在ITK编译时,选择ITKMontage模块。

qq_40041064的博客 450

详解大端模式和小端模式

详解大端模式和小端模式 一、大端模式和小端模式的起源         关于大端小端名词的由来,有一个有趣的故事,来自于Jonathan Swift的《格利佛游记》:Lilliput和Blefuscu这两个强国在过去的36个月中一直在苦战。战争的原因:大家都知道,吃鸡蛋的时候,原始的方法是打破鸡蛋较大的一端,可以那时的皇帝的祖父由于小时侯吃鸡蛋,按这种方法把手指弄破了,因此他的父亲,就下令,命令

ce123的技术博客 19万+

卸载小鲁温度监控有影响吗_12生产预警平台项目之RedisLive监控工具的详细安装...

1.安装python2.7.5 和pip参考:http://blog.itpub.net/30089851/viewspace-2132450/2.下载RedisLive3.查看版本要求(刚开始安装没注意版本,直接pip导致后面各种问题,所以请仔细看下面过程)4.pip安装环境要求5.进入 /root/learnproject/app/RedisLive/src目录,配置redis-live.co...

weixin_42484858的博客 1993

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

详解Scrapy Cluster中Kafka与Redis的消息生产和消费

相对于Scrapy框架,增加了Kafka和Redis模块的Scrapy Cluster要复杂的多。因此要搞清楚各大模块之间是如何工作的,就至关重要了。在Scrapy Cluster框架中,有三大系统模块:Kafka,Redis,Scrapy Spider。其中Kafka和Redis之间的消息传递是通过kafka_monitor.py组建实现的(单向连接)。Scrapy Spider和Redis的连...

wobushisongkeke的博客 1832

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Redis_04_Redis客户端

Redis序列化协议和客户端管理

爱喝可乐的w 772

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

InfluxDB Proxy 项目教程

InfluxDB Proxy 项目教程 1. 项目的目录结构及介绍 InfluxDB Proxy 项目的目录结构如下: influx-proxy/ ├── backend/ ├── monitor/ ├── service/ ├── .gitignore ├── AUTHORS ├── LICENSE.md ├── Makefile ├── README.md ├── client_query.p...

gitblog_00567的博客 905

Python 操作 Redis 缓存数据库的最佳实践

``htmlPython 操作 Redis 缓存数据库的最佳实践。

2501_90935078的博客 286

redis监控工具之redis-live

介绍监控redis的一款工具安装(linux下)yum install python-devel安装setuptools1)wget http://pypi.python.org/packages/source/s/setuptools/setuptools-2.0.tar.gz2)tar3)cd4)python setup.py build5)python set...

weixin_33842328的博客 92

Redis监控工具,命令和调优

Redis监控工具,命令和调优1.图形化监控 因为要对Redis做性能测试,发现了GitHub上有个python写的RedisLive监控工具评价不错。结果鼓捣了半天,最后发现其主页中引用了Google的jsapi脚本,必须在线连接谷歌的服务,Stackoverflow上说把js脚本下载到本地也没法解决问题,坑爹!正要放弃时发现了一个从RedisLiv...

weixin_34405332的博客 95

falcon监控redis

falcon 结合脚本redis-monitor.py进行监控redis * * * * * python /usr/local/openfalcon-0.2/mymon/redis-monitor.py &> /usr/local/openfalcon-0.2/mymon/redis-monitor.log cat redis-monitor.py #注意修改配置项:_redis...

weixin_34354945的博客 291

linux监控redis宕机,falcon监控redis

falcon 结合脚本redis-monitor.py进行监控redis* * * * * python /usr/local/openfalcon-0.2/mymon/redis-monitor.py &> /usr/local/openfalcon-0.2/mymon/redis-monitor.logcat redis-monitor.py#注意修改配置项:_redis_cl...

weixin_29468561的博客 302

离线环境下在linux上搭建python环境,实现监控服务调用,查看cpu,内存,ip,hostname,磁盘等信息

第一步:用命令: gunzip Python-3.6.5.tgz 解压缩,然后我们可以得到上面图片中的Python-3.6.5.tar文件 第二步:通过命令: tar -xvf Python-3.6.5 解压 第三步:命令: cd Python-3.6.5 进入该目录 第四步:命令:./configure 第五步:make && make –prefix=/usr/loca...

可爱的程序yuan 226
上一篇: falcon安装小记
下一篇: rabbitmq-monitor.py
LifeSecret
博客等级 码龄20年 172粉丝 825原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值