Tanky WooRSS

关于写Nagios邮件插件的感触

29 Mar 2013
这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。

最近写了个Nagios的邮件报警插件,思想上是参考《Nagios Extended Notification Mail

写这个插件的过程,感触还是挺深的

上面那篇文章,是用PHP写的,代码还是比较简单,主要就是利用Nagios传过来的环境变量,获取相应的值

最近一直在写Nagios的一些插件,也看过很多文档,其中有一篇是关于宏变量的介绍

有些宏也查过这篇文章,但是很多都没有去深入思考

比如插件是如何利用这些宏,为何插件的命令行参数可以利用到这些宏,这些都没有去思考

后来还是zx推荐我参考那篇文章,读了那篇文章的代码后,才想到利用环境变量传过来

另外,Nagios设计确实考虑的周全,传过来的环境变量都是以NAGIOS_开头的,这样直接筛选就可以得到

然后为了完成这个插件,上周周末两天专门全天去公司加班。不过当时忘了还有官方的那个宏变量的文章,我是直接输出所有的Nagios环境变量,然后看看有哪些变量,然后才想起来去官方查那些的含义,不过大部分都是根据变量名及结果值来直接筛选出有用的。不过刚写出来的代码,为了快速推进,有很多重复的代码。

周一和zx交流后,zx让我再把这些环境变量分类以下,于是我根据变量的大致用途,初步分类。等分完后,清醒了,发现宏变量那篇都已经把各个变量分类好了,而我当时居然没有看到,只是简单的当一个API手册,Ctrl+F去搜索,这样就浪费了很多无用功,当时到脑海里就浮现出一个词:RTFM

后来zx来确认每个宏的含义和作用,一共有190个左右,他当时就对着文档一个个的看,这个让我太佩服了。一直知道zx是个抠细节的人,这个就完全能体现,了解一个事物,就去看它的每一个部分。

等确定完要使用的环境变量后,就开始帮我重构代码,等重构完后,再一看,这差距就体现出来了,凌乱的代码变得条理分明。且把我先前准备优化的那个重复代码都已经优化了。

报警邮件这块在前几天基本完成了,也确实比以前舒服多了,这个代码也写了几天,中间确实收获也比较多

`1.  `RTFM`。这个太重要了,很多时候,看到文档,会发现自己需要的官方都已经提供了。
2.  `细节`。认真的对待每一个细节,不能以"我认为"的态度去做事
3.  `深究`。很多东西,不能停于表面,要多思考
`