前言
在公司对于运维人员来说,巡检是日常例行的一件事。刚刚开始服务器少,每次都是手动登录到服务器上做检查。可是服务器一多了,肯定是不能这样干的。因此我们就需要做一些比较自动化的行为。
程序说明
程序是通过使用python实现ssh连接到服务器去实行shell脚本,返回数据,并且生成excel,对不正常指标进行标红处理。
Python要实现ssh连接服务器还需要其他模块。
软件/模块
版本
其他
python
2.7.9
paramiko
1.15.2
xlwt
1.0.0
本程序在win7 64bit使用是没有问题的(本人用的就是win7 64bit?? :)? )
这边为了方便我提供了两个版本:
由于有些人在机器上没有安装python,所以这里我提供了一个将python转化为exe的版本。只要点击exe执行文件就能执行相关程序了:daily_check_exe.zip
程序流程
python自动巡检 - 01
程序结构与程序说明
此程序由主程序、主机信息文件、命令文件三个文件组成。
`-- daily_check.py <--此文件是python的主程序
`-- 日期-xunjian.txt <--生成的巡检信息文件
`-- check.log <--日志文件
|-- hosts <--存放着要执行那些命令和检查那些主机的文件
| `-- host.info <--存放着需要巡检的主机IP和用户名密码
| `-- xx.xx.xx.xx.cmd <--存放相关主机需要执行的命令
1
2
3
4
5
6
`--daily_check.py<--此文件是python的主程序
`--日期-xunjian.txt<--生成的巡检信息文件
`--check.log<--日志文件
|--hosts<--存放着要执行那些命令和检查那些主机的文件
|`--host.info<--存放着需要巡检的主机IP和用户名密码
|`--xx.xx.xx.xx.cmd<--存放相关主机需要执行的命令
执行了daily_check.py生成了xunjian.txt文件,我们需要将文件的内容都拷贝到一个excel文件中查看。并标出相关的预警的信息。如下:
python自动巡检 - 02
上图显示了5列:
项目:检查了什么。
命令:检查使用的命令。
基线:比对的标准。
巡检情况:检查出来的信息。
主机:是在那台主机上检查的。
相关文件解释
这边就不说主程序文件了,有兴趣的可以自己去看。当然欢迎大家给出相关意见。
*.cmd文件
此文件存放了巡检需要执行的命令、校验标准和命令是检查什么项目的,如下图:
python自动巡检 - 03
以上文件的每一行分为3个部分:
校验项目。
校验shell命令。
校验标准:校验标准指定一个操作符号(>、<、=),具体用途例如:<85% 如果检查出来的结果 >85%就超标了。
以上三个部分是使用 "#” 分割(注意:请在命令中避免使用 "#”,以免出现程序分割错误)。
host.info文件
此文件中存放了需要巡检的主机的IP和用户名信息,它们使用空格分开,如果有不需要巡检的主机可以在里面使用 (#) 在注释,和shell脚本的注释是一样的。如图:
python自动巡检 - 04
如果有行的服务器需要巡检,需要添加相关 主机 信息到此文件中。
执行巡检
python程序巡检
需要接入生产环境,确保能使用相关用户访问相关服务器。
解压zip 文件。
运行py执行日常巡检。
python自动巡检 - 05
查看生成的excel表,看是否有红色标注的异常(一般在swap上有小的使用可以不管)。
查看log,获得相关的日志信息。
exe程序巡检
1、需要接入生产环境,确保能使用相关用户访问相关服务器。
2、解压zip。
进入到dist文件夹。
python自动巡检 - 06
找到exe执行巡检。(注意执行完巡检相关的巡检excel和check.log存储在dist文件夹中。)
python自动巡检 - 07
查看生成的excel表,看是否有红色标注的异常(一般在swap上有小的使用可以不管)。
查看log,获得相关的日志信息。
注意:exe巡检的*.cmd和host.info文件存放在dist/host文件夹中。
作者信息
昵称:HH
QQ:275258836
感觉本文内容不错,读后有收获?