freebsd下部署nagios实现短信监控
基本实现思路如下:
nagios->ssmtp邮件->139mail->手机客户端
下面把配置过程说一下,多说一句,网上的很多文章都非常之扯蛋,我的不是现场记录,而是装完了以后整理的,可能有部分步骤遗漏,但写出来的肯定都是正确的
首先你可以cvsup一下你的port tree,然后安装nagios
cd /usr/ports/net-mgmt/nagios
make install clean
安装完成以后
vi /etc/rc.conf
加入下面一行
nagios_enable=”YES”
到此nagios安装结束,下面开始配置nagios
cd /usr/local/etc/nagios
把里面的那些cfg.sample都cp成cfg
然后
vi localhost.cfg
首先修改contacts部分的email,改成你自己的邮箱就行了
然后基本就是添加自己要监控的主机,这个网上的文章非常有意思,我不知道为什么简单的东西要搞那么复杂,放在一个cfg里面用查找不是很方便么,其实只要cp我下面的内容
define host{
use generic-host
host_name paranoid
alias Being Watched
address 10.0.0.7
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24×7
notification_options d,r
contact_groups admins
}
define service{
use generic-service
host_name paranoid
service_description PING
is_volatile 0
check_period 24×7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_interval 960
notification_period 24×7
check_command check_ping!100.0,20%!500.0,60%
}
上面的host配置和service都用了generic,足够用了,方法是ping host,最大重试4次,如果超出就报警,如果你喜欢自己定义service,看文档吧,其实上面的generic-service里面定义的很清楚,可以自己看文档
到这个地方你可以nagios -v加上你的配置路径看一下你的配置有没有问题,如果没有问题的话就开始配置apache,我一开始用zeus,未果,开了cgi zeus不知道怎么就死了,囧,后来还是用的apache22,你也可以用lighttpd,差不多的,我在VM里面搞过,要修改某个地方的/usr/bin/sh,这里我只说apache
cd /usr/ports/www/apache22
make install clean
cd /usr/local/etc/apache22
vi httpd.conf
修改里面的端口号,然后加上
# Nagios
ScriptAlias /nagios/cgi-bin /usr/local//nagios/cgi-bin
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
Alias /nagios /usr/local/www/nagios
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
这里是给nagios配置虚拟路径,同时加上简单认证
下面创建认证文件
vi /usr/local/www/nagios/cgi-bin/.htaccess
内容为
AuthName “Nagios Access”
AuthType Basic
AuthUserFile /usr/local/etc/nagios/htpasswd.users
require valid-user
然后
htpasswd -c /usr/local/etc/nagios/htpasswd.users admin
输入你的密码然后回车(两次)
到此你可以在浏览器里面测试一下看看你的nagios有没有正常的运行,理论上应该是没啥错误的啦
下面开始配置ssmtp,ssmtp的作用是把原来本机的sendmail请求都转发到外部的smtp服务器上去,支持gmail喔,这里我就用gmail
首先安装ssmtp
cd /usr/ports/mail/ssmtp
make install clean
然后
vi /usr/local/etc/ssmtp/ssmtp.conf
root=sideblue
mailhub=smtp.gmail.com:587
rewriteDomain=gmail.com
hostname=
UseSTARTTLS=YES
AuthUser=sideblue
AuthPass=passwd
FromLineOverride=YES
注意上面的一段里面的sideblue是我自己的名字,你应该换成你自己的
然后
vi /usr/local/etc/ssmtp/revaliases
root:sideblue@gmail.com:smtp.gmail.com:587
user:sideblue@gmail.com:smtp.gmail.com:587
下面你可以在nagios上配置一个不存在的主机(产生警告,让nagios测试email报警),看一下maillog,看看有没有类似
Jun 4 13:00:00 portrans sSMTP[7694]: Creating SSL connection to host
Jun 4 13:00:03 portrans sSMTP[7694]: SSL connection using RC4-MD5
Jun 4 13:00:12 portrans sSMTP[7694]: Sent mail for operator@gmail.com (221 2.0.0 closing connection 28sm1392065wfd.23)
这样的请求,如果有邮件就发出去了,看看邮件收到没有就行了,如果有问题请留言
最新评论