天天看点

搭建nagios监控服务

     由于公司在本市有一些服务器需要对其进行监测,其中大部分是windows的服务器,看了一些相关的监控的软件,最后决定使用nagios进行监控,在这里对Sery文章的帮助表示感谢。

      下面就是一些安装的步骤,由于安装的时候与现在较早,有些地方没有好好的保留,如有不对的地方望大家积极指出,如有不懂的地方可以去nagios的官网去查看,也可以在搭好后的web主页上获得帮助,呵呵,我就是看那里的。不说了,下面是配置步骤。

首先,到www.nagios.orq 上下载nagios 的软件包

2.下载到相应的目录下解压,进行编译 ./configure prefix=/usr/loacl/nagios

注意先建立nagios 用户和组,也可以再编译的时候进行指定

3、  编译nagios. make all

4、 安装nagios。与别的软件安装稍有不同,nagios的安装要好几步才能完成。第一步执行make install安装主要的程序、CGI及HTML文件,第二步执行 make install- commandmode 给外部命令访问nagios配置文件的权限,第三步执行 make install-config 把配置文件的例子复制到nagios的安装目录。按照安装向导的提示,其实这里 还有一个 make install-init的步骤,它的作用是把nagios做成一个运行脚本,使nagios随系统开机启动,这是一个很方便的措施。但本人是一个喜欢把问题简化的人,没 有执行这样的操作。

5、 验证程序是否被正确安装。切换目录到安装路径(这里是/usr/local/nagios),看是否存在 etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正 确的安装到系统了。后表是五个目录功能的简要说明:

bin

Nagios执行程序所在目录,这个目录只有一个文件nagios

etc

Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件

sbin

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

Share

Nagios网页文件所在的目录

Var

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

二。安装nagios 的插件,到www.nagios.orq 上下载nagios 的软件包nagios-plugins-1.4.13

执行

./configure prefix=/usr/loacl/nagios     make   make install进行安装

j

注意系统时间的一致性

>

装好后再目标目录下生成 libexec 目录

三、安装web服务器apache

Web服务不是nagios所必须的,但是如果nagios没有web,查看监控对象的状态将是非常费事和没有趣味的事情(只有通过查看nagios的日志来判断状态)。我不愿干特无聊 的事,所以就花少许时间把web安装一下。

在unix/linux世界,apache是web服务器的首选对象,其下载网站为www.apache.org  。建议下载源码。因为我们不需要很复杂的web功能,因此简单的执行一下几个步骤就 可以正确的把apache安装到系统:

1、   解包、配置:tar zxvf httpd-2.2.0.tar.gz ; cd httpd-2.2.0 ; ./configure   –prefix=/usr/local/apache 。

2、   编译安装: make ; make install 。

安装完成后,执行命令 ./usr/local/apache/bin/apachectl –t 检查一下apache是否正确安装。

#setting for nagios

ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin

<Directory "/usr/local/nagios/sbin">   

    AuthType Basic

    Options ExecCGI

    AllowOverride None

    Order allow,deny

    Allow from all

    AuthName "Nagios Access"

    AuthUserFile /usr/local/nagios/etc/htpasswd 

    Require valid-user

</Directory>

Alias /nagios /usr/local/nagios/share

<Directory "/usr/local/nagios/share">  

    Options None

    AuthName "nagios Access"

</Directory>

更改目录/usr/local/apache 的权限 为nagios用户

执行/usr/local/apache/bin/apachl -t 检查语法

然后/usr/local/apache/bin/apachctl start & 把apache启动到后台

注意有的版本自带了自己的apache服务,不要试验 /etc/init.d/httpd start 进行启动会冲突

四。进入到/usr/local/nagios/etc/ 下,目录结构如下

搭建nagios监控服务

然后进入到 ./nagios 下对nagios 配置文件进行修改

cfg_file=/usr/local/nagios//etc/objects/commands.cfg   //会在 object 的目录下生成相应的配置文档

cfg_file=/usr/local/nagios//etc/objects/contacts.cfg    //同上

cfg_file=/usr/local/nagios//etc/objects/timeperiods.cfg   // 同上

cfg_file=/usr/local/nagios//etc/objects/templates.cfg         // 同上

cfg_file=/usr/local/nagios//etc/objects/windows.cfg    //取消的注释行,开启监测windows服务器

cfg_file=/usr/local/nagios//etc/objects/switch.cfg      //取消的注释行,开启对路由和交换机的监测

command_check_interval=-10s  //设定服务器掉线的允许时间,默认为1s

enable_notifications=1  //是否发送通知的过滤器

在cgi.cfg中进行修改

authorized_for_system_information=nagiosadmin,zhangbo

authorized_for_configuration_information=nagiosadmin,zhangbo

authorized_for_system_commands=zhangbo //多个用户之间用逗号隔开

authorized_for_all_services=nagiosadmin,zhangbo

authorized_for_all_hosts=nagiosadmin,zhangbo

authorized_for_all_service_commands=nagiosadmin,zhangbo

authorized_for_all_host_commands=nagiosadmin,zhangbo

下面进入到 ./object 的目录下,改目录的结构如下:

搭建nagios监控服务

再 contacts.cfg 中进行修改:这里主要是联系人的相关设置

define contactgroup{

        contactgroup_name       admins  //联系组的相应组名,后面要用到

        alias                   Nagios Administrators   //别名

        members                 zhangbo    //成员,多用户用“,”隔开

        }

define contact{

        contact_name                    zhangbo         //联系人             

        alias                           Nagios zhangbo  (Admin)   //别名       

        email                           zhangbo@邮箱     //联系人的邮箱,通知的邮箱 

 再timeperiods.cfg 中没有修改:  //这里主要是一些关于监测时间,报警时间,间断时间的一些设置,保持默认即可

在 localhost.cfg 下的修改:

define hostgroup{

        hostgroup_name  hostadmin     //监视的主机组的名称

        alias           hostadmin   //别名

        members         zhangbo        //成员名 ,多用户用“,”隔开

         }

define host{

        use                     linux-server  //使用的类定义,根据templates.cfg的定义

        host_name               zhangbo             //主机名

        alias                   zhangbo                //别名

        parents                 MainSwitch

        address                 192.168.1.251     //对应的ip地址

        icon_p_w_picpath              server.gif

        statusmap_p_w_picpath         server.gd2

        2d_coords               500,200

        3d_coords               500,200,100

再  templates.cfg 中进行修改://可以根据自己的需要进行相应类的定义

        name                                    generic-contact       //定义的类名

        service_notification_period     24x7                   

        host_notification_period        24x7                  

        service_notification_options    w,u,c,r,f,s           

 events, and scheduled downtime events

        host_notification_options       d,u,r,f,s              

ents, and scheduled downtime events

        service_notification_commands   notify-service-by-email

        host_notification_commands      notify-host-by-email   

        register                        0                      

检测:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

出现下面情况表示成功

Checking misc settings...

Total Warnings: 0

Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

对于监测是点来说,我这里都是一些windows的机器,因为系统的差异,对windows的监控得需要在各监控点上安装第三方的软件--NSClient++

NSClient++ 客户端在windos上的安装步骤

1,到官方网站上下载最新的稳定的 NSClient++ 软件包或安装程序

2. 将其安装再C盘下

3.再 cmd 的模式下,进入到安装目录,执行:

       NSClient++ /uninstall

    NSClient++ SysTray uninstall

    NSClient++ /install 

    NSClient++ SysTray install

4.再安装目录下对配置文件进行修改:

将 [modules]部分的所有模块前面的注释都去掉,除了CheckWMI.dll and RemoteConfiguration.dll这两个 

在[Settings]部分设置'password'选项来设置密码,作用是在nagios连接过来时要求提供密码.这一步是可选的,我这里方便起见跳过它,不要密码. 

将[Settings]部分'allowed_hosts'选项的注释去掉,并且加上运行nagios的监控主机的IP.我改为如下这样allowed_hosts=127.0.0.1/32,192.168.0.111 以逗号相隔.这个地方是支持子网的,如果写成192.168.0.0/24则表示该子网内的所有机器都可以访问.如果这个地方是空白则表示所有的主机都可以连接上来.注意是[Settings]部分的,因为[NSClient]部分也有这个选项. 

必须保证[NSClient]的'port'选项并没有被注释,并且它的值是'12489',这是NSClient的默认监听端口 

5.在CMD中执行nsclient++ /start启动服务,注意所在目录是C:\NSClient++

password=secret-password

下面是web的nagios的监控图形界面

搭建nagios监控服务

对服务器监控测试正常

搭建nagios监控服务

继续阅读