监控系统性能的脚本(cpu,disk,memory,network)


#!/usr/bin/python
import psutil
import json
import time

def item_disk():
    return dict(zip(
           [‘total‘,‘used‘,‘free‘,‘percent‘],psutil.disk_usage(‘/‘)
))
def item_cpu():
    return dict(zip(
           [‘user‘,‘system‘,‘nice‘,‘idle‘],psutil.cpu_times()
))
def item_mem():
    return dict(zip(
           [‘total‘,‘available‘,‘percent‘,‘used‘,‘free‘,
              ‘active‘,‘inactive‘],psutil.virtual_memory()
))
def item_net():
    return dict(zip(
           [‘bytes_sent‘,‘bytes_recv‘,‘packets_sent‘,‘packets_recv‘,
            ‘errin‘,‘errout‘,‘dropin‘,‘dropout‘],psutil.net_io_counters()
))

def runner():
    while True:
        yield{
            ‘disk‘ : item_disk(),
            ‘cpu‘  : item_cpu(),
            ‘mem‘  : item_mem(),
            ‘network‘ : item_net()
        }

def format_(data):
    return json.dumps(data, indent=4, ensure_ascii=False)

def running():
    for items in runner():
        print(format_(items))
        time.sleep(5)

def main():
    print(running())

if __name__ == ‘__main__‘:
    main()

时间: 2024-10-12 22:15:53

监控系统性能的脚本(cpu,disk,memory,network)的相关文章

一个监控系统性能的脚本

[[email protected] ~]# cat monitor.sh #!/bin/bash # chkconfig: 2345 08 92# description:  The scripts is to monitor system health ! Today=`date +%Y%m%d` function disk { clear df -h } function memory { clear free -m} function cpu { clear top } function

利用JMX统计远程JAVA进程的CPU和Memory

从JAVA 5开始,JDK提供了一些JVM检测的API,这就是有名的java.lang.management 包,包里提供了许多MXBean的接口类,可以很方便的获取到JVM的内存.GC.线程.锁.class.甚至操作系统层面的各种信息,本文就简单的介绍 一种利用JMX对JAVA进程进行CPU.堆内存使用的监控.可能有人会觉得没必要这样做,因为用jconsole之类的工具都能做到,而且会比本文的例 子更详细.但是有些时候将console不一定能监控到作为系统服务的java进程,我最近就不得不自己

Docker容器CPU、memory资源限制

背景 在使用 docker 运行容器时,默认的情况下,docker没有对容器进行硬件资源的限制,当一台主机上运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU.内存和磁盘资源.如果不对容器使用的资源进行限制,那么容器之间会互相影响,小的来说会导致容器资源使用不公平:大的来说,可能会导致主机和集群资源耗尽,服务完全不可用. docker 作为容器的管理者,自然提供了控制容器资源的功能.正如使用内核的 namespace 来做容器之间的隔离,docker 也是通过内核的 cgrou

nagios 监控 网卡流量 脚本

#!/bin/bash # #Time     : 2014-06-23 #Author   : ftlynx #Function : use NET-SNMP get NIC traffic on nagios. Usage(){ echo "Usage: check_traffic.sh [options]" echo "     -H     Host IP." echo "     -P     net-snmp community string.

ZABBIX监控H3C设备的CPU和内存使用率

由于最近监控的H3C路由器经常出现死机现象,SNMP获取不到数据,后面检查发现是CPU使用率过高,直接导致无法处理SNMP请求,所以需求来了,怎样通过SNMP监控H3C路由器的CPU和内存使用率? 由于CPU和内存的IOD号是H3C厂商没有公布的,所以不好找,在网上百度了一些资料查找H3C网络设备的CPU和内存OID号,这里做个记录,以供以后参考. 一般H3C网络设备的CPU和内存的IOD号和下面的东西有关. H3C cpu 使用率OID:.1.3.6.1.4.1.25506.2.6.1.1.1

【监控】Nagios-NRPE脚本返回值

自定义Nagios NRPE脚本EXIT退出值和nagios状态都应关系: 状态 EXIT退出值 输出 例子 OK 0 echo "OK - it's ok." echo "OK - it's ok." exit 0 WARNING 1 echo "WARNING - it's warning." echo "WARNING - it's warning." exit 1 CRITICAL 2 echo "CRITI

zabbix监控windows日志脚本

zabbix监控windows日志脚本     脚本用于监控windows服务器上日志,查看日志文件的末尾N行,如果N行中包含某字段,则输出0,否则输出1,然后再zabbix的配置文件空定义kye,进行监控. 文本文件的换行符是"\n" 编辑脚本log.py import sys import re def last_lines(filename, lines = 1):     lines = int(lines)     block_size = 1024     block = 

SQL Server 监控统计阻塞脚本信息

原文:SQL Server 监控统计阻塞脚本信息 数据库产生阻塞(Blocking)的本质原因 :SQL语句连续持有锁的时间过长 ,数目过多, 粒度过大.阻塞是事务隔离带来的副作用,它是不可避免的,而且是一个数据库系统常见的现象. 但是阻塞的时间和出现频率要控制在一定的范围内,阻塞持续的时间过长或阻塞出现过多(过于频繁),就会对数据库性能产生严重的影响. 很多时候,DBA需要知道数据库在出现性能问题时,有没有发生阻塞? 什么时候开始的?发生在那个数据库上? 阻塞发生在那些SQL语句之间? 阻塞的

监控系统负载与CPU、内存、硬盘、登录用户数,超出警戒值则发邮件告警。

[email protected]:~$ cat warning.sh #!/bin/bash #监控系统负载与CPU.内存.硬盘.登录用户数,超出警戒值则发邮件告警.    前提安装mail服务  [email protected] #提取本服务器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`    # 1.监控系统负载的变化情况