nagios 整合 ganglia 设置邮件、短信报警

要学的东西还有很多呢,慢慢来~!

 

环境:

操作系统:ubuntu 10.10

软件:ganglia-monitor 3.1.7-1,gmetad 3.7.1-1,nagios 3.2.1-2

 

步骤:

1.下载安装nagios:
sudo apt-get install nagios3 nagios-plugins
  输入要发送报告的邮箱
  输入密码(用户名默认为:nagiosadmin)


2.把nagios的http文件链接到apache所在目录,并重启apache
sudo ln -s /usr/share/nagios3/htdocs /var/www/nagios
sudo service apache2 restart
现在,就可以通过http://localhost/nagios来访问nagios了,查看service的时候会要求输入用户名和密码,就是之前设置的

3.下载插件脚本

1)check_ganglia.py 试验发现只适合单播、单个数据源的
去http://ganglia.sourceforge.net/downloads.php?component=ganglia-webfrontend&version=3.1.7下载ganglia的源文件

解压后在contrib目录中找到check_ganglia.py并复制到/usr/lib/nagios/plugins/目录(该目录在/etc/nagios3/resource.cfg脚本中被定义为USER1)
这个python脚本是通过ganglia收集到的数据发出不同等级的警报,nagios显示这些警报信息或者根据设置通过邮件、短信发送警报信息给指定用户

2)check_ganglia_metric.php 这个好像是最原生态的,都适合

下载地址:http://vuksan.com/linux/ganglia/check_ganglia_metric.phps
这是check_ganglia的php脚本,直接调用gmetad取得的信息,因此可以获得other clusters and Grids的信息。把它复制到$USER1$目录下。

调用方法:check_ganglia_metric.php hostName metric_name less|more value


4.在/etc/nagios3/conf.d添加一个名为ganglia-services.cfg的配置文件,添加如下设置:
#定义servicegroup方便host使用多个service
define servicegroup {
  servicegroup_name ganglia-metrics
  alias Ganglia Metrics
}

#定义host,address似乎可以不用,因为check_ganglia.py脚本只通过host_name就可获取数据
#host_name可以从ganglia中看到
define host{
  use       generic-host   ; Name of host template to use
  host_name   Just_Test
  alias       test-host
}

#定义hostgroup,members中可以指定属于该组的成员,定义service的时候可以指定只有某组才能使用该service
define hostgroup {
  hostgroup_name    my-host-servers
  alias           test-group
  members        *   ;可以指定多个host属于当前组,用逗号分隔
}


#定义check_ganglia.py的command,执行检测脚本
#define command {
#  command_name  check_ganglia
#  command_line   $USER1$/check_ganglia.py -h $HOSTNAME$ -m $ARG1$ -w $ARG2$ -c $ARG3$
#}

 

#定义command,执行check_ganglia_metric.php检测脚本
define command{
  command_name   check_ganglia
  command_line    $USER1$/check_ganglia_metric.php $HOSTNAME$ $ARG1$ $ARG2$ $ARG3$
}

#定义一个service集合,共享配置(似乎是这个意思)
define service {
  use           generic-service
  name          ganglia-service
  hostgroup_name    my-host-servers  ;定义那个组需要当前服务
  service_groups     ganglia-metrics
  notifications_enabled   1          ;是否发送通知,1为发送,0为不发送
}

#定义具体service,check_command中的值:首先是command名,然后是用!分隔的参数,分别对应$ARG1$,$ARG2$。。。

#check_ganglia.py的检测命令
define service {
  use           ganglia-service
  service_description   load_one             ;服务名称
  check_command     check_ganglia!load_one!4!5  ;调用之前定义的command
}

#check_ganglia_metric.php的检测命令
define service {
  use           ganglia-service
  service_description   内存空闲
  check_command    check_ganglia!mem_free!less!10240
}
#发送邮件的command
define command {
  command_name   notify-by-email
  command_line    /usr/bin/printf "%b" "***** Nagios 3.2.1*****\nNotification Type: $NOTIFICATIONTYPE$\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nDate/Time: $LONGDATETIME$\nAdditionalInfo: $SERVICEOUTPUT$" | /usr/local/bin/sendEmail -f sender@qq.com -t $CONTACTEMAIL$ -s smtp.qq.com -u "**$NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is  $SERVICESTATE$ **" -xu sender@qq.com -xp password
}


5.修改contacts_nagios2.cfg
修改被通知的Email以及xx_notification_commands:

service_notification_commands notify-by-email
host_notification_commands notify-by-email
email 138xxxxxxxx@139.com

使用139的邮箱,让接收短信的人去139邮箱那开通下短信通知(同时设置长短信打开),这样就可以免费接到报警短信了。之前配飞信的时候遇到太多问题,而且听说用飞信还要验证码,只好转139邮箱了,似乎163也有邮件到达通知。


6.安装sendEmail,发邮件通知(可以直接复制已经安装的程序/usr/local/bin/sendEmail):
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.55.tar.gz
tar -zxvf sendEmail-v1.55.tar.gz
cd sendEmail-v1.55
cp sendEmail /usr/local/bin
chmod 0755 /usr/local/bin/sendEmail
测试sendEmail(我试的时候,只有qqmail能发送成功,163、sina什么的都不行,不知道为什么):

sendEmail -f sender@qq.com -t receiver@qq.com -s smtp.qq.com -u "test" -xu sender@qq.com -xp your-password -m "hello world!"

-f表示发送者的邮箱
-t表示接收者的邮箱
-s表示SMTP服务器的域名或者ip
-u表示邮件的主题
-xu表示SMTP验证的用户名
-xp表示SMTP验证的密码
-m表示邮件的内容

 

*结束语

至此,已经能通过nagios收到报警信息了,间歇性地花了一周事件才搞定。。慢慢来吧

转载于:https://www.cnblogs.com/Nstd/archive/2012/11/08/2760180.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值