IT技术学习之开发(五)

先声个明:
      我陆续写技术文章的目的可能是因为有点上瘾,而且最近几个月都在钻研技术。既然花费了大量精力来搞技术,那么把这个过程记录下来也很重要。技术大牛估计看不上眼,初学者可能也摸不着头脑,就是个个人学习成长血泪史,兴许可以替同路人铺个把个坑儿。

      下面继续挖坑儿......

      在搞后端的时候我就开始琢磨,如何把后端的数据传给前端web,按理说方法很多,起码传过去不应该算难事,但我一直没搞明白怎么让py文件和html文件相互结合。与此同时,我想到并在网上查到,Python有可以调用word的包。既然同事写的月报是word版的,我何不直接自动生成word报告呢。于是我愉快地暂时放弃网页版的报告。

      可以操作word的包也有好几个,我选的是python-docx。我不想在语法上花费过多的时间,所以需要使用什么都直接从网上查。重点在于,如何把数据导入word里。在这之前,先要理清脚本执行的逻辑。


      之前脚本的逻辑是执行最后一个脚本,它就会从getkey开始,然后是getGroups取出所有ID号和name,传递给getHosts,遍历所有组ID,得到所有主机ID,再继续传下去,直到得到所有数据,但这样区分不开属主属组。所以就要集中调用,让各层循环都在同一脚本里,然后穿插着都docx的语句,遍历一遍groups,就能生成各个客户的月报文档,遍历hosts就能在文档中列出该组下的所有主机,遍历items和trends,列出每个主机的监控项和值。

      做这个集中脚本时并没有完成就放弃了,因为python-docx的功能并不多,对于word的操作不够精细,连图表都没有。另外当时写代码的能力还非常弱(当然现在还是很弱),代码一多逻辑一复杂,思维就僵住了。我这次写文章又回过头把代码完善了下,但还是有很多不足,最后运行时还报了个错。


      我知道,有点长,长的我并不想做任何解释。。。解释都写在图里了,所以要耐心等它加载完。下面来看一下效果。先是模板,然后是结果。



      我只给大家看了示例,有的监控项也没有值。当我执行整个zabbix数据时,到第四个报告时报错退出了,但前面三个(包括我这个自制组)就用时10分钟,第三个报告有42页之多。下面是监控脚本运行时的数据。


      但我感觉这些数据还都比较垃圾,没啥价值。一个是,虽然导出了数据,但还未更好地加工处理,成为有用的数据,并根据数据做一些分析和建议就更好了,比如可以加上每月主机报警信息和次数,分析如何或从哪些方面对主机进行管理和调优。

      另一个是,从产品和客户的角度思考。客户其实不关心这个报告是脚本自动生成的,还是人工辛苦码上的。我一个月执行了一次脚本,还得邮件挨个发给客户,客户可能个把月才想起来看,数据又有些过时了。

      所以我又改回了原来的方向,以web的形式呈现给客户,我看到pyecharts这个包做出来的可视化数据很好看,而且它可以直接打到网页上。客户可以随时上网查看自己主机的信息,再往远说点可以做个手机APP,查询、报警、客服沟通统一在一起。。。当然低头一看,脚下还是一谈烂泥,不仅是呈现方式这块有大量的技术需要学习,处理数据上也深不可测,更何况这一路上的坑坑洼洼。

      借此回归一下到主线上。那些掌握了许多技术及知识的人,很多都在做为那些不懂这些的人服务的事,因为他们要从这些人那获取钱财,而如果得不到他们应有的,大多数的人也不知道自己的本事还能做什么。也就是他们只拿它当做糊口的工具,而不是拓展自己的手段,糊口的途径有很多,而提高自我乃至人类的思考和学习能力的方法可能就只有借助于科学和技术的发展了。我觉得从事科学和技术的人们应该成立个联盟,成为一种引领人类进步的力量。至少让这些人意识到,是科技带领着我们成为更优秀的人,而不是雇主们使用的工具,就像我们把它看做工具一样。

你可能感兴趣的:(IT技术学习之开发(五))