在zabbix监控中我们需要监控磁盘I/O值,psutil模块提供一个接口用于检索所有运行处理的信息和系统cpu内存硬盘等利用情况。通过psutil我可以可以监控的硬盘的使用及IO情况,下面是我写的一段利用python监控磁盘IO有小程序,与zabbix相配合使用:
#!/usr/bin/env python#coding=utf8import psutilimport sysclass DiskIo(object): def __init___(self): self.read_count = 0 self.write_count = 0 def get_io_read_count(self): a = psutil.disk_io_counters(perdisk=True) self.read_count = a['sda4'][0] return self.read_count def get_io_write_count(self): a = psutil.disk_io_counters(perdisk=True) self.write_count = a['sda4'][1] return self.write_countclass error_out(object): def error_out(self): '''输出错误信息''' print print 'Usage : ' + sys.argv[0] + ' StatusKey ' print sys.exit(1)class Main(object): def main(self): if len(sys.argv) == 1: error = error_out() error.error_out() elif sys.argv[1] == 'read_count': a = DiskIo() print a.get_io_read_count() elif sys.argv[1] == 'write_count': a = DiskIo() print a.get_io_write_count()if __name__ == '__main__': main_obj = Main() main_obj.main()
测试取值与前一篇监控mysql qps/tps相类似,目前已经部署上线。
python psutil取磁盘IO值,首发于运维者。
积极思考造成积极人生,消极思考造成消极人生。