调用微信接口进行运维报警

说到运维报警,我觉得都可以写个长篇历史来详细解释了报警的前世来生,比如最早报警都是用邮件,但邮件实时性不高,比如下班回家总不能人一直盯着邮箱吧,所以邮件这种报警方式不适合用来报紧急的故障,日常磁盘利用率监控什么的可以用它来报没问题,网站宕机不能访问这种故障,用它就明显不合适了,那对这种业务稳定性要求比较高的业务,后来就发展成了用短信,就是公司买个短信机,提供一个http接口,然后运维人员写脚本把收集到的异常数据写入文件,然后脚本实时检测如果这个文件不为空,就调用短信机接口把文件里的内容发送出去,这种短信的报警方式持续了几年,现在转眼到了移动端时代,随着微信的横空出世,这种短信的方式现在也在慢慢[……]

继续阅读

request模块报ssl connections to fail

今天在用request模块连接微信企业号接口时,运行报如下错误:

request appropriately and may cause certain ssl connections to fail.

最后用2条命令解决:

yum install python-devel libffi-devel openssl-devel
pip install pyopenssl ndg-httpsclient pyasn1

安装完好后会有仍会有如下警告:

/usr/lib64/python2.6/site-packages/cryptography/__init__.p[……]

继续阅读

python配置文件操作

在我们写一个功能性的python脚本时,有时需要读取一个配置文件,这个配置文件可以给用户自定义修改,以实现程序的最大灵活性,谈到配置文件的修改,这对我们运维人员来说都应该不陌生,不管你维护的是web站点还是游戏项目或其它,运维的工作估计很大部分是内容就是通过修改配置文件来完成的,如果任何修改都要改代码去编译,那估计也没什么可运维性的了,当然回到运维的工作,我们日常写的维护脚本一般涉及不到特别复杂的配置文件读取,但这种读取配置的方式我认为是必须要学会的,所以今天我们就来学习下如何用 python实现读取配置文件,python要读取配置文件这里要用到ConfigParser模块,我们先来看看它的基[……]

继续阅读

python文件遍历

在linux系统下遍历文件不算是新鲜功能,如果给出一个目录,要根据这个目录的结构去做某些操作,这个就要到遍历了,谈到遍历就不能不说递归,因为遍历是递归的典型应用场景,那什么是递归?其实递归就是定义的函数又调用了自己,比如列出指定目录下的所有文件,如果这个目录下除了文件还有目录,就就需要再进入这个子目录里,依次类推直到没有目录了结束,递归比较抽象,我们直接上例子说明:

这就是一个简单的列子,例子中如果变量pf是目录,就再调用Rec函数,如果不是就直接打印出目录和文件内容。

如果以上的例子比较难理解,那大家也不用担心,谁让[……]

继续阅读

公有云会淘汰那些运维职业?

在现在,公有云的发展,绝对不容我们每个运维人忽视,它带给我们运维人翻身便利的同时,也对我们运维的某些岗位带来了冲击,以下以我个人理解随着公有云的发展那些岗位会被影响:

第一,IDC基础运维岗位,就是负责在公司安装机器、上架插线的岗位,会被逐渐替换掉,因为IAAS,即基础实施即服务,公有云现在基本都在做的这块,人家都把这块做出服务卖了,如果价格便宜,所以公司是在没必要自己做这些毫无价值的内容了。

第二,网络工程师岗位,网络工程师一直以来市场需求就不高,那随着公有云的成熟,就更不要网络工程师的存在了,因为公有云都帮你实现好了,而且超出你的期望满足你的需求,所以这些岗位会慢慢缩减,但不会[……]

继续阅读

学习的道与术

很快又到周末了,今天我们来谈一个学习的问题,来说说学习中的道与术,随着每个人的年龄的增长,我们总会发现身边的一些小伙伴进步飞速,才几年不见,发现要么当上了O,要么当上了技术大牛,自己也突突过了几年为啥还是小屌丝一枚呢,可能就要思考了,“你妹,科学家不是说人跟人的的大脑差别很小么,为什么现实差距这么大呢?”,这就引出了我们今天要说的话题,关于学习你必须要懂的道理,我觉得懂的越早的人越容易成功,当然这里我还是讲以普通人的智商来谈,那些大神级的歪果仁不在我讨论的范围之内,其实这地球上出几个牛逼人也正常,要不这世界还怎么发展,还iphone6,估计连电话都不知道是什么,那回头来说我们的问题:

那[……]

继续阅读

nginx+uwsgi+django环境搭建(最新)

前天在一个python技术开发群里大家都在聊django开发相关内容时,突然有一个哥们蹦出来一句,谁能帮我搭建一个线上的django环境,对于这种问题,一般本能的感觉是不难,网上肯定一堆资料,照着敲就可以了,所以很多人直接回复的是,上网上查,结果这哥们来一句,自己都快被网上的资料整崩溃了,看了几十篇没一个能按着步骤搭建完成的,所以跑开发群里来求救来了,我看到后也上网大概搜了下,想看到合适的就发给这位兄台,但我看了几个文章后,非常失望,决定还是自己写一篇吧,网上的内容第一同质化内容太严重,基本你看一篇其它都不用看了,基本都一样,另外最最主要的是文章内容没有价值,因为10篇有9篇都是很久以前的文章[……]

继续阅读

python实现txt转xls

前天看到后台有一兄弟发消息说目前自己有很多txt 文件,领导要转成xls文件,问用python怎么实现,我在后台简单回复了下,其实完成这个需求方法有很多,因为具体的txt格式不清楚,当然如果是有明确分隔符的会更好处理些,可以直接把txt文件转成csv文件,这样可以用excel打开后就是表格的样式了,如果直接要转成xls,那就需要用到python的读写excle文件的模块,具体实现如下

其中比较有意思的是zip函数的使用,zip(*row_list),具体什么意思呢,还是看下面一个例子吧:
[crayon-68711321c[……]

继续阅读

如何给脚本写一个守护进程?

在我们日常运维中,写脚本监控一个进程是比较常见的操作,比如我要监控mysql进程是否消失,如果消失就重启mysql,用下面这段代码就可以实现:

本篇这是以mysql为例子,但实际中如果是监控的脚本出了问题,报警没发出来,那就比较尴尬了,所以为保证我们的检查脚本能实时运行,我们需要一个进程来守护这个脚本,这就是我们今天要说的主题,如何给脚本写一个daemon,我们先上代码:

 

脚本比较简单,没什么特别的逻辑,关于daemon这个模块如何使用[……]

继续阅读

python获得系统iops

iops概念主要用在数据方面,这个指标是数据库性能评定的一个重要参考,iops的是每秒进行读写(I/O)操作的次数,主要看随机访问的性能,一般为了iops增高都要依靠磁盘阵列,实际线上的数据库基本都是raid10的配置,raid5在实际生产环境中如果压力上来是抗不住的,当然也要开具体业务压力情况,如果是用物理机就要看iops在实际中能跑到多少值,现在云也普遍了,如果你用的RDS云数据库,这个iops是可以根据业务情况自己选择的,基本是个参数,可以按需进行修改,当然数值越大费用越高,今天主要是用python通过系统数据来获取磁盘的iops,便于监控使用情况,代码如下:
[crayon-6871[……]

继续阅读