首页 运维 网络学院 查看内容

nagios配置文档

2011-6-30 13:43 500 0

摘要: 关于nagios Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。Nagios最初被设计为在linux系统之上运行,然而...
关键词: nbsp nagios 文件 配置 service local usr check cfg 监控

关于nagios Nagios是一款用于系统和网络监控的应用程序。它可以在你设定的条件下对主机和服务进行监控,在状态变差和变好的时候给出告警信息。Nagios最初被设计为在linux系统之上运行,然而它同样可以在类Unix的系统之上运行。Nagios更进一步的特征包括:1.监控网络服务(SMTP、POP3、HTTP、NNTP、PING等);2.监控主机资源(处理器负荷、磁盘利用率等);3.简单地插件设计使得用户可以方便地扩展自己服务的检测方法; 4.并行服务检查机制; 5.具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰 主机宕机或不可达状态;  6.当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式); 7.具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;  8.自动的日志回滚; 9.可以支持并实现对主机的冗余监控;  10.可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;Nagios通常由一个主程序(Nagios)、一个插件程序(Nagios-plugins)和四个可选的ADDON(NRPE、NSCA、 NSClient++和NDOUtils)组成。Nagios的监控工作都是通过插件实现的,因此,Nagios和Nagios-plugins是服务 器端工作所必须的组件。而四个ADDON中(1)NRPE:用来在监控的远程Linux/Unix主机上执行脚本插件以实现对这些主机资源的监控(2)NSCA:用来让 被监控的远程Linux/Unix主机主动将监控信息发送给Nagios服务器(这在冗余监控模式中特 别要用到)(3)NSClient++:用来监控 Windows主机时安装在Windows主机上的组件(4)NDOUtils:则用来将Nagios的配置信息和各event产生的数据存入数据库,以实现 这些数据的快速检索和 处理 这四个ADDON(附件)中,NRPE和NSClient++工作于客户端,NDOUtils工作于服务器端,而NSCA则需要同时安 装在服务器端和客户端Nagios所需要的运行条件是机器必须可以运行Linux(或是Unix变种)并且有C语言编译器 。你必须正确地配置TCP/IP协议栈以使大多数的服务检测可以通过网络得以进行。你需要但并非必须正确地配置Nagios里的CGIs程序,而一旦你要使用CGI程序时,你必须要安装以下这些软件...1.一个WEB服务(最好是Apache)2.Thomas Boutell制作的gd库版本应是1.6.3或更高(在CGIs程序模块statusmap和trends这两个模块里需要这个 库)    Nagios版权遵从于由自由软件基金会所发布的GNU版权协议第二版。有关GNU协议请查阅自由软件基金会网站 。该版权协议允许你在某些条件下可以复制、分发并且或者是修改它。可以在Nagios软件发行包里阅读版权文件 LICENSE或是在网站上阅读在线版权文件以获取更多信息。安装前的准备工作(1)解决安装Nagios的依赖关系:确认你安装好的linux系统上已经安装如下软件包再继续。Apache  GCC编译器GD库与开发库可以用yum命令来安装这些软件包,键入命令:yum –y install httpd gcc glibc glibc‐common gd gd‐devel(2)所需要安装组件:服务端所用的安装包为 nagios nagios-plugins ndoutils(非必须)linux客户端 nrpewindows客户端 NSClient++(3)进行selinux设置,或者关闭selinux开始搭建:(1)添加nagios运行所需要的用户和组: # groupadd nagcmd# useradd -m nagios# usermod -a -G nagcmd nagios 把apache加入到nagcmd组,以便于在通过web Interface操作nagios时能够具有足够的权限:# usermod -a -G nagcmd apache 2、编译安装nagios: # tar zxf nagios-3.1.2.tar.gz # cd nagios-3.1.2# ./configure --with-command-group=nagcmd --enable-event-broker # make all# make install# make install-init# make install-config# make install-commandmode验证程序是否被正确安装。切换目录到安装路径(这里是/usr/local/nagios),看是否存在 etc、bin、 sbin、 share、 var这五个目录,如果存在则可以表明程序被正确的安装到系统了。后表是五个目录功能的简要说明:bin  Nagios执行程序所在目录,nagios文件即为主程序                                 etc Nagios配置文件位置,初始安装完后,只有几个*.cfg-sample文件3与2区别 对象配置文件都在etc/objects目录下sbin Nagios Cgi文件所在目录,也就是执行外部命令所需文件所在的目录Share Nagios网页文件所在的目录Var Nagios日志文件、spid 等文件所在的目录var/archives Empty directory for the archived logsvar/rw  Empty directory for the external command file为email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:# vi /usr/local/nagios/etc/objects/contacts.cfg email        nagios@localhost       #这个是默认设置 配置WEB接口方法一:在httpd的配置文件目录(conf.d)中创建Nagios的Web程序配置文件:# make install-webconf创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin方法二:在httpd.conf最后添加如下内容:#setting for nagios 20110629#setting by bbs.linuxtone.orgScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin<Directory "/usr/local/nagios/sbin">Options ExecCGIAllowOverride NoneOrder allow,denyAllow from allAuthName "Nagios Access"AuthType BasicAuthUserFile /usr/local/nagios/etc/htpasswd//用于此目录访问身份验证的文件Require valid-user</Directory>Alias /nagios /usr/local/nagios/share<Directory "/usr/local/nagios/share">Options NoneAllowOverride NoneOrder allow,denyAllow from allAuthName "Nagios Access"AuthType BasicAuthUserFile /usr/local/nagios/etc/htpasswd//用于此目录访问身份验证的文件Require valid-user</Directory> 创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin查看认证文件的内容 less /usr/local/nagios/etc/htpasswd  nagiosadmin:OmWGEsBnoGpIc 前半部分是用户名test,后面是加密后的密码本例添加的是nagiosadmin用户名,需要改 cgi.cfg 配置文件,允许nagiosadmin用户 authorized_for_system_information=nagiosadminauthorized_for_configuration_information=nagiosadminauthorized_for_system_commands=nagiosadminauthorized_for_all_services=nagiosadminauthorized_for_all_hosts=nagiosadminauthorized_for_all_service_commands=nagiosadminauthorized_for_all_host_commands=nagiosadmin如果有多用户,请用逗号格开 以上过程配置结束以后需要重新启动httpd:# service httpd restart 3、编译、安装nagios-plugins nagios的所有监控工作都是通过插件完成的,因此,在启动nagios之前还需要为其安装官方提供的插件。 # tar zxf nagios-plugins-1.4.13.tar.gz # cd nagios-plugins-1.4.13# ./configure --with-nagios-user=nagios --with-nagios-group=nagios# make# make install 4、配置并启动NagiosNagios的主配置文件为/usr/local/nagios/etc/nagios.cfg 对象配置文件 格式:cfg_file=<file_name>样例:cfg_file=/usr/local/nagios/etc/objects/contacts.cfg cfg_file=/usr/local/nagios/etc/objects/commands.cfg 如添加一个新的主机配置 linuxtone.cfg  cfg_file=/usr/local/nagios/etc/linuxtone.cfg  nagios用户及组 nagios_user=nagios  nagios_group=nagios  通知选项 Enable_notifications=1   该选项决定了Nagios在初始化启动或重启动时是否要送出通知。如果这个选项不使能,Nagios将不会向任何主 机或服务送出通知。注意,如果你打开了状态保持选项,Nagios在其启动和重启时将忽略此设置并用这个选项的 最近的一个设置(已经保存在状态保持文件)的值来工作,除非你取消了use_retained_program_state选项。如果 你想在使能状态保存选项(并且是use_retained_program_state使能)的情况下更改这个选项,你必须要通过合适 的外部命令或是通过Web接口来修改它。选项的取值可以是: 0 = 关闭通知 1 = 打开通知(默认) 对象配置文件选项cfg_file=/usr/local/nagios/etc/objects/contacts.cfg //联系人/组配置文件cfg_file=/usr/local/nagios/etc/objects/localhost.cfg //本机配置文件cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg //监视时段配置文件cfg_file=/usr/local/nagios/etc/objects/commands.cfg //监视脚本配置  cfg_file=/usr/local/nagios/etc/objects/templates.cfg //监视服务,报警配置 cfg_file=/usr/local/nagios/etc/objects/switch.cfg //监视路由 cfg_file=/usr/local/nagios/etc/objects/windows.cfg //监视微软  (1)把nagios添加为系统服务并将之加入到自动启动服务队列:# chkconfig --add nagios# chkconfig nagios on (2)检查其主配置文件的语法是否正确:# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg (3)如果上面的语法检查没有问题,接下来就可以正式启动nagios服务了:# service nagios start (4)配置selinux如果您的系统开启了selinux服务,则默认为拒绝nagios web cgi程序的运行。您可以通过下面的命令来检查您 的系统是否开启了selinux:#getenforce 如果上面命令的结果显示开启了selinux服务,您可以通过下面的命令暂时性的将其关闭:#setenforce 0 如果您想在以后完全关闭selinux,可以通过编辑/etc/sysconfig/selinux文件,将其中的selinux后面的 值“force”修改为“disable”即可。 当然,您也可以通过以下方式将nagios的CGI程序运行于SELinux/targeted模式而不用关闭selinux:# chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin# chcon -R -t httpd_sys_content_t /usr/local/nagios/share (5)通过web界面查看nagios:http://your_nagios_IP/nagios 登录时需要指定前面设定的web认证帐号和密码。 ################################################################## windos端1.被监控端安装NSClient++-0.3.8-Win32.msi2.安装完成后修改配置文件NSC.ini把需要的库都打开 3.在监控服务器上修改nagios配置文件nagios.cfg去掉注释cfg_file=/usr/local/nagios/etc/objects/windows.cfg定义windows.cfgdefine host{        use             windows-server  ; Inherit default values from a template        host_name       winserver       ; The name we're giving to this host        alias           My Windows Server       ; A longer name associated with the host        address         192.168.0.191   ; 你主机的IP        } #################################################################linux端 被监控端先添加nagios用户useradd nagios为了安装nrpe,先安装nagios-plugins-1.4.15.tar.gz 插件# tar zxf nagios-plugins-1.4.15.tar.gz # cd nagios-plugins-1.4.15# ./configure --with-nagios-user=nagios --with-nagios-group=nagios# make# make install tar -zxvf nrpe-2.12.tar.gzcd nrpe-2.12.tar.gz./configure  (会自动加载SSL)#如果后面make报错,加如下参数./configure --enable-ssl --with-ssl-lib=/usr/lib/(当然前提要有openssl)make allmake install-pluginmake install-daemonmake install-daemon-config 4.配置nrpe信息vim /usr/local/nagios/etc/nrpe.cfgallowed_hosts=127.0.0.1  //允许监控的IP/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d   服务端3.安装NRPEcd nagios-nrpe_2.8.1./configure   #默认自动添加了openssl#因为传送过程要加密,如果后面make报错,加如下参数rpm -qa| grep sslopenssl-devel-0.9.7a-43.17.el4_6.1rpm -ql openssl-devel-0.9.7a-43.17.el4_6.1 | more./configure --enable-ssl --with-ssl-lib=/lib/(当然前提要有openssl)make allmake install-plugin 4.commands.cfg定义外部构件nrpevi /usr/local/nagios/etc/objects/commands.cfg#添加#check nrpedefine command{        command_name check_nrpe        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$        }定义 mylinux.cfgdefine host{           use             linux-server          host_name     mylinux          alias            mylinux          address        192.168.0.27(客户端IP既被监控的IP)        }define service{        use                      generic-service        host_name             mylinux        service_description     check-swap        check_command        check_nrpe!check_swap               }define service{        use                      generic-service        host_name             mylinux        service_description     check-load       check_command         check_nrpe!check_load               }define service{        use                      generic-service        host_name             mylinux       service_description     check-disk       check_command        check_nrpe!check_had1               }define service{        use                      generic-service        host_name             mylinux       service_description     check-users       check_command        check_nrpe!check_users               }define service{        use                    generic-service        host_name           mylinux        service_description  otal_procs        check_command     check_nrpe!check_total_procs} #################################################################################define service{        use                    generic-service        host_name           mylinux        service_description  httpd        check_command     check_http! -H 192.168.0.27} ################################################################################################## #########nagios 使用FetionRobot短信/msn在线报警  1、安装fetion 官网地址:http://www.it‐adv.net/ 支持库安装: 需要Glibc2.4以上的版本  2、安装过程 下载包地址 LINUX X86/32(REDHAT ES4X32):支持库 最新程序fetion20080522004‐\r linrh4.tar.gz 其中支持库和安装包内容如下: # tar zxvf libraryrh4x32.tar.gz  libACE‐5.6.5.so libACE_SSL‐5.6.5.solibcrypto.so.0.9.7alibssl.so.0.9.7a # tar zxvf fetion20080522004‐linrh4.tar.gz  我将fetion放在/../nagios/libexec/sms 把支持库复制到/usr/lib/目录下,并作软链接如下: cp lib*so* /usr/lib/ ln ‐s /usr/lib/libcrypto.so.0.9.7a /usr/lib/libcrypto.so.4 ln ‐\r s /usr/lib/libssl.so.0.9.7a /usr/lib/libssl.so.4 设定lib库配置文件 #vi /etc/ld.so.conf #增加一条 /usr/lib/ #保存退出后,执行 #ldconfig  2、测试安装: #cd install # ./fetion ‐h  Usage:     fetion ‐h         ‐h: help     fetion ‐u mobile ‐p pwd [‐ batchfile] [‐EN] [‐d]    fetion ‐u mobile ‐p pwd [‐ batchfile] [‐EN] [‐d]         ‐u: Fetion user account(only supports mobile phone No.)         ‐p: Account password         ‐: Batch file name         ‐d: Debug and write logs to [mobile]‐debug.log         ‐EN: English 3、实际测试 测试帐号:13888888888 密码:123456 (如果密码中含有特殊字符,请使用单引号) 如果发送成功。那么fetion安装过程就OK了 3、与nagios 组合及perl脚本fetion 组合nagios  1、Fetion以后台方式启动:nohup /usr/local/nagios/libexec/sms/fetion ‐u 13888888888 ‐\r p 123456 >/dev/null 2>1 & 2、写一个perl脚本 Sms.pl (/../nagios/libexec/sms/sms.pl) #!/usr/bin/perl ‐w  use strict; use Data::Dumper; use LWP::UserAgent; my $mesg = shift; $mesg =~ s/\//|/g; my @number = (接收手机号,接收手机号); foreach my $number ( @number ) {         #print "send sms to $number ";         my $send_sms_url = "http://localhost:40000/API/buddy/sms/" . $number . "/"  . $mesg . '?rand=0.7394060082921254';         my $request = HTTP::Request‐>new(GET => $send_sms_url);         my $ua = LWP::UserAgent‐>new;         $ua‐>timeout( 5 );         $ua‐>agent ("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; Maxthon 2.0)");         my $response = $ua‐>request($request);         my $content = $response‐>content(); }  4、nagios配置  contacts.cfg添加: define contact{         contact_name                    sms‐members         use                             sms‐mail‐contact         alias                           Nagios Admin SMS         pager                          138888888888        }  define contactgroup{         contactgroup_name       admins‐and‐lijs         alias                   Nagios Administrators         members                 sms‐members         } 修改报警选项:templates.cfg define contact{ name generic‐contact                 service_notification_period     24x7    host_notification_period    24x7          service_notification_options    w,u,c,r,f,s  host_notification_options       d,u,r,f,s service_notification_commands notify‐service‐y‐email; service
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部