·nagios特征

Nagios 是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主 机和服务进行监控,在状态变差和变好的时候给出告警信息。

1.网络服务监控(SMTPPOP3HTTPNNTPICMPSNMPFTPSSH

2.主机资源监控(CPU loaddisk usagesystem logs),也包括Windows主机(使用NSClient++ plugin

3.可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)

4.可以通过配置Nagios远程执行插件远程执行脚本

5.远程监控支持SSHSSL加通道方式进行监控

6.简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shellscriptsC++PerlrubyPythonPHPC#等)

7.包含很多图形化数据PluginsNagiosgraphNagiosgrapherPNP4Nagios等)

8.可并行服务检查

9.能够定义网络主机的层次,允许逐级检查,就是从父主机开始向下检查

10.当服务或主机出现问题时发出通告,可通过email, pager, sms或任意用户自定义的plugin进行通知

11.能够自定义事件处理机制重新激活出问题的服务或主机

12.自动日志循环

13.支持冗余监控

14.包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等

 

Nagios原理

Nagios的功能是监控服务和主机,但是他自身并不包括这部分功能,所有的监控、检测                    都是通过各种插件来完成的。

启动Nagios后,它会周期性的自动调用插件去检测服务器状态,同时Nagios会维持一个队列,所有插件返回来的状态信息都进入队列,Nagios每次都从队首开始读取信息,并进行处理后,把状态结果通过web显示出来。

Nagios提供了许多插件,利用这些插件可以方便的监控很多服务状态。安装完成后,在nagios主目录下的/libexec里放有nagios自带的可以使用的所有插件,如,check_disk是检查磁盘空间的插件,check_load是检查CPU负载的,等等。每一个插件可以通过运行./check_xxx –h 来查看其使用方法和功能。

Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来,以供管理员及时发现故障。

Nagios 系统提供了一个插件NRPENagios 通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如下图所示:

 

 

Nagios的四种状态

 

状态

代码

颜色

数字

正常

ok

绿色

0

警告

warning

***

1

严重

critical

红色

2

未知

unknown

深***

3

 

---------------------------------------------------------------------------------

安装nagios

 

1.配置yum

       [root@localhost /]# mount /dev/cdrom/media/

       [root@localhost /]# vim/etc/yum.repos.d/rhel-debuginfo.repo

              [rhel-debuginfo]

              name=RedHat Enterprise Linux $releasever - $basearch -Debugbaseurl=file:///media/Server

              enabled=1

              gpgcheck=1

              gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

2.安装依赖包

       [root@localhost /]# yum -y install gccglibc glibc-common gd gd-devel httpd php mysql

 

3.修改配置文件支持php解析

       [root@localhost etc]# vim php.ini

              501default_charset = "utf-8"

       [root@localhost /]# vim/etc/httpd/conf/httpd.conf

              200LoadModule php5_module       modules/libphp5.so

              769AddType application/x-httpd-php .php .phtml

              391DirectoryIndex index.html index.html.var index.php

4.创建的用户

       [root@localhost /]# useradd nagios

       创建一个用户组用于从web接口处执行外部命令,将用户nagiosapache添加到这个组

       [root@localhost /]# groupadd nagcmd

       [root@localhost /]# usermod -G nagcmdapache

       [root@localhost /]# usermod -G nagcmdnagios

5.安装nagios

       [root@localhost /]# tar -zxvfnagios-3.2.0.tar.gz -C /usr/src/     

       [root@localhost /]# cd/usr/src/nagios-3.2.0/

       [root@localhost nagios-3.2.0]#./configure --with-command-group=nagcmd

       [root@localhost nagios-3.2.0]# make all             编译

       [root@localhost nagios-3.2.0]# makeinstall

       安装nagios主程序的cgihtml文件

       [root@localhost nagios-3.2.0]# makeinstall-init

       /etc/rc.d/init.d目录下创建nagios启动脚本

       [root@localhost nagios-3.2.0]#  make install-commandmode   

配置目录权限

       [root@localhost nagios-3.2.0]# makeinstall-config    

创建nagios示例配置文件,这里的安装路径是       /usr/local/nagios/etc

       [root@localhost nagios-3.2.0]# makeinstall

[root@localhost objects]# pwd

/usr/local/nagios/etc/objects

[root@localhost objects]# vim contacts.cfg

指定接收nagios邮件的地址,默认是本机的nagios的用户

[root@localhost objects]# service sendmail restart

       [root@localhost nagios-3.2.0]# chkconfig--add nagios

       [root@localhost nagios-3.2.0]# chkconfig--level 35 nagios on

6.nagios目录文件介绍

bin

Nagios 可执行程序所在目录

etc

Nagios 配置文件所在目录

sbin

Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录

share

Nagios网页文件所在的目录

libexec

Nagios 外部插件所在目录

var

Nagios 日志文件、lock 等文件所在的目录

var/archives

Nagios 日志自动归档目录

var/rw

用来存放外部命令文件的目录

 

 

       etc目录下文件

 

文件名或目录名

用途

cgi.cfg

控制CGI访问的配置文件

nagios.cfg

Nagios 主配置文件

resource.cfg

变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$

objects

objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象

objects/commands.cfg

命令定义配置文件,其中定义的命令可以被其他配置文件引用

objects/contacts.cfg

定义联系人和联系人组的配置文件

objects/localhost.cfg

定义监控本地主机的配置文件

objects/printer.cfg

定义监控打印机的一个配置文件模板,默认没有启用此文件

objects/switch.cfg

定义监控路由器的一个配置文件模板,默认没有启用此文件

objects/templates.cfg

定义主机和服务的一个模板配置文件,可以在其他配置文件中引用

objects/timeperiods.cfg

定义Nagios 监控时间段的配置文件

objects/windows.cfg

监控Windows 主机的一个配置文件模板,默认没有启用此文件

 

      

7.nagios配置

       [root@localhost nagios-3.2.0]# makeinstall-webconf 

安装nagiosweb配置配置文件到apacheconf.d

       [root@localhost nagios-3.2.0]# htpasswd-c /usr/local/nagios/etc/htpasswd.users nagiosadmin

              创建一个用户用于登陆nagiosweb接口不要更改nagiosadmin,不然在别的配置文件中也要更改

8.插件安装

       nagios-plugins是官方提供的插件程序,nagios监控主机主要是通过插件完成的。

       [root@localhost /]# tar -zxvfnagios-plugins-1.4.14.tar.gz -C /usr/src/

       [root@localhost nagios-plugins-1.4.14]#./configure --with-nagios-user=nagios --with-nagios-group=nagios

       [root@localhost nagios-plugins-1.4.14]#make &&make install

[root@localhost /]# service iptables

[root@localhost /]# setenforce 0  

访问验证

Nagios监控windows主机

Nagios在配置方面非常灵活,默认的配置文件并不是必须的,可以使用,也可以创建    自己的配置文件,然后再在主配置nagios.cfg中引用即可

配置文件间的关系

nagios的配置文件是互为关联,相互引用的,Nagios的配置过程中需要定义的有主机,主机组,服务,服务组,联系人,联系人组,监控时间,和监控命令

Objects里面存放的是主配置文件nagios.cfg包含进去的文件,在nagios.cfg中就可以指定单独包含一个cfg,也可以包含一个目录,也就是该目录下所有的cfg文件都会包含进来

Nsclient++介绍

NSClient++是用来监控Windows主机时安装在Windows主机上的组件。被监控机上安装NSClient,,当监控主机将监控请求发给NSClient,NSClient直接完成/监控,所有的监控是由NSClient完成的.不需要额外的插件。

nsclient++集成了非常多的插件nscanrpe等都支持,一般检测windowscheck_nt插件

NSClient原理

 

 

 

 

 

 

 

 

 

Nsclient++安装

方框中可以全部打勾

注意关闭windows防火墙

查看是否启用了566612489端口

查看nsclient++服务是否启动

Nsclient++配置文件

当要修改监控主机的IP地址,或者忘记密码时可以修改这个文件

 

linux主机测试插件check_nt是否能查询windows信息

-H 要查询的主机ip地址 -p指定端口 -v要查询的信息

配置检测一台windows主机的思路首先是安装nsclient++,这个前面已经安装好了,重点要说的是在linux上配置启动监控windows主机;中心点是要监控的主机一切围绕被监控的主机展开

修改文件前请全部备份

1.[root@localhostobjects]# vim windows.cfg

 

 

[root@localhostetc]# pwd

/usr/local/nagios/etc

[root@localhostetc]# vim nagios.cfg

重新启动服务,这样一台主机就添加玩了,

是不是觉得很简单,嗯,是的我想告诉你,你想多了,功能这么强大的nagios会这么简单?开玩笑,,咳咳,回归正题,其实添加一台主机也没那么难下面来添加第二台windows主机,

----------------------

先把检测的命令写好

[root@localhost objects]# vim commands.cfg

里面的这些命令我们都可以引用

 

[root@localhostobjects]# vim windows1.cfg      定义监控的主机

如果要监控多个服务,可以多谢几个define service

[root@localhost etc]# pwd

/usr/local/nagios/etc

[root@localhost etc]# vim nagios.cfg          添加windows1.cfg

 

重启服务就可以了

      

      

================================

监控linux主机

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

 

NRPE总共由两部分组成:

   check_nrpe插件,运行在监控主机上。

   NRPE daemon,运行在远程的linux主机上(通常就是被监控机)

整个的监控过程:(如下图)

    Nagios需要监控某个远程linux主机的服务或者资源情况时:

   1).nagios运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么.

   2).check_nrpe插件会通过SSL连接到远程的NRPEdaemon.

   3).NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务.

   4).NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给nagios做处理.

注意:NRPE daemon需要nagios插件安装在远程被监控linux主机上,否则,daemon不能做任何的监控. 别外因为它们间的通信是加密的SSL,所以在编译安装时都要加上选项, ./configure--enable-ssl --with-ssl-lib=/lib/,否则也会出错.

需要提前安装openssl

在监控主机上安装nrpe插件

[root@localhost /]# tar -zxvf nrpe-2.12.tar.gz -C /usr/src/

[root@localhost nrpe-2.12]# ./configure --enable-ssl --with-ssl-lib=/usr/lib/

[root@localhost nrpe-2.12]# make all

[root@localhost nrpe-2.12]# make install-plugin

 

 

 

 

 

 

配置被监控端

 

[root@localhost /]# useradd nagios

安装nagios-plugin

[root@localhost /]# tar -zxvf nagios-plugins-1.4.14.tar.gz -C/usr/src/

[root@localhost /]# cd /usr/src/nagios-plugins-1.4.14/

[root@localhost nagios-plugins-1.4.14]# ./configure--with-nagios-user=nagios --with-nagios-group=nagios --enable-redhat-pthread-workaround(非必加,如果出现
checking for redhat spopen problem…时可以加上这个选项,关于他是干什么的,目前还不知道)

[root@localhost nagios-plugins-1.4.14]# make

[root@localhost nagios-plugins-1.4.14]# make install

[root@localhost nagios-plugins-1.4.14]# chown -R nagios:nagios/usr/local/nagios/ 

 

在被监控主机上安装nrpe插件

创建运行nrpe的用户

[root@localhost /]# useradd nagios

[root@localhost /]# tar -zxvf nrpe-2.12.tar.gz -C /usr/src/

[root@localhost /]# cd /usr/src/nrpe-2.12/

[root@localhost nrpe-2.12]# ./configure --enable-ssl--with-ssl-lib=/usr/lib/

[root@localhost nrpe-2.12]# make all

[root@localhost nrpe-2.12]# make install-plugin

[root@localhost nrpe-2.12]# make install-daemon

[root@localhost nrpe-2.12]# make install-daemon-config

配置nrpe

[root@localhost etc]# pwd

/usr/local/nagios/etc

[root@localhost etc]# vim nrpe.cfg

79 allowed_hosts=100.1.1.100      允许来检测的IP地址,多台主机用“,”隔开

[root@localhostetc]# /usr/local/nagios/bin/nrpe -c nrpe.cfg -d   启动nrpe

检查是否启动

[root@localhostnagios]# netstat -anpt|grep nrpe

tcp        0     0 0.0.0.0:5666               0.0.0.0:*                   LISTEN      6939/nrpe      

在监控端执行

[root@localhostlibexec]# ./check_nrpe -H 100.1.1.103

NRPE v2.12   查看被监控端nrpe的版本

在被监控端如果出现:

[root@localhostlibexec]# ./check_nrpe -H 127.0.0.1

CHECK_NRPE:Error - Could not complete SSL handshake.

请修改/usr/local/nagios/etc/nrpe.cfg

[root@localhostetc]# vim nrpe.cfg

重新启动nrpe进程

[root@localhostlibexec]# ./check_nrpe -H 127.0.0.1

NRPE v2.12

 

 

 

添加一台监控主机(在监控主机上)

 

[root@localhostobjects]# vim commands.cfg

[root@localhostobjects]# cp localhost.cfg linux103.cfg

[root@localhostobjects]# vim linux103.cfg

[root@localhostetc]# vim nagios.cfg   添加

 

重启服务就可以看到新添加的主机了