<code id='ldipl'><strong id='ldipl'></strong></code>
<dl id='ldipl'></dl>
        <i id='ldipl'></i>
        <i id='ldipl'><div id='ldipl'><ins id='ldipl'></ins></div></i><fieldset id='ldipl'></fieldset>

        <span id='ldipl'></span>
        <acronym id='ldipl'><em id='ldipl'></em><td id='ldipl'><div id='ldipl'></div></td></acronym><address id='ldipl'><big id='ldipl'><big id='ldipl'></big><legend id='ldipl'></legend></big></address>

        <ins id='ldipl'></ins>
      1. <tr id='ldipl'><strong id='ldipl'></strong><small id='ldipl'></small><button id='ldipl'></button><li id='ldipl'><noscript id='ldipl'><big id='ldipl'></big><dt id='ldipl'></dt></noscript></li></tr><ol id='ldipl'><table id='ldipl'><blockquote id='ldipl'><tbody id='ldipl'></tbody></blockquote></table></ol><u id='ldipl'></u><kbd id='ldipl'><kbd id='ldipl'></kbd></kbd>

            Linux下Nagios的安装与配置方法

            • 时间:
            • 浏览:10
            • 来源:124软件资讯网

                一、Nagios简介

                Nagios是一款开源的电脑系统和网络监视工具 ,能有用监控Windows、Linux和Unix的主机状态  ,交流机路由器等网络设置  ,打印机等  。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维职员 ,在状态恢复后发出正常的邮件或短信通知 。

                Nagios原名为NetSaint ,由Ethan Galstad开发并维护至今  。NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒 ,而"Agios"是"saint"的希腊表现要领  。Nagios被开发在Linux下使用 ,但在Unix下也事情得很是好  。

                主要功效

                •网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)

                •主机资源监控(CPU load、disk usage、system logs)  ,也包罗Windows主机(使用NSClient++ plugin)

                •可以指定自己编写的Plugin通过网络网络数据来监控任何情形(温度、忠告……)

                •可以通过设置Nagios远程执行插件远程执行剧本

                •远程监控支持SSH或SSL加通道方式举行监控

                •简朴的plugin设计允许用户很容易的开发自己需要的检查服务  ,支持许多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)

                •包罗许多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)

                •可并行服务检查

                •能够界说网络主机的条理  ,允许逐级检查  ,就是从父主机最先向下检查

                •当服务或主机泛起问题时发出通告  ,可通过email, pager, sms 或恣意用户自界说的plugin举行通知

                •能够自界说事务处置惩罚机制重新激活出问题的服务或主机

                •自动日志循环

                •支持冗余监控

                •包罗Web界面可以检察当前网络状态  ,通知 ,问题历史  ,日志文件等

                二、Nagios事情原理

                Nagios的功效是监控服务和主机  ,可是他自身并不包罗这部门功效 ,所有的监控、检测功效都是通过种种插件来完成的  。

                启动Nagios后 ,它会周期性的自动挪用插件去检测服务器状态  ,同时Nagios会维持一个行列 ,所有插件返回来的状态信息都进入行列 ,Nagios每次都从队首最先读守信息  ,并举行处置惩罚后  ,把状态效果通过web显示出来 。

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

                Nagios可以识别4种状态返回信息  ,即 0(OK)表现状态正常/绿色、1(WARNING)表现泛起忠告/黄色、2(CRITICAL)表现泛起很是严重的错误/红色、3(UNKNOWN)表现未知错误/深黄色 。Nagios凭据插件返回来的值  ,来判断监控工具的状态  ,并通过web显示出来 ,以供治理员实时发现故障  。

                四种监控状态

                再说报警功效 ,若是监控系统发现问题不能报警那就没有意义了  ,以是报警也是nagios很主要的功效之一 。可是 ,同样的  ,Nagios 自身也没有报警部门的代码  ,甚至没有插件  ,而是交给用户或者其他相关开源项目组去完成的  。

                Nagios 安装 ,是指基本平台  ,也就是Nagios软件包的安装 。它是监控系统的框架  ,也是所有监控的基础 。

                打开Nagios官方的文档  ,会发现Nagios基本上没有什么依赖包  ,只要求系统是Linux或者其他Nagios支持的系统 。不外若是你没有安装apache(http服务)  ,那么你就没有那么直观的界面来检察监控信息了  ,以是apache临时算是一个条件条件  。关于apache的安装 ,网上有许多 ,照着安装就是了  。安装之后要检查一下是否可以正常事情 。

                知道Nagios 是怎样通过插件来治理服务器工具后 ,现在最先研究它是怎样治理远端服务器工具的  。Nagios 系统提供了一个插件NRPE  。Nagios 通过周期性的运行它来获得远端服务器的种种状态信息  。它们之间的关系如下图所示:

                Nagios 通过NRPE 来远端治理服务

                1. Nagios 执行安装在它内里的check_nrpe 插件 ,并告诉check_nrpe 去检测哪些服务  。

                2. 通过SSL  ,check_nrpe 毗连远端机子上的NRPE daemon

                3. NRPE 运行当地的种种插件去检测当地的服务和状态(check_disk,..etc)

                4. 最后  ,NRPE 把检测的效果传给主机端的check_nrpe ,check_nrpe 再把效果送到Nagios状态行列中 。

                5. Nagios 依次读取行列中的信息  ,再把效果显示出来  。

                三、实验情况

              Host NameOSIPSoftware
              Nagios-ServerCentOS release 6.3 (Final)192.168.1.108Apache、Php、Nagios、nagios-plugins
              Nagios-LinuxCentOS release 5.8 (Final)192.168.1.111nagios-plugins、nrpe
              Nagios-WindowsWindows XP192.168.1.113NSClient++

                Server 安装了nagios软件  ,对监控的数据做处置惩罚  ,而且提供web界面检察和治理 。固然也可以对本机自身的信息举行监控  。

                Client 安装了NRPE等客户端  ,凭据监控机的请求执行监控  ,然后将效果回传给监控机  。

                防火墙已关闭/iptables: Firewall is not running.

                SELINUX=disabled

                四、实验目的

                五、Nagios服务端安装

                5.1 基础支持套件:gcc glibc glibc-common gd gd-devel xinetd openssl-devel

                # rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel

                若是系统中没有这些套件 ,使用yum 安装

                # yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel

                5.2 建立nagios用户和用户组

                # useradd -s /sbin/nologin nagios# mkdir /usr/local/nagios# chown -R nagios.nagios /usr/local/nagios

                检察nagios 目录的权限

                # ll -d /usr/local/nagios/

                5.3 编译安装Nagios

                # wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.4.3.tar.gz

                # tar zxvf nagios-3.4.3.tar.gz

                # cd nagios

                # ./configure --prefix=/usr/local/nagios

                # make all

                # make install

                # make install-init

                # make install-commandmode

                # make install-config

                # chkconfig --add nagios

                # chkconfig --level 35 nagios on

                # chkconfig --list nagios

                5.4 验证法式是否被准确安装

                切换目录到安装路径(这里是/usr/local/nagios)  ,看是否存在etc、bin、sbin、share、var 这五个目录 ,若是存在则可以讲明法式被准确的安装到系统了  。Nagios 各个目任命途说明如下:

              binNagios 可执行法式所在目录
              etcNagios 设置文件所在目录
              sbinNagios CGI 文件所在目录  ,也就是执行外部下令所需文件所在的目录
              shareNagios网页文件所在的目录
              libexecNagios 外部插件所在目录
              varNagios 日志文件、lock 等文件所在的目录
              var/archivesNagios 日志自动归档目录
              var/rw用来存放外部下令文件的目录

                5.5 安装Nagios 插件

                # wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.16.tar.gz

                # tar zxvf nagios-plugins-1.4.16.tar.gz

                # cd nagios-plugins-1.4.16

                # ./configure --prefix=/usr/local/nagios

                # make && make install

                5.6 安装与设置Apache和Php

                Apache 和Php 不是安装nagios 所必须的  ,可是nagios提供了web监控界面  ,通过web监控界面可以清晰的看到被监控主机、资源的运行状态  ,因此  ,安装一个web服务是很须要的  。

                需要注重的是  ,nagios在nagios3.1.x版本以后 ,设置web监控界面时需要php的支持  。这里我们下载的nagios版本为nagios-3.4.3  ,因此在编译安装完成apache后  ,还需要编译php模块  ,这里选取的php版本为php5.4.10  。

                a. 安装Apache

                # wget http://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz

                # tar zxvf httpd-2.2.23.tar.gz

                # cd httpd-2.2.23

                # ./configure --prefix=/usr/local/apache2

                # make && make install

                若泛起错误:

                则在编译时入加 --with-included-apr 即可解决  。

                b. 安装Php

                # wget http://cn2.php.net/distributions/php-5.4.10.tar.gz

                # tar zxvf php-5.4.10.tar.gz

                # cd php-5.4.10

                # ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs

                # make && make install

                c. 设置apache

                找到apache 的设置文件/usr/local/apache2/conf/httpd.conf

                找到:

                复制代码

                代码如下:

                User daemon

                Group daemon

                修改为

                复制代码

                代码如下:

                User nagios

                Group nagios

                然后找到

                复制代码

                代码如下:

                

                DirectoryIndex index.html

                

                修改为

                复制代码

                代码如下:

                

                DirectoryIndex index.html index.php

                

                接着增添如下内容:

                AddType application/x-httpd-php .php 为了宁静起见  ,一样平常情形下要让nagios 的web 监控页面必须经由授权才气会见  ,这需要增添验证设置  ,即在httpd.conf 文件最后添加如下信息:

                XML/HTML Code复制内容到剪贴板

                #setting for nagios

                ScriptAlias /nagios/cgi-bin "/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

                

                Alias /nagios "/usr/local/nagios/share"

                

                AuthType Basic

                Options None

                AllowOverride None

                Order allow,deny

                Allow from all

                AuthName "nagios Access"

                AuthUserFile /usr/local/nagios/etc/htpasswd

                Require valid-user

                

                d. 建立apache目录验证文件

                在上面的设置中  ,指定了目录验证文件htpasswd  ,下面要建立这个文件:

                # /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd david

                这样就在/usr/local/nagios/etc 目录下建立了一个htpasswd 验证文件  ,当通过http://192.168.1.108/nagios/ 会见时就需要输入用户名和密码了  。

                e. 检察认证文件的内容

                # cat /usr/local/nagios/etc/htpasswd

                f. 启动apache 服务

                # /usr/local/apache2/bin/apachectl start

                到这里nagios 的安装也就基本完成了  ,你可以通过web来会见了 。

                六、设置Nagios

                Nagios 主要用于监控一台或者多台当地主机及远程的种种信息  ,包罗本机资源及对外的服务等  。默认的Nagios 设置没有任何监控内容  ,仅是一些模板文件  。若要让Nagios 提供服务  ,就必须修改设置文件  ,增添要监控的主机和服务  ,下面将详细先容  。

                6.1 默认设置文件先容

                Nagios 安装完毕后 ,默认的设置文件在/usr/local/nagios/etc目录下  。

                每个文件或目录寄义如下表所示:

              文件名或目录名用途
              cgi.cfg控制CGI会见的设置文件
              nagios.cfgNagios 主设置文件
              resource.cfg变量界说文件  ,又称为资源文件  ,在些文件中界说变量  ,以便由其他设置文件引用  ,如$USER1$
              objectsobjects 是一个目录 ,在此目录下有许多设置文件模板  ,用于界说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 主机的一个设置文件模板 ,默认没有启用此文件

                6.2 设置文件之间的关系

                在nagios的设置历程中涉及到的几个界说有:主机、主机组  ,服务、服务组  ,联系人、联系人组 ,监控时间  ,监控下令等  ,从这些界说可以看出  ,nagios各个设置文件之间是互为关联  ,相互引用的  。

                乐成设置出一台nagios监控系统  ,必须要弄清晰每个设置文件之间依赖与被依赖的关系  ,最主要的有四点:

                第一:界说监控哪些主机、主机组、服务和服务组;

                第二:界说这个监控要用什么下令实现;

                第三:界说监控的时间段;

                第四:界说主机或服务泛起问题时要通知的联系人和联系人组  。

                6.3 设置Nagios

                为了能更清晰的说明问题  ,同时也为了维护利便  ,建议将nagios各个界说工具建立自力的设置文件:

                • 建立hosts.cfg文件来界说主机和主机组

                • 建立services.cfg文件来界说服务

                • 用默认的contacts.cfg文件来界说联系人和联系人组

                • 用默认的commands.cfg文件来界说下令

                • 用默认的timeperiods.cfg来界说监控时间段

                • 用默认的templates.cfg文件作为资源引用文件

                a. templates.cfg文件

                nagios主要用于监控主机资源以及服务  ,在nagios设置中称为工具  ,为了不必重复界说一些监控工具 ,Nagios引入了一个模板设置文件 ,将一些共性的属性界说成模板 ,以便于多次引用  。这就是templates.cfg的作用  。

                下面详细先容下templates.cfg文件中每个参数的寄义:

                XML/HTML Code复制内容到剪贴板

                define contact{

                name generic-contact ; 联系人名称

                service_notification_period 24x7 ; 当服务泛起异常时  ,发送通知的时间段 ,这个时间段"24x7"在timeperiods.cfg文件中界说

                host_notification_period 24x7 ; 当主机泛起异常时 ,发送通知的时间段  ,这个时间段"24x7"在timeperiods.cfg文件中界说

                service_notification_options w,u,c,r ; 这个界说的是“通知可以被发出的情形” 。w即warn  ,表现忠告状态  ,u即unknown  ,表现不明状态;

                ; c即criticle ,表现紧迫状态 ,r即recover  ,表现恢复状态;

                ; 也就是在服务泛起忠告状态、未知状态、紧迫状态和重新恢复状态时都发送通知给使用者 。

                host_notification_options d,u,r ; 界说主机在什么状态下需要发送通知给使用者  ,d即down ,表现宕机状态;

                ; u即unreachable  ,表现不行到达状态 ,r即recovery  ,表现重新恢复状态  。

                service_notification_commands notify-service-by-email ; 服务故障时 ,发送通知的方式  ,可以是邮件和短信  ,这里发送的方式是邮件;

                ; 其中“notify-service-by-email”在commands.cfg文件中界说  。

                host_notification_commands notify-host-by-email ; 主机故障时  ,发送通知的方式  ,可以是邮件和短信  ,这里发送的方式是邮件;

                ; 其中“notify-host-by-email”在commands.cfg文件中界说  。

                register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!

                }

                define host{

                name generic-host ; 主机名称  ,这里的主机名 ,并不是直接对应到真正机械的主机名;

                ; 乃是对应到在主机设置文件里所设定的主机名  。

                notifications_enabled 1 ; Host notifications are enabled

                event_handler_enabled 1 ; Host event handler is enabled

                flap_detection_enabled 1 ; Flap detection is enabled

                failure_prediction_enabled 1 ; Failure prediction is enabled

                process_perf_data 1 ; 其值可以为0或1  ,其作用为是否启用Nagios的数据输出功效;

                ; 若是将此项赋值为1  ,那么Nagios就会将网络的数据写入某个文件中  ,以备提取 。

                retain_status_information 1 ; Retain status information across program restarts

                retain_nonstatus_information 1 ; Retain non-status information across program restarts

                notification_period 24x7 ; 指定“发送通知”的时间段  ,也就是可以在什么时间发送通知给使用者 。

                register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!

                }

                define host{

                name linux-server ; 主机名称

                use generic-host ; use表现引用  ,也就是将主机generic-host的所有属性引用到linux-server中来;

                ; 在nagios设置中  ,许多情形下会用到引用  。

                check_period 24x7 ; 这里的check_period告诉nagios检查主机的时间段

                check_interval 5 ; nagios对主机的检查时间距离  ,这里是5分钟 。

                retry_interval 1 ; 重试检查时间距离  ,单元是分钟  。

                max_check_attempts 10 ; nagios对主机的最大检查次数  ,也就是nagios在检查发现某主机异常时  ,并不马上判断为异常状态;

                ; 而是多试频频  ,由于有可能只是一时网络太拥挤  ,或是一些其他缘故原由 ,让主机受到了一点影响;

                ; 这里的10就是最多试10次的意思 。

                check_command check-host-alive ; 指定检查主机状态的下令  ,其中“check-host-alive”在commands.cfg文件中界说  。

                notification_period 24x7 ; 主机故障时  ,发送通知的时间规模  ,其中“workhours”在timeperiods.cfg中举行了界说;

                ; 下面会陆续讲到  。

                notification_interval 10 ; 在主机泛起异常后  ,故障一直没有解决  ,nagios再次对使用者发出通知的时间 。单元是分钟;

                ; 若是你以为  ,所有的事务只需要一次通知就够了  ,可以把这里的选项设为0

                notification_options d,u,r ; 界说主机在什么状态下可以发送通知给使用者  ,d即down  ,表现宕机状态;

                ; u即unreachable  ,表现不行到达状态;

                ; r即recovery  ,表现重新恢复状态  。

                contact_groups ts ; 指定联系人组  ,这个“admins”在contacts.cfg文件中界说 。

                register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!

                }

                define host{

                name windows-server ; The name of this host template

                use generic-host ; Inherit default values from the generic-host template

                check_period 24x7 ; By default, Windows servers are monitored round the clock

                check_interval 5 ; Actively check the server every 5 minutes

                retry_interval 1 ; Schedule host check retries at 1 minute intervals

                max_check_attempts 10 ; Check each server 10 times (max)

                check_command check-host-alive ; Default command to check if servers are "alive"

                notification_period 24x7 ; Send notification out at any time - day or night

                notification_interval 10 ; Resend notifications every 30 minutes

                notification_options d,r ; Only send notifications for specific host states

                contact_groups ts ; Notifications get sent to the admins by default

                hostgroups windows-servers ; Host groups that Windows servers should be a member of

                register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE

                }

                define service{

                name generic-service ; 界说一个服务名称

                active_checks_enabled 1 ; Active service checks are enabled

                passive_checks_enabled 1 ; Passive service checks are enabled/accepted

                parallelize_check 1 ; Active service checks should be parallelized;

                ; (disabling this can lead to major performance problems)

                obsess_over_service 1 ; We should obsess over this service (if necessary)

                check_freshness 0 ; Default is to NOT check service 'freshness'

                notifications_enabled 1 ; Service notifications are enabled

                event_handler_enabled 1 ; Service event handler is enabled

                flap_detection_enabled 1 ; Flap detection is enabled

                failure_prediction_enabled 1 ; Failure prediction is enabled

                process_perf_data 1 ; Process performance data

                retain_status_information 1 ; Retain status information across program restarts

                retain_nonstatus_information 1 ; Retain non-status information across program restarts

                is_volatile 0 ; The service is not volatile

                check_period 24x7 ; 这里的check_period告诉nagios检查服务的时间段 。

                max_check_attempts 3 ; nagios对服务的最大检查次数 。

                normal_check_interval 5 ; 此选项是用来设置服务检查时间距离  ,也就是说  ,nagios这一次检查和下一次检查之间所隔的时间;

                ; 这里是5分钟  。

                retry_check_interval 2 ; 重试检查时间距离  ,单元是分钟 。

                contact_groups ts ; 指定联系人组

                notification_options w,u,c,r ; 这个界说的是“通知可以被发出的情形” 。w即warn ,表现忠告状态;

                ; u即unknown  ,表现不明状态;

                ; c即criticle  ,表现紧迫状态  ,r即recover  ,表现恢复状态;

                ; 也就是在服务泛起忠告状态、未知状态、紧迫状态和重新恢复后都发送通知给使用者  。

                notification_interval 10 ; Re-notify about service problems every hour

                notification_period 24x7 ; 指定“发送通知”的时间段 ,也就是可以在什么时间发送通知给使用者  。

                register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!

                }

                define service{

                name local-service ; The name of this service template

                use generic-service ; Inherit default values from the generic-service definition

                max_check_attempts 4 ; Re-check the service up to 4 times in order to determine its final (hard) state

                normal_check_interval 5 ; Check the service every 5 minutes under normal conditions

                retry_check_interval 1 ; Re-check the service every minute until a hard state can be determined

                register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!

                }

                b. resource.cfg文件

                resource.cfg是nagios的变量界说文件  ,文件内容只有一行:

                $USER1$=/usr/local/nagios/libexec

                其中 ,变量$USER1$指定了安装nagios插件的路径  ,若是把插件安装在了其它路径  ,只需在这里举行修改即可 。需要注重的是  ,变量必须先界说 ,然后才气在其它设置文件中举行引用  。

                c. commands.cfg文件

                此文件默认是存在的  ,无需修改即可使用  ,固然若是有新的下令需要加入时  ,在此文件举行添加即可 。

                XML/HTML Code复制内容到剪贴板

                #notify-host-by-email下令的界说

                define command{

                command_name notify-host-by-email #下令名称  ,即界说了一个主机异常时发送邮件的下令  。

                command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$ #下令详细的执行方式  。

                }

                #notify-service-by-email下令的界说

                define command{

                command_name notify-service-by-email #下令名称  ,即界说了一个服务异常时发送邮件的下令

                command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$\n" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$

                }

                #check-host-alive下令的界说

                define command{

                command_name check-host-alive #下令名称 ,用来检测主机状态  。

                command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5

                # 这里的变量$USER1$在resource.cfg文件中举行界说  ,即$USER1$=/usr/local/nagios/libexec;

                # 那么check_ping的完整路径为/usr/local/nagios/libexec/check_ping;

                # “-w 3000.0,80%”中“-w”说明后面的一对值对应的是“WARNING”状态 ,“80%”是其临界值 。

                # “-c 5000.0,100%”中“-c”说明后面的一对值对应的是“CRITICAL”  ,“100%”是其临界值 。

                # “-p 1”说明每次探测发送一个包  。

                }

                define command{

                command_name check_local_disk

                command_line $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ #$ARG1$是指在挪用这个下令的时间  ,下令后面的第一个参数  。

                }

                define command{

                command_name check_local_load

                command_line $USER1$/check_load -w $ARG1$ -c $ARG2$

                }

                define command{

                command_name check_local_procs

                command_line $USER1$/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$

                }

                define command{

                command_name check_local_users

                command_line $USER1$/check_users -w $ARG1$ -c $ARG2$

                }

                define command{

                command_name check_local_swap

                command_line $USER1$/check_swap -w $ARG1$ -c $ARG2$

                }

                define command{

                command_name check_ftp

                command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$

                }

                define command{

                command_name check_http

                command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$

                }

                define command{

                command_name check_ssh

                command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$

                }

                define command{

                command_name check_ping

                command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5

                }

                define command{

                command_name check_nt

                command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$

                }

                d. hosts.cfg文件

                此文件默认不存在  ,需要手动建立  ,hosts.cfg主要用来指定被监控的主机地址以及相关属性信息 ,凭据实验目的设置如下:

                XML/HTML Code复制内容到剪贴板

                define host{

                use linux-server #引用主机linux-server的属性信息  ,linux-server主机在templates.cfg文件中举行了界说  。

                host_name Nagios-Linux #主机名

                alias Nagios-Linux #主机别名

                address 192.168.1.111 #被监控的主机地址  ,这个地址可以是ip  ,也可以是域名  。

                } #界说一个主机组

                define hostgroup{

                hostgroup_name bsmart-servers #主机组名称  ,可以随意指定  。

                alias bsmart servers #主机组别名

                members Nagios-Linux #主机组成员  ,其中“Nagios-Linux”就是上面界说的主机  。

                }

                注重:在/usr/local/nagios/etc/objects 下默认有localhost.cfg 和windows.cfg 这两个设置文件  ,localhost.cfg 文件是界说监控主机自己的  ,windows.cfg 文件是界说windows 主机的  ,其中包罗了对host 和相关services 的界说  。以是在本次实验中  ,将直接在localhost.cfg 中界说监控主机(Nagios-Server)  ,在windows.cfg中界说windows 主机(Nagios-Windows)  。凭据自己的需要修改其中的相关设置  ,详细如下:

                localhost.cfg

                XML/HTML Code复制内容到剪贴板

                define host{

                use linux-server ; Name of host template to use

                ; This host definition will inherit all variables that are defined

                ; in (or inherited by) the linux-server host template definition.

                host_name Nagios-Server

                alias Nagios-Server

                address 127.0.0.1

                }

                define hostgroup{

                hostgroup_name linux-servers ; The name of the hostgroup

                alias Linux Servers ; Long name of the group

                members Nagios-Server ; Comma separated list of hosts that belong to this group

                }

                define service{

                use local-service ; Name of service template to use

                host_name Nagios-Server

                service_description PING

                check_command check_ping!100.0,20%!500.0,60%

                }

                define service{

                use local-service ; Name of service template to use

                host_name Nagios-Server

                service_description Root Partition

                check_command check_local_disk!20%!10%!/

                }

                define service{

                use local-service ; Name of service template to use

                host_name Nagios-Server

                service_description Current Users

                check_command check_local_users!20!50

                }

                define service{

                use local-service ; Name of service template to use

                host_name Nagios-Server

                service_description Total Processes

                check_command check_local_procs!250!400!RSZDT

                }

                define service{

                use local-service ; Name of service template to use

                host_name Nagios-Server

                service_description Current Load

                check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

                }

                define service{

                use local-service ; Name of service template to use

                host_name Nagios-Server

                service_description Swap Usage

                check_command check_local_swap!20!10

                }

                define service{

                use local-service ; Name of service template to use

                host_name Nagios-Server

                service_description SSH

                check_command check_ssh

                notifications_enabled 0

                }

                define service{

                use local-service ; Name of service template to use

                host_name Nagios-Server

                service_description HTTP

                check_command check_http

                notifications_enabled 0

                }

                windows.cfg

                XML/HTML Code复制内容到剪贴板

                define host{

                use windows-server ; Inherit default values from a template

                host_name Nagios-Windows ; The name we're giving to this host

                alias My Windows Server ; A longer name associated with the host

                address 192.168.1.113 ; IP address of the host

                }

                define hostgroup{

                hostgroup_name windows-servers ; The name of the hostgroup

                alias Windows Servers ; Long name of the group

                }

                define service{

                use generic-service

                host_name Nagios-Windows

                service_description NSClient++ Version

                check_command check_nt!CLIENTVERSION

                }

                define service{

                use generic-service

                host_name Nagios-Windows

                service_description Uptime

                check_command check_nt!UPTIME

                }

                define service{

                use generic-service

                host_name Nagios-Windows

                service_description CPU Load

                check_command check_nt!CPULOAD!-l 5,80,90

                }

                define service{

                use generic-service

                host_name Nagios-Windows

                service_description Memory Usage

                check_command check_nt!MEMUSE!-w 80 -c 90

                }

                define service{

                use generic-service

                host_name Nagios-Windows

                service_description C:\ Drive Space

                check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90

                }

                define service{

                use generic-service

                host_name Nagios-Windows

                service_description W3SVC

                check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

                }

                define service{

                use generic-service

                host_name Nagios-Windows

                service_description Explorer

                check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

                }

                e. services.cfg文件

                此文件默认也不存在  ,需要手动建立  ,services.cfg文件主要用于界说监控的服务和主机资源  ,例如监控http服务、ftp服务、主机磁盘空间、主机系统负载等等  。Nagios-Server 和Nagios-Windows 相关服务已在响应的设置文件中界说  ,以是这里只需要界说Nagios-Linux 相关服务即可  ,这里只界说一个检测是否存活的服务来验证设置文件的准确性 ,其他服务的界说将在后面讲到  。

                复制代码

                代码如下:

                define service{

                use local-service #引用local-service服务的属性值  ,local-service在templates.cfg文件中举行了界说  。

                host_name Nagios-Linux #指定要监控哪个主机上的服务  ,“Nagios-Server”在hosts.cfg文件中举行了界说  。

                service_description check-host-alive #对监控服务内容的形貌  ,以供维护职员参考 。

                check_command check-host-alive #指定检查的下令  。 }

                f. contacts.cfg文件

                contacts.cfg是一个界说联系人和联系人组的设置文件  ,当监控的主机或者服务泛起故障  ,nagios会通过指定的通知方式(邮件或者短信)将信息发给这里指定的联系人或者使用者  。

                复制代码

                代码如下:

                define contact{

                contact_name David #联系人的名称,这个地方不要有空格

                use generic-contact #引用generic-contact的属性信息 ,其中“generic-contact”在templates.cfg文件中举行界说

                alias Nagios Admin

                email david.tang@bsmart.cn

                }

                define contactgroup{

                contactgroup_name ts #联系人组的名称,同样不能空格

                alias Technical Support #联系人组形貌

                members David #联系人组成员 ,其中“david”就是上面界说的联系人  ,若是有多个联系人则以逗号相隔

                }

                g. timeperiods.cfg文件

                此文件只要用于界说监控的时间段 ,下面是一个设置好的实例:

                XML/HTML Code复制内容到剪贴板

                #下面是界说一个名为24x7的时间段  ,即监控所有时间段

                define timeperiod{

                timeperiod_name 24x7 #时间段的名称,这个地方不要有空格

                alias 24 Hours A Day, 7 Days A Week

                sunday 00:00-24:00

                monday 00:00-24:00

                tuesday 00:00-24:00

                wednesday 00:00-24:00

                thursday 00:00-24:00

                friday 00:00-24:00

                saturday 00:00-24:00

                }

                #下面是界说一个名为workhours的时间段  ,即事情时间段 。

                define timeperiod{

                timeperiod_name workhours

                alias Normal Work Hours

                monday 09:00-17:00

                tuesday 09:00-17:00

                wednesday 09:00-17:00

                thursday 09:00-17:00

                friday 09:00-17:00

                }

                h. cgi.cfg文件

                此文件用来控制相关cgi剧本  ,若是想在nagios的web监控界面执行cgi剧本  ,例如重启nagios历程、关闭nagios通知、制止nagios主机检测等 ,这时就需要设置cgi.cfg文件了  。

                由于nagios的web监控界面验证用户为david ,以是只需在cgi.cfg文件中添加此用户的执行权限就可以了 ,需要修改的设置信息如下:

                复制代码

                代码如下:

                default_user_name=david

                authorized_for_system_information=nagiosadmin,david

                authorized_for_configuration_information=nagiosadmin,david

                authorized_for_system_commands=david

                authorized_for_all_services=nagiosadmin,david

                authorized_for_all_hosts=nagiosadmin,david

                authorized_for_all_service_commands=nagiosadmin,david

                authorized_for_all_host_commands=nagiosadmin,david

                i. nagios.cfg文件

                nagios.cfg默认的路径为/usr/local/nagios/etc/nagios.cfg  ,是nagios的焦点设置文件 ,所有的工具设置文件都必须在这个文件中举行界说才气施展其作用  ,这里只需将工具设置文件在Nagios.cfg文件中举行引用即可  。

              12下一页