构建nagios监控系统

一 nagios网络监控

·Nagios简介

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设备;适合于对大量的服务器进行监控,判断其负载或服务是否正常,发生异常能通过邮件、短信报警。

Nagios,侧重于服务和性能的监测;流量监控不是他的强项,流量监控建议使用cacti.可以绘制非常直观的图形;官方网站http://www.nagios.org/

·Nagios工作结构

C/S模式,nagios服务器被称为服务端,而被它监控的服务器成为客户端;监控主机的功能其实都是通过执行插件程序来实现的。利用各种插件的功能来收集数据

B/S模式,最终以Web页面的形式展现给管理员

二 nagios服务端的配置

监控不同的服务和主机有不同的配置和部署

·安装所需环境包(关闭selinux)

其中mysql-devel提供了check mysql插件,为了连接mysql服务器(可以省略,以后安装,但是要重新安装nagios插件)

·创建运行nagios服务的用户

·安装nagios软件包

1解压并配置

解压到/usr/src/目录下最好,在此目录下安装不容易出错

2编译并安装相关操作

注:

make install //安装主程序,CGI和HTML文件

make install-init     //在/etc/rc.d/init.d安装启动脚本

make install-commandmode //配置目录权限

make install-config     //安装示例配置文件

make install-webconf //安装nagios的web接口,会在/etc/httpd/conf.d目录中创建nagios.conf文件。

注:若在RHEL6X32位系统中安装nagios-cn-3.2.3.tar.bz2要先执行make clean操作,然后再执行./configure和make all等操作,否则执行make all时会报错

3验证是否安装成功

切换目录到安装路径(默认安装目录是/usr/local/nagios),看是否存在etc、bin、sbin、share、var、这五个目录,如果存在说明程序被正确安装到系统了

注:这五个目录的功能

bin:nagios执行程序所在的目录,nagios文件即为主程序。

etc:nagios配置文件目录,当make install-config完以后etc下面就会出现默认的配置文件。

sbin:nagios CGI文件所在目录,这里存放的是一些外部命令执行程序。

share:nagios网页文件目录,存放一些html文件。

var:nagios日志文件、pid等文件目录。

·安装nagios-plugins插件

nagios-plugins是nagios官方提供的一套插件程序,nagios监控主机的功能其实都是通过执行插件程序来实现的

1解压并配置

2编译并安装插件

安装完之后会在/usr/local/nagios/libexec文件夹中多出一些文件,即所有插件命令将被安装到/usr/local/nagios/libexec 目录下

·修改nagios服务的配置文件

Nagios服务的配置文件有主配置文件(/usr/local/nagios/etc/nagios.cfg)、从配置文件(/usr/local/nagios/etc/objects目录下的几个配置文件)和/usr/local/nagios/etc/cgi.cfg (它的作用是控制相关cgi脚本)配置文件;其中通过修改主配置文件可以调用从配置文件(默认存在的从配置文件已调用,新添加的自定义从配置文件需要手动调用)

默认存在的从配置文件包括

从配置文件的作用(主要用到的有以下几个)

联系人contacts.cfg:配置告警收件人地址(邮箱或电话,一般是管理员的邮箱)

监控时间段timeperiods.cfg:7X24小时不间断还是周一至周五,或是自定义的其他时间段

被监控主机和服务localhost.cfg:所需要监控的服务器,当然可以是监控机自己;例如主机是否存活,80端口是否开,磁盘使用情况或者自定义的服务等

监控命令commands.cfg:nagios发出的哪个指令来执行某个监控,下载新的插件,定义新的命令,然后在配置主机和服务时可以调用

注意:多个被监控主机可以定义为一个主机组,多个联系人可以被定义为一个联系人组

1修改nagios的主配置文件nagios.cfg

新建从配置文件(localhost.cfg配置文件就是用来配置需要监测的服务器和服务的配置文件,但是因为示例太多不方便配置,因此这里自定义两个配置文件分开来调用监控主机配置文件和监控服务配置文件)

最好修改一下文件的属主和属组为nagios

注释掉原来的localhost.cfg配置,添加新建的两个配置文件

2修改nagios从配置文件

监控时间段配置文件timeperiods.cfg

定义了一个监控时间段,它的名称是24x7(时间段的名称,这个地方不要有空格),监控的时间是每天全天24小时

联系人配置文件contacts.cfg

定义了一个联系人,联系人的名称是nagioscontact,并定义了一个联系人组,联系人组名是admins,包含一个成员nagioscontact

其中重要选项的含义为

service_notification_period 24x7

服务出了状况通知的时间段,这个时间段就是上面在timeperiods.cfg中定义的.

host_notification_period 24x7

主机出了状况通知的时间段, 这个时间段就是上面在timeperiods.cfg中定义的

service_notification_options w,u,c,r

当服务出现w-报警(warning),u-未知(unkown),c-严重(critical),或者r-从异常情况恢复正常,在这四种情况下通知联系人

host_notification_options d,u,r

当主机出现d-当机(down),u-返回不可达(unreachable),r-从异常情况恢复正常,在这3种情况下通知联系人

service_notification_commands notify-service-by-email

服务出问题通知采用的命令notify- service-by-email,这个命令是在commands.cfg中定义的,作用是给联系人发邮件,还可以飞信发手机短信给联系人,但需要安装飞信程序。. host_notification_commands notify- host-by-email

同上,主机出问题时采用的也是发邮件和飞信的方式通知联系人。

email yahoon@test.com

很明显,联系的人email地址

Pager 137XXXXXXXX

联系人接收报警信息电话

可以将多个联系人组成一个联系人组

define contactgroup{

contactgroup_name admins //联系人组的名称,同样不能空格

alias Nagios Administrators //别名

members nagioscontact

//组的成员,来自于上面定义的联系人,如果有多个联系人则以逗号相隔

自定义配置文件,添加要监控的主机信息,主机配置文件/hosts.cfg

主机组并不是必须的,这是配合nagios的监控页面的显示;通过简单的复制修改就可以定义多个主机了

自定义配置文件,添加要监控的主机的服务项目,服务配置文件services.cfg

 

其中主机名必须是主机配置文件中存在的,可以同时配置多个监测项目

check_local_users!20!50         //监测远程主机当前的登录用户数量,如果大于20用户则报warning,如果大于50则报critical

check_local_disk!20%!10%!/     //如果可用空间低于20%会报Warning,如果可用空间低于10%则报Critical:

check_local_procs!250!400!RSZDT //监测远程主机当前的进程总数,如果大于250进程则报warning,如果大于400进程则报critical,S(休眠)、R(运行)、Z(僵死)、D (不可中断)、T (停止)

check_load -w 5,4,3 -c 10,6,4这个命令的意义如下

当1分钟多于5个进程等待,5分钟多于4个,15分钟多于3个则为warning状态

当1分钟多于10个进程等待,5分钟多于6个,15分钟多于4个则为critical状态

Check_local_swap!20%!10%        //如果交换空间低于20%会报Warning,如果可用空间低于10%则报Critical

服务组并不是必须的,这是配合nagios的监控页面的显示

·校验nagios配置文件的正确性

运行检测命令,看是否报错;如果有错误,根据提示排错

三 nagios监控页面访问配置

·修改httpd配置文件,加载nagios页面定义

安装好nagios后会在apache安装目录中的conf.d目录存在一个nagios.conf文件,这个文件中定义了有关访问nagios的web页面的定义;默认已加载,没加载则手动加载

·添加一个访问nagios页面的授权用户

用户名必须是/usr/local/nagios/etc/cgi.cfg中定义好的(可自行修改,相关项很多,修改比较麻烦);默认定义好的用户名是nagiosadmin

·启动httpd服务和nagios服务并设置开机自启动

·设置防火墙策略

注意:如果你开启了selinux 需要配置如下二步:

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/

chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

·客户端访问nagios监控页面

在客户端浏览器输入http://ip/nagios进行访问;要求输入用户名和密码(授权用户)

登录成功后显示的控制台