存档

文章标签 ‘插件’

python插件做nagios发报警邮件<二>

2010年12月21日 eric 没有评论

接上文 python插件做nagios发报警邮件 http://www.nginxs.com/linux/371.html,由于python 传入的参数,python 会自动加 \ ,经过代码测试,代码如下:

nagios $> cat test.py
#!/usr/bin/python
import sys

str = sys.argv[1]
str = repr(str)
print str
nagios $> python test.py “aaaa\nfffff”
‘aaaa\\nfffff’

测试过很多方法,都不行,最后用了最笨的的方法就是读文件!就稍微改动了一下上文脚本

分类: nagios 标签: , ,

python插件做nagios发报警邮件

2010年12月17日 eric 2 条评论

Ps: 完美的解决了python传入参数带有回车换行符,不换行问题。修改本文时间:2010年12月21号,脚本有变动·nagios commands.cfg无需修改·用了此版本·就解决了不用去读文本方式。

安装好nagios后,一直利用nagios服务器上的sendmail服务器去发邮件,修改配置文件可以伪造别的邮件地址发邮件,但是一直会被邮局视为垃圾邮件,我把email地址加在了QQ上,好处是一来邮件QQ右下角会弹提示。工作时间会第一时间知道服务器出状况(手机短信暂时不提),但是如果是垃圾邮件,QQ不会提醒的,当然可以在QQ邮箱把其添加为信任邮局,可以避免。我就不那么浪费时间了。自己写一个发邮件的插件来替换掉本机的sendmail服务,可以为服务器节省资源,大家也知道启动sendmail服务稍稍费点时间,如果主机名没有设置好的话sendmail服务会启动很久才能起来的哦。废话不多说了,发源代码。

nagios $> cat /usr/local/nagios/libexec/sendmail
#!/usr/bin/python
import smtplib
import string
import sys
import getopt

def usage():
   print """sendmail is a send mail Plugins
   Usage:

   sendmail [-h|--help][-t|--to][-s|--subject][-m|--message]

   Options:
          --help|-h)
                 print sendmail help.
          --to|-t)
                 Sets sendmail to email.
          --subject|-s)
                  Sets the mail subject.
          --message|-m)
                  Sets the mail body
    Example:
           only one to email  user
          ./sendmail -t 'eric@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!
           many to email  user
          ./sendmail -t 'eric@nginxs.com,yangzi@nginxs.com,zhangsan@nginxs.com' -s 'hello eric' -m 'hello eric,this is sendmail test!"""
   sys.exit(3)

try:
   options,args = getopt.getopt(sys.argv[1:],"ht:s:m:","--help --to= --subject= --message=")
except getopt.GetoptError:
   usage()
for name,value in options:
    if name in ("-h","--help"):
       usage()
    if name in ("-t","--to"):
# accept message user
       TO = value
       TO = TO.split(",")
    if name in ("-s","--title"):
       SUBJECT = value
    if name in ("-m","--message"):
       MESSAGE = value
       MESSAGE = MESSAGE.split('\\n')        #以‘\n’字符切割字符串,分割后的字符串python就不会在加\
       MESSAGE = '\n'.join(MESSAGE)          #在每个字符串后加 '\n' 字符,这样python 就会认为字符'\n'是换行符
分类: nagios 标签: , ,

nagios监控带宽插件更新

2010年12月8日 eric 5 条评论

以前写的一个nagios 监控带宽的插件,今天看了下有个小BUG,看代码 BS=”`cat wget-log |tail -n20 |awk ‘{print $8}’|sed ‘s/K//’|awk ‘{sum+=$1};END{print sum}’`” speed=`echo $BS / 19|bc` 我是统计20行数据,在我算平均值的时候是除以了19,是按19行算的,因为最后一行90%数据是不完整,没有统计到下载速度,所以我是按19行来算的,但是考虑到也有10%的可能有数据,这样按照19行来统计平均值会不准确。所以加一条管道更新了一下脚本: #!/bin/bash PROGNAME=`basename $0` VERSION=”Version 1.1″ AUTHOR=”2010.11.17,www.nginxs.com” ST_OK=0 ST_WR=1 ST_CR=2 ST_UK=3 interval=5 url=”http://mirrors.163.com/centos/5.5/isos/x86_64/CentOS-5.5-x86_64-LiveCD.iso” print_version() { echo “$VERSION $AUTHOR” } print_help() { print_version $PROGNAME $VERSION echo “$PROGNAME is a Nagios plugin to monitor download speed” echo “Use of wget download [...]

分类: nagios 标签: , ,

check_nginx pnp4nagios 模版

2010年11月25日 eric 2 条评论

首先不好意思,最近几天由于公司极个人的有点忙,所以就没有及时做check_nginx的模版,今天闲下来,把PNP模版做出来了,感官上还好,由于我把 serveraccepts 、handled、requests 都做到了 PNP模版里,可能他们的图会占用的图比较多,如果你只想把 ActiveConn、reading、writing、waiting 图绘出来,可以把 serveraccepts 、handled、requests 注视掉。

1.首先添加check_nginx.sh 监控

nginx $> wget www.nginxs.com/download/check_nginx.sh

nginx $> mv check_nginx.sh /usr/local/nagios/libexec/

nginx $> vim /usr/local/nagios/etc/objects

nginx $> vim commands.cfg
#  添加:

define command{
        command_name check_nginx
        command_line $USER1$/check_nginx.sh -u $ARG1$ -p $ARG2$ -w $ARG3$ -c $ARG4$
}
分类: linux, nagios 标签: ,

nagios监控nginx status

2010年11月22日 eric 1 条评论

网上已经有nagios 的 nginx的脚本了,有通过本地拿数据通过check_nrpe 传输给nagios的,也有pl写的通过get status 页面来获得数据的。 我自己也做了个。通过wget nginx status页面,来拆分数据·来实现报警功能的。至于出图,暂时还没有做测试。稍后会把出图数据以及pnp模版发布上来。 脚本如下: nginx $> cat check_nginx.sh #!/bin/bash PROGNAME=`basename $0` VERSION=”Version 1.0″ AUTHOR=”2010.11.18-www.nginxs.com” ST_OK=0 ST_WR=1 ST_CR=2 ST_UK=3 print_version() {         echo “$VERSION $AUTHOR” } print_help() {         print_version $PROGNAME  $VERSION         echo “$PROGNAME is a Nagios plugin to monitor nginx status”         echo “Use of wget nginxstatus page” [...]

分类: linux 标签: ,