大家好,又见面了,我是你们的朋友全栈君。
python运维实例
第一部分Part 1
基础篇
■ 第1 章 系统基础信息模块详解
■ 第2 章 业务服务监控详解
■ 第3 章 定制业务质量报表详解
■ 第4 章 Python 与系统安全
Chapter 1 第1 章
系统基础信息模块详解
系统基础信息采集模块作为监控模块的重要组成部分,能够帮助运维人员了解当前系统
的健康程度,同时也是衡量业务的服务质量的依据,比如系统资源吃紧,会直接影响业务的
服务质量及用户体验,另外获取设备的流量信息,也可以让运维人员更好地评估带宽、设备
资源是否应该扩容。本章通过运用Python 第三方系统基础模块,可以轻松获取服务关键运营
指标数据,包括Linux 基本性能、块设备、网卡接口、系统信息、网络地址库等信息。在采
集到这些数据后,我们就可以全方位了解系统服务的状态,再结合告警机制,可以在第一时
间响应,将异常出现在苗头时就得以处理。
本章通过具体的示例来帮助读者学习、理解并掌握。在本章接下来的内容当中,我们的
示例将在一个连续的Python 交互环境中进行。
进入Python 终端,执行python 命令进入交互式的Python 环境,像这样:
# python
Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22)
[GCC 4.4.7(Red Hat 4.4.7-4)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>>
1.1 系统性能信息模块psutil
psutil 是一个跨平台库(/p/psutil/ ),能够轻松实现获取系统运行的
第1章 系统基础信息模块详解 3
进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要应用于系统监控,分
析和限制系统资源及进程的管理。它实现了同等命令行工具提供的功能,如ps 、top 、lsof 、
netstat 、ifconfig 、who 、df 、kill 、free 、nice 、ionice 、iostat 、iotop 、uptime 、pidof 、tty 、
taskset 、pmap 等。目前支持32 位和64 位的Linux 、Windows 、OS X 、FreeBSD 和Sun
Solaris 等操作系统,支持从2.4 到3.4 的Python 版本,目前最新版本为2.0.0 。通常我们获取
操作系统信息往往采用编写shell 来实现,如获取当前物理内存总大小及已使用大小,shell
命令如下:
物理内存total 值 : free -m | grepMem | awk ‘{print $2}’
物理内存used 值 : free -m | grepMem | awk ‘{print $3}’
相比较而言,使用psutil 库实现则更加简单明了。psutil 大小单位一般都采用字节,如下:
>>> import psutil
>>>mem = psutil.virtual_memory()
>>>mem.total,mem.used
(506277888L, 500367360L)
psutil 的源码安装步骤如下:
#wget /packages/source/p/psutil/psutil-2.0.0.tar.gz
–no-check-certificate
# tar -xzvf psutil-2.0.0.tar.gz
# cd psutil-2.0.0
# python setup.py install
1.1.1 获取系统性能信息
采集系统的基本性能信息包括CPU、内存、磁盘、网络等,可以完整描述当前系统的运
行状态及质量。psutil 模块已经封装了这些方法,用户可以根据自身的应用场景,调用相应
的方法来满足需求,非常简单实用。
(1 )CPU 信息
Linux 操作系统的CPU 利用率有以下几个部分:
User Time ,执行用户进程的时间百分比;
System Time ,执行内核进程和中断的时间百分比;
Wait IO
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157973.html原文链接:https://javaforall.cn