Centos下安装配置nagios
Centos下安装配置nagios
一、安装前准备
1、安装nagios前需要的软件
yum -y install gcc make httpd php gd automake autoconf libtool php-mysql mysql-devel
2、创建相应的用户和组
useradd nagios
groupadd nagcmd
usermod -G nagcmd nagios
usermod -G nagcmd apache
二、安装nagios及插件
1、可以在线下载,也可以上官网找。(当然机器要保证能通网)
Wget
https://www.360docs.net/doc/498142434.html,/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz https://www.360docs.net/doc/498142434.html,/projects/nagios-cn/files/sourcecode/zh_CN%203.2.3/nagios-cn-3.2.
3.tar.bz2/download(这里的是个中文版)
2、开始安装nagios主程序
解压tar -jxvf nagios-cn-3.2.3.tar.bz2
先创建个目录mkdir -p /usr/local/nagios/
退到解压下的目录cd nagios-cn-3.2.3
进行安装到指定的目录下
./configure --with-command-group=nagcmd --prefix=/usr/local/nagios/
然后执行以下命令进行编译安装
make all 这步如果出现下面的错误,执行下make clean 再重新编译下。
make install
make install-init
make install-commandmode
make install-config
make install-webconf
3、接下来安装插件
先解压tar -zxvf nagios-plugins-1.4.15.tar.gz
退到该目录cd nagios-plugins-1.4.15
安装./configure
编译make && make install
4、添加web页面用户及密码,这里使用默认用户nagiosadmin
htpasswd -c /usr/local/nagios/etc/https://www.360docs.net/doc/498142434.html,ers nagiosadmin
5、安装到这里已经基本完成了,接下来启动相关服务
/etc/init.d/nagios start 启动nagios服务
/etc/init.d/httpd start 启动apache服务
注意在启动服务之前,我们先用以下命令检测下配置文件是否正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
6、关闭防火墙和selinux
/etc/init.d/iptables stop
setenforce 0
7、输入http://[IP]/nagios 就可以访问了。
二、配置主文件
添加主机监控及邮件报警
1、退到该目录下cd /usr/local/nagios/etc/objects
该目录下就是各主机的对象及配置命令文件,这里我们要监控的主机使用的服务是check_ping命令,详细命令可以到libexec目录下查看
2、编辑主文件nagios.cfg,把本地监控注释掉
#cfg_file=/usr/local/nagios//etc/objects/localhost.cfg
再添加一个主机文件和服务文件
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
cfg_file=/usr/local/nagios/etc/objects/services.cfg
2、先定义联系人编辑contacts.cfg
define contact{
contact_name lishaolin
alias alin
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r #分别是警告、未知、严重、恢复状态
host_notification_options d,u,r #d是down的意思
service_notification_commands notify-service-by-email #服务以邮件方式通知
host_notification_commands notify-host-by-email #主机以邮件方式通知
email lishaolin@https://www.360docs.net/doc/498142434.html,
}
define contactgroup { //定义联系人组
contactgroup_name idcgz
alias idcgz group
members lishaolin /联系人成员
}
3、定义主机新建并编辑hosts.cfg
define host{
host_name test1 #主机名,该名要跟services.cfg中的相对应。
alias test #一个别名而已
address 192.168.1.102 #被监控主机地址
check_command check-host-alive #使用的命令监控主机存活
check_interval 1 #检查的时间间隔为1分钟
retry_interval 1 #主机宕机时重试时间
max_check_attempts 3 #最大尝试次数,3次之后确认为宕机
check_period 24x7 #检查的时间段为7x24
contact_groups idcgz #报警通知联系组
notification_interval 10 #提醒的时间间隔为10分钟
notification_period 24x7 #提醒的时间段
notification_options d,u,r #提醒选项
}
define hostgroup {
hostgroup_name testgroup#主机组名
alias testabc#别名意义不大
members test1 #这里要跟你的前面定义的主机名对应,可以添加多个成员,前面加个逗号。
}
这里我们只添加2台主机1个主机组来测试
4、接着定义服务新建编辑services.cfg
define service {
hostgroup_name testgroup #主机组名,hosts.cfg中定义的
service_description PING #服务描述
check_period 24x7 #检查的时间段
max_check_attempts 3
normal_check_interval 3 #正常下3分钟检测一次
retry_check_interval 2
contact_groups idcgz #报警通知联系人组
notification_interval 10
notification_period 24x7
notification_options w,u,c,r #在这四种情况下,通知联系人。
check_command check_ping!200.0,20%!600.0,60% #检查的命令看下面注释
}
解释:check_ping!200.0,20%!600.0,60%
意思就是定义一条条件是RTA大于600ms或丢包率大于60%,服务就处于紧急状态(critical)、RTA大于200ms或丢包率大于20%处于警告状态(warning)
小于200ms或小于20%处于正常(OK)状态。这里使用的是check_ping命令服务,你也可以使用其他服务,具体退到/usr/local/nagios/libexec目录查看,例如执行./check_ping -h就可以查看具体的使用步骤了。
注意:定义主机必须要定义一个或一个以上的服务。
3、使用命令检测下命令是否出错
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
4、重启下nagios服务
/etc/init.d/nagios restart
5、访问主页就可以看到我们定义的主机和服务了
PS: 前面的主机和服务都是我自定义的,当然你也可以调用模板,在templates.cfg文件里面,当你想定义多个主机和服务时就不用复制一大推了,直接调用或修改templates.cfg文件里的主机模板和服务模板就行了。
三、添加邮箱报警
首先要查看下服务器上是否已安装了邮箱sendmail
安装yum -y install sendmail*
安装后还需要安装mail命令
执行yum -y install mailx (要注意这一步没装是导致无法报警的主要原因,很多文档都没写到这步,我研究了几个晚上才出来。)
启用服务/etc/init.d/sendmail start
测试下发送邮件
echo "test" | mail lishaolin@https://www.360docs.net/doc/498142434.html,
5、测试报警
因为前面我们已经定义了联系人和通知报警方式,所以这里就不做介绍。
我先干掉一台192.168.1.102的机器,再查看邮件报警
此时邮件已经报警是down机了(见下图),当你up时它又回你一份邮件,这里就不截图了。
6、限制nagios的报警次数
假如服务器出现问题但未能及时解决时,那么后果将让你十分抓狂,每5分钟给你发份邮件报警,那你的邮箱也就会被报警邮件塞满。所以我们要修改下它的报警次数
在/usr/local/nagios/etc/objects目录下创建一个escalations.cfg
加入:
define serviceescalation{
host_name test1 ;被监控主机名称,多个用逗号隔开
first_notification 2 ; 第n条信息起,改变频率间隔,这里我们设置只接
收2条信息就行了。
last_notification 0 ; 第n条信息起,恢复频率间隔
notification_interval 300 ; 通知间隔(单位:分)这里我们设置为5个小时后还
没解决问题,再发一次报警
contact_groups idcgz
}
define serviceescalation{
host_name test1 ;被监控主机名称,与前面一样
service_description PING ;被监控服务名称,这个和services.cfg里保持一致first_notification 2
last_notification 0
notification_interval 300
contact_groups idcgz
}
编辑下nagios.cfg文件
添加:
cfg_file=/usr/local/nagios/etc/objects/escalations.cfg
检查nagios配置文件是否正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
没有问题就重启nagios服务吧
service nagios restart
7、声音报警
vi /usr/local/nagios/etc/cgi.cfg 把下面的注释#号去掉
然后将声音文件放到/usr/local/nagios/share/media目录下,我们这里的版本没自带声音文件,所以需要去下载,自己上酷狗下载后转为wav格式重命名就行了。
8、飞信报警
上网下载linux版飞信机器人,可以到这里去下载。
https://www.360docs.net/doc/498142434.html,/viewthread.php?tid=1081&extra=page%3D1
还需要下载一些库文件https://www.360docs.net/doc/498142434.html,/fetion/linuxso_20101113.rar
之后把它放到/usr/local/fx目录下,更改下fetion文件的权限
执行chmod 777 fetion
chown nagios:nagcmd fetion
写入飞信目录位置
echo "/usr/local/fx/" >> /etc/ld.so.conf
再执行ldconfig
完了测试下发送飞信给好友
/usr/local/fx/fetion --mobile=134******** --pwd=xxxx --to=137******** --msg-utf8=test
第一次发送需要验证码,在本目录下会生成一个图片,把他导到window下查看再输入。
注意接收的对象得是你的飞信好友才行,还得是中国移动用户才行。
配置飞信报警参数
编辑command.cfg文件,加入下面两行。注意文字之间的空格。
完了检测下,没错误继续。
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
编辑联系人添加报警接收号码
vi contacts.cfg
因为这里我们使用的是调用generic-contact模板,所以我们要到templates.cfg下加入
最后重启下nagios,之后137********这个号码就能接收到主机服务的报警了。
总结:建议在配置nagios前,先了解各配置文件的用意及各配置文件之间的依赖关系,以及报警通知、方式等,这样会事半功倍。