热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

nagios插件内存监控

为什么80%的码农都做不了架构师?#!usrbinenvpython#-*-coding:utf-8-*-NagiosplugintoreportMe

为什么80%的码农都做不了架构师?>>>   hot3.png

#!/usr/bin/env python
# -*- coding:utf-8 -*-
"""Nagios plugin to report Memory usage by parsing /proc/meminfoby L.S. Keijser This script takes Cached memory into consideration by adding thatto the total MemFree value.modified by jastme ,can used by pnp4nagios"""from optparse import OptionParser
import syscheckmemver = '0.1'# Parse commandline options:
parser = OptionParser(usage="%prog -w  -c  [ -h ]",version="%prog " + checkmemver)
parser.add_option("-w", "--warning",action="store", type="string", dest="warn_threshold", help="Warning threshold in percentage")
parser.add_option("-c", "--critical",action="store", type="string", dest="crit_threshold", help="Critical threshold in percentage")
(options, args) &#61; parser.parse_args()def readLines(filename):f &#61; open(filename, "r")lines &#61; f.readlines()return linesdef readMemValues():global memTotal, memCached, memFreefor line in readLines(&#39;/proc/meminfo&#39;):if line.split()[0] &#61;&#61; &#39;MemTotal:&#39;:memTotal &#61; line.split()[1]if line.split()[0] &#61;&#61; &#39;MemFree:&#39;:memFree &#61; line.split()[1]if line.split()[0] &#61;&#61; &#39;Cached:&#39;:memCached &#61; line.split()[1]def percMem():readMemValues()return (((int(memFree) &#43; int(memCached)) * 100) / int(memTotal))def realMem():readMemValues()return (int(memFree) &#43; int(memCached)) / 1024def go():if not options.crit_threshold:print "UNKNOWN: Missing critical threshold value."sys.exit(3)if not options.warn_threshold:print "UNKNOWN: Missing warning threshold value."sys.exit(3)if int(options.crit_threshold) >&#61; int(options.warn_threshold):print "UNKNOWN: Critical percentage can&#39;t be equal to or bigger than warning percentage."sys.exit(3)trueFree &#61; percMem()trueMemFree &#61; realMem()if int(trueFree) <&#61; int(options.crit_threshold):print "CRITICAL: Free memory percentage is less than or equal to %s%% %s %sMB | mem &#61; %sMB;6546;3273;0;32732"  %(str(options.crit_threshold),str(trueFree),str(trueMemFree),str(trueMemFree))sys.exit(2)if int(trueFree) <&#61; int(options.warn_threshold):print "WARNING: Free memory percentage is less than or equal to %s%% %s %sMB | mem &#61; %sMB;6546;3273;0;32732"  %(str(options.warn_threshold),str(trueFree),str(trueMemFree),str(trueMemFree))sys.exit(1)else:print "OK: Free memory percentage is %s%% %sMB | mem &#61; %sMB;6546;3273;0;32732"  %(str(trueFree),str(trueMemFree),str(trueMemFree))sys.exit(0)if __name__ &#61;&#61; &#39;__main__&#39;:go()



转:https://my.oschina.net/jastme/blog/278530



推荐阅读
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ... [详细]
  • 在前两篇文章中,我们探讨了 ControllerDescriptor 和 ActionDescriptor 这两个描述对象,分别对应控制器和操作方法。本文将基于 MVC3 源码进一步分析 ParameterDescriptor,即用于描述 Action 方法参数的对象,并详细介绍其工作原理。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 几何画板展示电场线与等势面的交互关系
    几何画板是一款功能强大的物理教学软件,具备丰富的绘图和度量工具。它不仅能够模拟物理实验过程,还能通过定量分析揭示物理现象背后的规律,尤其适用于难以在实际实验中展示的内容。本文将介绍如何使用几何画板演示电场线与等势面之间的关系。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • ImmutableX Poised to Pioneer Web3 Gaming Revolution
    ImmutableX is set to spearhead the evolution of Web3 gaming, with its innovative technologies and strategic partnerships driving significant advancements in the industry. ... [详细]
  • MongoDB集群配置:副本集与分片详解
    本文详细介绍了如何在MongoDB中配置副本集(Replica Sets)和分片(Sharding),并提供了具体的步骤和命令,帮助读者理解并实现高可用性和水平扩展的MongoDB集群。 ... [详细]
author-avatar
lululove8_530
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有