监控开发之用munin来自定义插件监控redis和mongodb
求監(jiān)控組的大哥大妹子們干點(diǎn)事,真不容易 ! 要問(wèn)他們是誰(shuí)? ?他們是神 。輕易別找他們,因?yàn)檎伊艘彩前渍摇??
上次因?yàn)閜ython和redis長(zhǎng)時(shí)間brpop的時(shí)候,會(huì)有線(xiàn)程休眠掛起的情況,所有通知報(bào)警平臺(tái)被下線(xiàn)了。這次算是完美解決了。再把他給上線(xiàn)。這兩公司的告警已經(jīng)開(kāi)始往我這邊的接口開(kāi)始仍了。
這邊正在改zabbix cmdb的控制,所以暫時(shí)不能登錄。等搞好了后,讓他們搞下redis和mogodb的監(jiān)控,居然還讓我發(fā)郵件和提供腳本及思路啥的。。。 ? 一尋思,又要去zabbix,又要寫(xiě)腳本,還不如把監(jiān)控都集合在自己的平臺(tái)上的了。?
這次沒(méi)用選用鐘愛(ài)的ganglia,麻煩。 也沒(méi)用另一個(gè)graphite,而是用的是munin 。 ? 一個(gè)直接yum后就可以訪(fǎng)問(wèn)的性能監(jiān)控頁(yè)面。
官方的redis監(jiān)控和mongodb看起來(lái)很麻煩的樣子,算了。直接看他們是怎么寫(xiě)的。源碼是perl寫(xiě)的,插件好多是shell寫(xiě)的。?
寫(xiě)法是相當(dāng)?shù)暮?jiǎn)單,只需要指明下圖片的顯示Y X 軸 ,然后echo就可以了! ?
下面是redis 的token使用熱點(diǎn)數(shù)據(jù),隊(duì)列的數(shù)據(jù),及mongodb count的數(shù)據(jù)。
?
上面的圖數(shù)據(jù)沒(méi)有打滿(mǎn),今天在補(bǔ)上:
原文:http://rfyiamcool.blog.51cto.com/1030776/1426130
腳本的位置: ??/etc/munin/plugins
監(jiān)控mongodb的腳本:
原文:http://rfyiamcool.blog.51cto.com/1030776/1426130
監(jiān)控redis隊(duì)列的腳本:
寫(xiě)完了后,/etc/init.d/munin-node restart 就可以了。等一會(huì)刷新下頁(yè)面就出來(lái)了。
關(guān)鍵就是最后那兩行。。
echo?-n?"load.value?"redis-cli?LLEN?sendmaillist|cut?-d?''?-f2網(wǎng)上有人做了python的munin操作模塊,有興趣的朋友可以試試。
https://github.com/samuel/python-munin
#!/usr/bin/env?pythonimport?os from?munin?import?MuninPluginclass?LoadAVGPlugin(MuninPlugin):title?=?"Load?average"args?=?"--base?1000?-l?0"vlabel?=?"load"scale?=?Falsecategory?=?"system"@propertydef?fields(self):warning?=?os.environ.get('load_warn',?10)critical?=?os.environ.get('load_crit',?120)return?[("load",?dict(label?=?"load",info?=?'The?load?average?of?the?machine?describes?how?many?processes?are?in?the?run-queue?(scheduled?to?run?"immediately").',type?=?"GAUGE",min?=?"0",warning?=?str(warning),critical?=?str(critical)))]def?execute(self):if?os.path.exists("/proc/loadavg"):loadavg?=?open("/proc/loadavg",?"r").read().strip().split('?')else:from?subprocess?import?Popen,?PIPEoutput?=?Popen(["uptime"],?stdout=PIPE).communicate()[0]loadavg?=?output.rsplit(':',?1)[1].strip().split('?')[:3]return?dict(load=loadavg[1])if?__name__?==?"__main__":LoadAVGPlugin().run()原文:http://rfyiamcool.blog.51cto.com/1030776/1426130
總結(jié)下,munin真的夠簡(jiǎn)單的了,他的簡(jiǎn)單也意味著,他也就 適合我這樣的運(yùn)維研發(fā)人員臨時(shí)做些統(tǒng)計(jì)的場(chǎng)景。 ?記得以前使用munin,當(dāng)時(shí)做zeromq的統(tǒng)計(jì),超過(guò)幾十臺(tái)是沒(méi)啥問(wèn)題,當(dāng)然這話(huà)是(feihua),要是幾十臺(tái)都有問(wèn)題,那這監(jiān)控的水準(zhǔn)確實(shí)夠爛。 ?這東西的局限確實(shí)夠大。也就臨時(shí)畫(huà)畫(huà)圖還行。
轉(zhuǎn)載于:https://blog.51cto.com/rfyiamcool/1426130
總結(jié)
以上是生活随笔為你收集整理的监控开发之用munin来自定义插件监控redis和mongodb的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Delphi clientdataset
- 下一篇: 一道嚼烂的面试题