7.1构建nagios监控系统

构建nagios监控系统html

一 nagios网络监控mysql

·Nagios简介linux

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

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

·Nagios工做结构sql

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

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进行访问;要求输入用户名和密码(受权用户)

登陆成功后显示的控制台