Python日常巡检程序(daily-check)

HH python1140,87654字数 2048阅读6分49秒阅读模式

前言

在公司对于运维人员来说,巡检是日常例行的一件事。刚刚开始服务器少,每次都是手动登录到服务器上做检查。可是服务器一多了,肯定是不能这样干的。因此我们就需要做一些比较自动化的行为。

程序说明

程序是通过使用python实现ssh连接到服务器去实行shell脚本,返回数据,并且生成excel,对不正常指标进行标红处理。文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

Python要实现ssh连接服务器还需要其他模块。文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

软件/模块 版本 其他
python 2.7.9
paramiko 1.15.2
xlwt 1.0.0

本程序在win7 64bit使用是没有问题的(本人用的就是win7 64bit   :)  )文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

这边为了方便我提供了两个版本:文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

  • python源码版:daily_check_py.zip
  • 由于有些人在机器上没有安装python,所以这里我提供了一个将python转化为exe的版本。只要点击exe执行文件就能执行相关程序了:daily_check_exe.zip

程序流程

daily check

python自动巡检 - 01

程序结构与程序说明

此程序由主程序、主机信息文件、命令文件三个文件组成。文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

`-- daily_check.py <--此文件是python的主程序
`-- 日期-xunjian.txt <--生成的巡检信息文件
`-- check.log <--日志文件
|-- hosts <--存放着要执行那些命令和检查那些主机的文件
|     `-- host.info <--存放着需要巡检的主机IP和用户名密码
|     `-- xx.xx.xx.xx.cmd <--存放相关主机需要执行的命令

执行了daily_check.py生成了xunjian.txt文件,我们需要将文件的内容都拷贝到一个excel文件中查看。并标出相关的预警的信息。如下:文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

daily check

python自动巡检 - 02

上图显示了5列:文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

  • 项目:检查了什么。
  • 命令:检查使用的命令。
  • 基线:比对的标准。
  • 巡检情况:检查出来的信息。
  • 主机:是在那台主机上检查的。

相关文件解释

这边就不说主程序文件了,有兴趣的可以自己去看。当然欢迎大家给出相关意见。文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

  • *.cmd文件

此文件存放了巡检需要执行的命令、校验标准和命令是检查什么项目的,如下图:文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

daily check

python自动巡检 - 03

以上文件的每一行分为3个部分:文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

  • 校验项目。
  • 校验shell命令。
  • 校验标准:校验标准指定一个操作符号(>、<、=),具体用途例如:<85% 如果检查出来的结果 >85%就超标了。

以上三个部分是使用 “#” 分割(注意:请在命令中避免使用 “#”,以免出现程序分割错误)。文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

host.info文件

此文件中存放了需要巡检的主机的IP和用户名信息,它们使用空格分开,如果有不需要巡检的主机可以在里面使用 (#) 在注释,和shell脚本的注释是一样的。如图:文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

daily check

python自动巡检 - 04

如果有行的服务器需要巡检,需要添加相关 主机 信息到此文件中。文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

执行巡检

  1. python程序巡检
  • 需要接入生产环境,确保能使用相关用户访问相关服务器。
  • 解压zip 文件。
  • 运行py执行日常巡检。
daily check

python自动巡检 - 05

  • 查看生成的excel表,看是否有红色标注的异常(一般在swap上有小的使用可以不管)。
  • 查看log,获得相关的日志信息。
  1. exe程序巡检
  • 1、需要接入生产环境,确保能使用相关用户访问相关服务器。
  • 2、解压zip。
  • 进入到dist文件夹。
daily check

python自动巡检 - 06

  • 找到exe执行巡检。(注意执行完巡检相关的巡检excel和check.log存储在dist文件夹中。)
daily check

python自动巡检 - 07

  • 查看生成的excel表,看是否有红色标注的异常(一般在swap上有小的使用可以不管)。
  • 查看log,获得相关的日志信息。

注意:exe巡检的*.cmd和host.info文件存放在dist/host文件夹中。文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

 作者信息

昵称:HH文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

QQ:275258836文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

感觉本文内容不错,读后有收获?文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

逛逛衣服店,鼓励作者写出更好文章。文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/ 文章源自运维生存时间-https://www.ttlsa.com/python/python-daily-check/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
HH
  • 本文由 发表于 16/01/2016 01:00:21
  • 转载请务必保留本文链接:https://www.ttlsa.com/python/python-daily-check/
  • daily check
  • daily_check
  • 自动巡检
评论  11  访客  11
    • 报错网
      报错网 1

      报错网(http://www.51baocuo.com)。致力于提升互联网产品用户体验。

      • longdechuanren517
        longdechuanren517 4

        想请问下作者为什么加入到计划任务当中没有执行该脚本

        • SeanLook
          SeanLook 1

          服务器不都应该有监控告警吗,这等你巡检早挂了

            • chen_hao
              chen_hao

              @ SeanLook 在公司每天都需要系统的健康报告的

            • chen_hao
              chen_hao

              有人用了说在数字比较的时候有一些bug我看了一下的确存在这些问题,修改和只检查整数部分。修正后发到云盘了:https://yunpan.cn/crBCVwcJPkeAm 访问密码 0db1

              • ttlsa粉丝
                ttlsa粉丝 9

                cool

                • Alex
                  Alex 9

                  东西很赞

                  • qzuser
                    qzuser 9

                    这个脚本不错。。感谢分享。检查的功能在多点就更好了。

                      • chen_hao
                        chen_hao

                        @ qzuser (*^__^*) 嘻嘻……
                        可以自己添加shell命令到相关的文件中,就行了

                      • amethyst668
                        amethyst668 0

                        谢谢作者的分享,我在尝试用python运行daily_check_py.zip中的daily_check.py时,报了缺少paramiko和xlwt模块,其中作者也提到了需要这两个模块,只是没有把这两个模块的包添加进去,相信各位大牛都知道怎么解决。对于我这个菜鸟花了很长时间才搞定,为了方便有需要这两个模块的朋友,我把相关文件刚到百度云上,地址为:http://pan.baidu.com/s/1pK64O3p 最后,要说的是感觉这个项目挺棒的,大家还可以在上面做许多拓展。

                          • chen_hao
                            chen_hao

                            @ amethyst668 谢谢你的分享,这样方便了大家

                        评论已关闭!