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前,先了解各配置文件的用意及各配置文件之间的依赖关系,以及报警通知、方式等,这样会事半功倍。

相关主题
相关文档
最新文档