Nagios 企业综合高效监控平台

 

1.    安装nagios之前先把必要的环境准备好,这里面我们为了节省时间有些都用YUM装的。

安装c++编译环境
yum -y gcc-c++

yum -y install httpd gettext mysql mysql-server mysql-devel php php-mysql php-pear

 

Nagios 企业综合高效监控平台_监控平台

yum install php-mysql mysql perl mysql-server perl-DBI perl-DBD-MySQL httpd gcc glibc glibc-common gd gd-devel php

Nagios 企业综合高效监控平台_nagios_02

在线下载nagios程序和插件

wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz (现在最新版本的插件) 
wget 
http://sourceforge.net/projects/nagios-cn/files/sourcecode/zh_CN%203.2.3/nagios-cn-3.2.3.tar.bz2/download(最新版为3.4装上去觉得界面变得不好看,顺便就找了个中文版的)

Nagios 企业综合高效监控平台_其他_03

创建用户和组

Useradd nagios
passwd nagios      ….输入密码

Nagios 企业综合高效监控平台_nagios_04

安装nagios主程序
tar  –jxvf nagios-cn-3.2.3.tar.bz2 –C /usr/src/

Nagios 企业综合高效监控平台_其他_05

让后在make all会报错,

Nagios 企业综合高效监控平台_nagios_06

然后装上yum -y install gcc automake autoconf libtool make
先执行make clean操作,然后再执行 ./comfigure make all,
成功编译

Nagios 企业综合高效监控平台_nagios_07

然后依次执行

 

Nagios 企业综合高效监控平台_监控平台_08

接下来安装nagios插
 

Nagios 企业综合高效监控平台_监控平台_09

然后make && make install

Nagios 企业综合高效监控平台_nagios_10

添加访问页面用户nagiosadmin及密码,这个密码不要忘记了,一会登陆到nagios控制台需要用到。

Nagios 企业综合高效监控平台_其他_11

接下来启动httpd mysqld nagios服务,并设置开机启动

Nagios 企业综合高效监控平台_nagios_12

检查nagios配置文件是否正确
可以看到错误0个,警告0个,表示没有错误。

Nagios 企业综合高效监控平台_监控平台_13

如果是源代码安装的需修改apache配置文件,但是我们用yum装的apache已经生成过了,不用在添加。
vim /etc/httpd/conf.d/nagios.conf

Nagios 企业综合高效监控平台_nagios_14

 
然后关闭防火墙,如果不关闭防火墙就开放80端口

Nagios 企业综合高效监控平台_其他_15

下面我们在浏览器上登陆nagios控制台

Nagios 企业综合高效监控平台_监控平台_16

 
在apache日志中看到

Nagios 企业综合高效监控平台_其他_17

nagios的页面可以正常显示,看来是系统自带的apache的配置有问题.google之,网上的解释是apache启用了suexec的功能.对CGI的执行路径进行了限制.那么检查一下本机的apache是不是打开了suexec功能呢.

Nagios 企业综合高效监控平台_监控平台_18

看来是启用了suexec
运行suexec –V

Nagios 企业综合高效监控平台_其他_19

看来cgi程序只能在/var/www目录下执行.打开/var/log/httpd/suexec.log
command not in docroot (/usr/local/nagios/sbin/status.cgi)
因为我的nagios默认安装在/usr/local/nagios
所以这个cgi不允许被执行
解决办法.把nagios安装到/var/www/nagios就可以了
之前我尝试过编译nagios的时候指定--with-cgidir=/var/www/cgi-bin但是发现编译好的nnagiossbin依然在/usr/local/nagios目录下.
编译的时候指定--prefix=/var/www/nagios,其他编译安装的选项不变.

目录不能有写权限,修改如下:
chmod -R 755 /var/www/nagios/sbin

添加SuexecUserGroup nagios nagios

Vim /etc/httpd/conf.d/nagios.conf

Nagios 企业综合高效监控平台_监控平台_20

再次访问http://192.168.11.142/nagiosadmin,可以看到正常了

Nagios 企业综合高效监控平台_其他_21

Nagios 企业综合高效监控平台_其他_22

安装nrpe
解压文件Nagios 企业综合高效监控平台_监控平台_23
编译安装

Nagios 企业综合高效监控平台_nagios_24

接下来make && make install
完成以后没有出错就可以看到以下生成的文件了

Nagios 企业综合高效监控平台_nagios_25

二:配置PNP

[PNP是一个基于php和perl,用rrdtool将nagios采集的数据绘制图表的工具,所以安装pnp之前必须先安装php perl  and rrdtool这里用yum直接来安装rrdtool,单独下载安装有很多依存关系,挺麻烦.

Nagios 企业综合高效监控平台_nagios_26

Nagios 企业综合高效监控平台_nagios_27

编译安装

Nagios 企业综合高效监控平台_其他_28

 由一个警告 RRDs Perl Modules are not found

Nagios 企业综合高效监控平台_监控平台_29

解决方法: yum install rrdtool-perl

Nagios 企业综合高效监控平台_nagios_30

然后再 make all && make install
根据提示需要继续

Nagios 企业综合高效监控平台_其他_31

然后把相关后缀带sample文件变更成无sample后缀,如下需要修改

Nagios 企业综合高效监控平台_nagios_32

配置Nagios来启用PNP

Nagios 企业综合高效监控平台_监控平台_33

enable_environment_macros=1默认是开启了的
去掉host_perfdata前的#

Nagios 企业综合高效监控平台_监控平台_34

pnp4nagios有很多种工作模式,这里我们选用同步模式,想选其它模式可以看说明都有详细配置教程

先把pnp4nagios执行数据收集的文件拷贝到nagioslibexec下,方便统一命令的执行路径.
cp /var/www/pnp4nagios/libexec/process_perfdata.pl  /var/www/nagios/libexec/

然后在commands.cfg里面加入如下
vim /var/www/nagios/etc/objects/commands.cfg

Nagios 企业综合高效监控平台_nagios_35

然后添加小太阳模版,镶嵌在nagios页面上
[这里有两种查看图的方法,第一种方法是你当太阳的图标的时候会在新窗口中打开图形查看,第二种方法是你只需要把鼠标移动到太阳图标上面就会自动弹出图形出来,以下两种方法你可以根据自己喜好选其中一种即可]
第一种方法在templates.cfg里面加入如下

vim /var/www/nagios/etc/objects/templates.cfg

Nagios 企业综合高效监控平台_nagios_36

第二种方法按照说明加入如下
拷贝status-header.ssi/var/www/nagios/share/ssi/目录下面来

Nagios 企业综合高效监控平台_其他_37

然后在vim /var/www/nagios/etc/objects/templates.cfg 最后加入

define host { 
   name       host-pnp 
   action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_ 
   register   0 
}

define service { 
   name       srv-pnp 
   action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ 
   register   0 

为目标主机图标旁边添加一个小太阳标记

Nagios 企业综合高效监控平台_监控平台_38

为相关服务添加一个小太阳标记

Nagios 企业综合高效监控平台_其他_39

先做一下pnp4nagios环境测试,发现php-gd模块无效。

Nagios 企业综合高效监控平台_nagios_40

解决方法是:yum install php* -y安装然后,重启apache,nagios后通过。
 

 

Nagios 企业综合高效监控平台_nagios_41

按要求重命名install.php

Nagios 企业综合高效监控平台_监控平台_42

做好相关配置以后请用命令重启一下nagios的服务,

Nagios 企业综合高效监控平台_监控平台_43

Nagios 企业综合高效监控平台_监控平台_44

到此为止总算是配置好了PNP,下面是配置一个nagios WEB管理工具叫NagiosQL
NagiosQL是一个WEB管理工具,只要把其放到下Apache即可。因为这里它要和Nagios整合到一起,为了方便管理,把其放在Nagios目录下

Nagios 企业综合高效监控平台_nagios_45

建立nagiosQL导出nagios配置文件的目录,并修改权限

建目录和改权限
mkdir -p /etc/nagiosql/{hosts,services,backup/{,hosts,services},import}
chown -R apache:nagios /etc/nagiosql/
chmod -R 755 /etc/nagiosql
chmod -R 777 /var/www/nagios/nagiosql/config

Nagios 企业综合高效监控平台_监控平台_46

Nagios相关文件权限的设定
chown nagios:apache /var/www/nagios/etc
chown nagios:apache /var/www/nagios/etc/{nagios.cfg,cgi.cfg}
chown nagios:apache /var/www/nagios/etc/*
chmod 664 /var/www/nagios/etc/{nagios.cfg,cgi.cfg}
chmod –R 775 /var/www/nagios/etc

设定nagios二进制文件的权限,以便其能够通过Web程序执行
chown nagios:apache /var/www/nagios/bin/nagios
chmod 750 /var/www/nagios/bin/nagios
chown -R apache.nagios /var/www/nagios/var/spool/
chown nagios:apache /var/www/nagios/var/rw/nagios.cmd
chmod 660 /var/www/nagios/var/rw/nagios.cmd

Nagios 企业综合高效监控平台_其他_47

apache添加nagiosQL虚拟目录
Vim /etc/httpd/conf.d/nagios.conf   在最后添加

Alias /nagiosQL "/var/www/nagios/nagiosql" 
<Directory "/var/www/nagios/nagiosql"> 
# SSLRequireSSL 
Options None 
AllowOverride None 
Order allow,deny 
Allow from all 
</Directory>

重新加载httpd服务和启动mysqld服务

建立nagiosql安装文件
touch /usr/local/nagios/nagiosql/install/ENABLE_INSTALLER

Nagios 企业综合高效监控平台_其他_48

选取中文然后点开始安装按钮
可以看到由一个报错

Nagios 企业综合高效监控平台_nagios_49

 
解决方法:

Nagios 企业综合高效监控平台_nagios_50

Nagios 企业综合高效监控平台_nagios_51

删除安装目录,这里使用改权限:chmod 755  /usr/local/nagios/nagiosql/install

Nagios 企业综合高效监控平台_其他_52

到这里安装步骤总算结束了,下面我们还需要进行相关配置工作.

 

Nagios 企业综合高效监控平台_其他_53

管理-域-localhost---修改

 

Nagios 企业综合高效监控平台_其他_54

按如图所示更改相应的路径即可

 

Nagios 企业综合高效监控平台_监控平台_55

工具-导入数据 右边会列出一些配置文件,选择导入即可。
导入只是把配置文件内容导入到Mysql数据库,而使用其配置文件时,是一个个cfg文件,所以下面要进行写入过程

Nagios 企业综合高效监控平台_监控平台_56

检查配置文件成功

Nagios 企业综合高效监控平台_nagios_57

Nagios 企业综合高效监控平台_监控平台_58

写入之后就可以看到相应的cfg文件了,查看写入是否成功,由下面的输出可以看出写入是成功滴.

Nagios 企业综合高效监控平台_监控平台_59

,将原有以cfg_file开头项全部注释掉,加入上面新写入的配置文件
Vim /var/www/nagios/etc/nagios.cfg
注释掉

Nagios 企业综合高效监控平台_监控平台_60

加入新的配置文件路径
cfg_dir=/etc/nagiosql/hosts/ 
cfg_dir=/etc/nagiosql/services/ 
cfg_file=/etc/nagiosql/commands.cfg 
cfg_file=/etc/nagiosql/contactgroups.cfg 
cfg_file=/etc/nagiosql/contacts.cfg 
cfg_file=/etc/nagiosql/contacttemplates.cfg 
cfg_file=/etc/nagiosql/hostdependencies.cfg 
cfg_file=/etc/nagiosql/hostescalations.cfg 
cfg_file=/etc/nagiosql/hostextinfo.cfg 
cfg_file=/etc/nagiosql/hostgroups.cfg 
cfg_file=/etc/nagiosql/hosttemplates.cfg 
cfg_file=/etc/nagiosql/servicedependencies.cfg 
cfg_file=/etc/nagiosql/serviceescalations.cfg 
cfg_file=/etc/nagiosql/serviceextinfo.cfg 
cfg_file=/etc/nagiosql/servicegroups.cfg
cfg_file=/etc/nagiosql/servicetemplates.cfg 
cfg_file=/etc/nagiosql/timeperiods.cfg

Nagios 企业综合高效监控平台_监控平台_61

检查nagios的配置文件是否有问题,然后生重启nagios服务,至此整个搭建过程终于完成了.

Nagios 企业综合高效监控平台_其他_62

Service nagios restart
提示:重启服务器后可能导致nagiosQL不能写入配置,是防火墙的问题,我们执行下前面的两条命令就可以了

Nagios 企业综合高效监控平台_其他_63

监控Windows主机
nagios监控windows系统主机有三种实现方式:SNMP,NSClient++,NRPE,后面两种方式都需要在windows上安装agent,本文档只介绍使用NSClient++方式来监控Windows
被监控机Windows主机插件安装和配置
下载地址:
这里我用到的是0.3.8.zip版本,发现用0.3.9最新版本在windows xp上兼容不佳,启动不起来
解压出来然后执行安装命令

 

Nagios 企业综合高效监控平台_nagios_64

解压出来编辑nsc.ini,把前面的分号去掉如下图所示

Nagios 企业综合高效监控平台_nagios_65

Nagios 企业综合高效监控平台_其他_66

settings部分加入允许主机访问的服务器IP地址,这里要对号入座,输入你的nagios服务器的IP即可

Nagios 企业综合高效监控平台_nagios_67

nsclient部分开启NSClinet的默认监听端口12489以及允许访问本机的主机名称,编辑完以后保存退出

Nagios 企业综合高效监控平台_nagios_68

再用命令netstat –an 查看确认端口服务已经运行.

Nagios 企业综合高效监控平台_nagios_69

再到服务器运行./check_nrpe –H 要监控服务器的主机IP地址,看到如下图所示表示通过没有问题

Nagios 企业综合高效监控平台_其他_70

NagiosQL来添加要监控的主机
监督-HOST-添加

Nagios 企业综合高效监控平台_nagios_71

设置主机名、地址、选择模板
 
Nagios 企业综合高效监控平台_nagios_72
然后添加需要的其它服务,先添加C盘的使用情况,监督-服务-添加

 

Nagios 企业综合高效监控平台_其他_73

Nagios 企业综合高效监控平台_nagios_74

总体设置状况请按如下图所示操作完成

Nagios 企业综合高效监控平台_其他_75

上面只是讲解定义一个服务的方法,其实里面都已经定义好了相关要监控的服务了,所以我们可以直接调用这些服务了,想学习更多,可以点修改看看每项是怎么设定的.(想监控什么东西要靠自己多学习然后举一反三来自定义出自己想要的服务来)
 

Nagios 企业综合高效监控平台_nagios_76

为当前主机添加上面定义好的服务,(再返回到当前以定义好的主机上面来)选择"服务选项"-选择定义好的需要监控服务,其实在定义服务的时候也可以选择主机的,也可以在主机这里选择相关服务

Nagios 企业综合高效监控平台_nagios_77

记得需要在这里选写入配置才行,然后重启Nagios服务即可

Nagios 企业综合高效监控平台_监控平台_78

从上到下执行一次
 

Nagios 企业综合高效监控平台_nagios_79

过一段时间就可以在Nagios界面上看到如下界面图,已经有刚才添加的主机 win-pc

Nagios 企业综合高效监控平台_nagios_80

然后再看服务已经有了

Nagios 企业综合高效监控平台_nagios_81

在图形监控界面点相应服务选项则出相应的图形监控界面

Nagios 企业综合高效监控平台_监控平台_82

为服务器加美化标识图标
如下图所示若设备是路由器我们就在它后面加一个图由器的图标,是服务就加服务器的图标,一眼就能区别这个设备属于什么类型,方便管理区别,

[通过阅读官方文档,得知在host定义中有四个变量可选,用于指定每一个host的图标文件名,默认的存储位置是/var/www/nagios/share/p_w_picpaths/logos 
icon_p_w_picpath:
可以使用GIF, PNG,或者是JPG文件,推荐图像尺寸为40x40 
icon_p_w_picpath_alt:
即为HTML语法中关于p_w_picpath元素的ALT属性值 
vrml_p_w_picpath: Nagios
提供使用VRML语言绘制三维图像功能,这里不要使用透明图片(PNG, GIF),最好使用JPG 
statusmap_p_w_picpath:
提供给statusmap CGI脚本使用的图片,服务器要支持GD,这个文件的类型为gd2]

Win-pc未加服务器图标之前的样子

Nagios 企业综合高效监控平台_nagios_83

注意主机配置文件在/etc/nagiosql/hosts目录下面

Nagios 企业综合高效监控平台_其他_84

编辑需要加图标的主机配置文件,然后按如下图所示加入两行

Nagios 企业综合高效监控平台_监控平台_85

重启nagios服务以后,可以看到图标出来了

Nagios 企业综合高效监控平台_nagios_86

监控Linux主机 
nagios监控linux服务器, 因为监控都是依靠插件去完成的,而监控linux主要使用NRPE插件,

首先简单介绍一下NRPE监控基础,及监控过程,然后一步步的配置一个实例实现监控linux服务器

Nagios 企业综合高效监控平台_其他_87

NRPE总共由两部分组成
check_nrpe
插件:运行在监控主机上 
NRPE daemon
:运行在远程的linux主机上(通常就是被监控机
整个的监控过程
当Nagios需要监控某个远程linux主机的服务或者资源情况时: 
1:nagios
运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么
2:check_nrpe
插件会通过SSL连接到远程的NRPE daemon. 
3:NRPE daemon
会运行相应的nagios插件来执行检查本地资源或服务
4:NRPE daemon
将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理
注意:NRPE daemon需要nagios插件和Nrpe一起安装在远程被监控linux主机上,否则,daemon不能做任何的监控. 别外因为它们间的通信是加密的SSL,所以需要安装SSL

被监控端安装NRPE和 nagios-plugins

增加一nagios用户,然后下载插件
Nagios 企业综合高效监控平台_nagios_88
装完以后确认一下相关数据文件是否存在
Nagios 企业综合高效监控平台_其他_89

下载nrpe

解压Nagios 企业综合高效监控平台_监控平台_90
编译
Nagios 企业综合高效监控平台_其他_91
然后按如下图所示操作

Nagios 企业综合高效监控平台_监控平台_92

编辑nrpe.
cfg在allowed_hosts后面加上nagios服务器的IP地址.
vi /usr/local/nagios/etc/nrpe.cfg

Nagios 企业综合高效监控平台_其他_93

启动服务然后查看服务端口的运行状态.
Server nrpe start

Nagios 企业综合高效监控平台_nagios_94

设定服务自启动

Nagios 企业综合高效监控平台_其他_95

验证测试NRPE
在本地测试一下自己

 

Nagios 企业综合高效监控平台_监控平台_96

配置NRPE文件根据自己的需求加入你需要监控服务,这一步非常重要,比如说你想要监控本机的SWAP分区,那里你需要在里面加入

command[check_swap]=/usr/local/nagios/libexec/check_swap –w 20% –c 10%,如果这里没有定义好,那你在服务器端会报错误:NRPE command ‘check_swap’ not defined

Nagios 企业综合高效监控平台_监控平台_97

进入nagiosQL管理控制台点 命令-定义-添加

Nagios 企业综合高效监控平台_nagios_98

命令:check_nrpe 
命令行:$USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

Nagios 企业综合高效监控平台_其他_99

现在开始添加需要监控的linux主机 监督-host-添加

Nagios 企业综合高效监控平台_nagios_100

添加主机相关信息及模板

Nagios 企业综合高效监控平台_nagios_101

添加一个自定义服务 监督-服务-添加

Nagios 企业综合高效监控平台_监控平台_102

相当于在服务器端执行这样一条命令,所以可以在添加服务之前先在服务器端执行一下这样的一条命令,确认数据是否可以正常收集得到,想监控什么就想添加相应服务进去.

Nagios 企业综合高效监控平台_监控平台_103

cpu使用率服务:$ARG1$check_load 
在线用户服务:$ARG1$check_users 
进程数量服务:$ARG1$check_total_procs 
第一个分区使用情况服务:$ARG1$: check_sda1 
注意:这些服务必须在被监控的linux客户端的nrpe.cfg文件中得到定义]

Nagios 企业综合高效监控平台_监控平台_104

我们这里多加一个ping检查服务

Nagios 企业综合高效监控平台_nagios_105

记住每多添加一个服务,请在被监控的linux客户端的nrpe.cfg文件中要定义此命令,在控制台设定的参数和定义命令的参数要一致,搞不明白请仔细看上图和下图对比应该知道怎么做

Nagios 企业综合高效监控平台_监控平台_106

每多添加一条命令都需要重启nrpe服务,以使配置立即生效

Nagios 企业综合高效监控平台_其他_107

加入第一个分区使用情况,注意有些硬盘用的是hda,有些是sda,[hd(n)是IDE接口的, sd(n)是SCSI接口的]
如果你不确定你所使用的是哪种接口的硬盘,请用命令ls /dev/查看一看,看到我这里用的是SCSI接口的硬盘

Nagios 企业综合高效监控平台_监控平台_108

Nagios 企业综合高效监控平台_其他_109

添加更多服务这里我就举以上几个例子,要靠自己多学习举一反三哈,
添加完成记得要点写入配置哈

 Nagios 企业综合高效监控平台_nagios_110

然后在主机端关联刚才自定义好的服务

Nagios 企业综合高效监控平台_监控平台_111

最后在工具-nagios控制检查写入的配置文件全部执行一次

Nagios 企业综合高效监控平台_其他_112

最后在nagios Web控制台可以看到如下表示成功了

Nagios 企业综合高效监控平台_监控平台_113

摘录一些参数信息供大家参考
如果丢包率到达20%则报warning,到达60%则报critical:
check_ping!100.0,20%!500.0,60%
如果可用空间低于20%会报Warning,如果可用空间低于10%则报Critical:
check_local_disk!20%!10%!/
监测远程主机当前的登录用户数量,如果大于20用户则报warning,如果大于50则报critical:
check_local_users!20!50
监测远程主机当前的进程总数,如果大于250进程则报warning,如果大于400进程则报critical:
check_local_procs!250!400!RSZDT
监测远程主机swap文件系统使用量,如果swap可用空间低于20%则报warning,低于10%则报critical:
check_local_swap!20!10

“-H 192.168.1.220”定义目标主机的地址,-w说明后面的一对值对应的是“WARNING”状态,“80%”是其临界值。“-c 500.0,100%” 其中“-c”说明后面的一对值对应的是" CRITICAL",“100%”是其临界值。“-p 1”说明每次探测发送一个包

check_ping -H 192.168.1.220 -w 300.0,80% -c 500.0,100% -p 1

检查http的80端口
check_http!80

用法: check_nt -H <hostname> -p <port> -v INSTANCES -l <counter object> 
<counter object>
是一个windows性能对象计数 (eg. Process), 
如果它是两个词,它应该引号括起来,返回的结果将是一个逗号分隔的对象 
check_nt
用法举例
check_nt -H 192.168.1.2 -p 12489 -v CPULOAD -l 60,90,95 //
显示最后60分钟waring为90%,critical为95%时的平均cpuload 
check_nt -H 192.168.1.2 -p 12489 -v UPTIME //
显示192.168.1.2从开机到现在运行时间 
check_nt -H 192.168.11.132 -p 12489 -v USEDDISKSPACE -l c //
显示192.168.11.132 C盘使用情况 
check_nt -H 192.168.11.132 -p 12489 -v USEDDISKSPACE -l d -w 60 -c 95 //
显示192.168.11.132 D盘设waring为90%,critical为95%时的空间使用信息 
check_nt -H 192.168.11.132 -p 12489 -v MEMUSE //
显示192.168.1.2内存使用情况 
check_nt -H 192.168.11.132 -p 12489 -v SERVICESSTATE -d SHOWALL //
显示192.168.11.132所有正在运行的服务 
check_nt -H 192.168.11.132 -p 12489 -v SERVICESSTATE -d SHOWALL -l W3SVC //
显示192.168.11.132上IIS网站服务运行情况 
check_nt -H 192.168.11.132 -p 12489 –s 7758521 –v CLIENTVERSION //
查看192.168.11.132上nsclient++版本 
check_nt -H 192.168.11.132 -p 12489 –s 7758521 -v INSTANCES -l Process //
列举192.168.11.132上运行的进程

监控防火墙
这里我先用思科模拟软件模拟防火墙来桥接到物理网络然后配置好ip地址和启用SNMP相关信息Nagios 企业综合高效监控平台_其他_114
下面作业些ASA防火墙的简单配置
En
Conf t
Int e0/0
Nameif inside
Sec 100
Ip add 172.16.10.197 255.255.255.0
No shut
Exit
Int e 0/1
Nameif outside
Sec 50
Ip add 192.168.11.145 255.255.255.0
No shut
Exit

ciscoasa(config)#snmp-server host inside 192.16.11.145 community public

insid后面跟的IP是你监控机器的IP,community是公用提名,建议不要用 public.

ciscoasa(config)#snmp-server enable traps

ciscoasa(config)#snmp-server community public

安装check_snmp plugin 
在编译 nagios-plugins 时,如果系统支持net-snmp, 会自动编译 check_snmp 插件。(刚开始可能我们没有安装net-snmp,所以没有出现check_snmp这个插件) 
1
、安装net-snmp 
yum -y install net-snmp-libs net-snmp-devel net-snmp net-snmp-utils 
2
、重新再编译安装插件 nagios-plugins-1.4.13 
./configure 
make && make install

3、检查SNMP的当前版本 
Nagios 企业综合高效监控平台_其他_115

如果版本过低,可能不支持 snmp v2c 
相应的OID可以通过厂商的MIB查询;也可以在一些专业网站查询 Online MIB Database;也可以通过snmpwalk 得到。 
snmpwalk -v version -c community hostname 
4
、相应的命令可以通过snmpget 测试。 
snmpget -c community -v 2c hostname iso.3.6.1.4.1.3224.16.3.2.0

在日常监控中,经常会用到snmp服务,而snmpwalk命令则是测试系统各种信息最有效的方法,现总结一些常用的方法如下
snmpwalk -v 1 -c public 192.168.11.145 .1.3.6.1.2.1.25.2.2
取得系统总内存 
snmpwalk -v 1 -c public 192.168.11.145 hrSystemNumUsers
取得系统用户数 
snmpwalk -v 1 -c public 192.168.11.145 .1.3.6.1.2.1.4.20
取得IP信息 
snmpwalk -v 1 -c public 192.168.11.145 system
查看系统信息 
snmpwalk -v 1 -c public 192.168.11.145 ifDescr
获取网卡信息

以上只是一些常用的信息,snmpwalk功能很多,可以获取系统各种信息,只要更改后面的信息类型即可.如果不知道什么类型,也可以不指定,这样所有系统信息都获取到
snmpwalk -v 1 -c public 192.168.11.145

现在我们测试一下连接到到模拟防火墙上面去获取MIB信息,可以看到我们设置的SNMP相关信息在这里全部出现了,

Nagios 企业综合高效监控平台_监控平台_116

添加一主机如图所示,这里用先用PING命令检查路由器的连通性,相关参数设置代表什么意思上面说得清楚这里不再说明
 
 Nagios 企业综合高效监控平台_监控平台_117
可以根据自己的需要来自定义一个命令,命令-定义-添加

Nagios 企业综合高效监控平台_监控平台_118

比如我现在想检查路由器启动了多长时间,其实我们要执行的命令是:check_snmp -H '$HOSTADDRESS -C '$ARG1 -o sysUpTime.0

先通过命
令查看到sysuptime的OID的值为:sysUpTimeInstance

Nagios 企业综合高效监控平台_nagios_119

现在开始我们来自定义符合自己要求的命令来,到管理-命令-定义
由于这里只需要用到-H-C –o 三个参数,注意这里要区分大小写,这里命令行里面就按如图所示进行添加,最后记得点保存即可

Nagios 企业综合高效监控平台_其他_120

然后再到监督-服务-添加 在查检命令这里我们可以选择到我们刚才自定义好的命令

Nagios 企业综合高效监控平台_nagios_121

写入配置

Nagios 企业综合高效监控平台_其他_122

然后再到主机里面关联刚才建好的服务

Nagios 企业综合高效监控平台_其他_123

最后记得要从上到下执行一下这个动作,不然会出问题滴

Nagios 企业综合高效监控平台_其他_124

最后的战果如下图所示

Nagios 企业综合高效监控平台_监控平台_125

邮件报警
邮件报警这里我们用最简单的方法就是调用系统自带的mailx来发警告邮件(也可自己搭建第三方的邮件服务器)
手机接收邮件的方法其实也很简单,发到163的邮箱也支持手机接收,还有移动的139邮箱都可以滴,到手机做简单的设定即可.

Nagios 企业综合高效监控平台_监控平台_126

确认一下程序文件安装存入的路径

Nagios 企业综合高效监控平台_其他_127

试着发一封邮件到自己的邮箱试试看,

Nagios 企业综合高效监控平台_nagios_128

打开邮箱确认邮件是否能够成功收到

Nagios 企业综合高效监控平台_nagios_129

警告-联系数据-添加

Nagios 企业综合高效监控平台_nagios_130

可以自定义一个联系组 警告-联系组-添加

Nagios 企业综合高效监控平台_nagios_131

添加完成以后记得要点写入配置文件

 

Nagios 企业综合高效监控平台_其他_132

到需要启用报警的主机上面启用报警,监督-Host-需要启用报警的主机-报警设置,注意配置完成以后要记得点写入配置按钮哈.

Nagios 企业综合高效监控平台_其他_133

然后再从上到下全部点执行

Nagios 企业综合高效监控平台_其他_134

由于主机检查刷新有一定的时间间隔,最先反应报警是ping服务

Nagios 企业综合高效监控平台_监控平台_135

过几十秒相关服务才全部相继开始告警,不注意这里有个尝试次数的设定,我测试发现一直要等到这个尝试次数结束以后才能报警,而这中间尝试的时间大约为10分钟,这里需要调整,要不然明明主机down要等半天才反应过来岂不没有什么意义了
由于我的win xp 系统早就宕机了,所以邮件的很快发过了,如果时间刚宕机的时间会久一点,我的服务器系统时间是23号所以时间有点不正确。

Nagios 企业综合高效监控平台_其他_136

基本上3-5分钟之内就会发送一份邮件报警

Nagios 企业综合高效监控平台_nagios_137

以上遇到两个问题需要解决,报警的延时拖得太长,邮件发送的次数太多,我们需要限制报警邮件的发送次数,要不然一直这样发下去邮箱都要塞爆了.
先解决报警的延时拖得太长的问题,这里我们其实只要修改服务的重试次数和检查间隔时长. 监督-服务-修改

Nagios 企业综合高效监控平台_nagios_138

Nagios 企业综合高效监控平台_nagios_139

主机检查设置同样按如下图所示操作

Nagios 企业综合高效监控平台_其他_140

这里想说明一下,默认的ping服务检查调用是imp_any这个自定义命令,要修改ping的检查次数请到这里来改.改完后记得到nagios控制里面去点执行然后重启nagios服务一次

Nagios 企业综合高效监控平台_nagios_141

最后可以看到所有重试次数全部变成了2次,每分钟检查一下状态信息(频繁检查状态信息会对网络带宽有一定的影响,请大家根据自己的情况去定检查的间隔时间

Nagios 企业综合高效监控平台_监控平台_142

上图为证成功通过

Nagios 企业综合高效监控平台_nagios_143

下面开始解决邮件发送的次数太多的问题,如果服务器出现故障而未能及时的解决,Nagios就会不断的发送告警信息,实在令人头疼,Nagios于是用hostescalationsserviceescalations来控制报警间隔时间来完善它的报警功能. 
通过查看nagios.cfg配置文件可以发现上次我们添加的时候,此配置文件已经写入在里面了

Nagios 企业综合高效监控平台_nagios_144

这里我们设定简单点不要搞得那么复杂,通知前3条信息我们按正常频率接由邮件,从第3条信息以后我们改变它有通知时间,这里我设为120分钟,当然你可以根据自己的情况去定,然后从第5条信息起再恢复它有通知频率间隔,就是这么简单.

Nagios 企业综合高效监控平台_监控平台_145

添加如下内容

define serviceescalation{ 
host_name                  Win2K3       ;
被监控主机名称 ,要与hosts.cfg中的名称一致 
service_description        PING,Memory Usage,Explorer,CPU Load,C:\ Drive Space  ;
被监控服务名称多个用逗号隔开 
first_notification           3               ;
第3条信息起,改变频率间隔 
last_notification            5               ;
第5条信息起,恢复频率间隔 
notification_interval        120       ;
通知间隔(单位:分
contact_groups              YW-group    ;
要通知的群组

Nagios 企业综合高效监控平台_nagios_146

添加如下内容:

define hostescalation{ 
host_name                  win-pc           ;
被监控主机名称,要与hosts.cfg中名称一致 
first_notification           3                    ;
第3条信息起,改变频率间隔 
last_notification            5                    ;
第5条信息起,恢复频率间隔 
notification_interval        120            ;
通知间隔(单位:分
contact_groups              YW-group   ;
要通知的群组 
}

执行写入其他数据的时候我们可以发现我们刚手动加入信息的两个文件在这里的配置再次被重写了,刚手动加入的信息全部都恢复成默认的了,难怪我在测试的时候发现明明设置了限制的时间却发现没有起效果,原来发现原因在这个地方(我估计需要通过这个控制台来修改这两个配置文件,但我没有找到哪个地方可以去修改)所以当你手动改了以后,请不要执行这一步就行了

Nagios 企业综合高效监控平台_nagios_147

到时为止以上的实验已经全部做完,发了不少时间,本人也是参考类似的文章做的,同时又加以创新,由于水平有限,不足之处还请各位大虾指教。