安装-配置
1、 开始下载:
http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.6.tar.gz
如下图所示,下载free版本的。
安装前准备工作,安装一些lib包:
[root@cache-2root]#yum-yinstallhttpdgccglibcglibc-common #yuminstall-ygccglibcglibc-commongdgd-develxinetdopenssl-devel
2、开始准备nagios安装环境
#groupaddnagcmd useradd-mnagios usermod-a-Gnagcmdnagios 把apache加入到nagcmd组,以便于在通过webInterface操作nagios时能够具有足够的权限: #usermod-a-Gnagcmdapache
3、编译安装准备
[root@cache-2nagios-4.0.6]#./configure--with-command-group=nagios --prefix=/usr/local/nagios--enable-embedded-perl --with-httpd-conf=/usr/local/apache2/conf checkingforaBSD-compatibleinstall.../usr/bin/install-c checkingbuildsystemtype...x86_64-unknown-linux-gnu checkinghostsystemtype...x86_64-unknown-linux-gnu checkingforgcc...gcc checkingforCcompilerdefaultoutputfilename...a.out checkingwhethertheCcompilerworks...yes checkingwhetherwearecrosscompiling...no ............................. HTMLURL:http://localhost/nagios/ CGIURL:http://localhost/nagios/cgi-bin/ Traceroute(usedbyWAP):/bin/traceroute Reviewtheoptionsaboveforaccuracy.Iftheylookokay,type'makeall'tocompilethemainprogramandCGIs.
4 开始make安装
4.1 make all
[root@cache-2nagios-4.0.6]#makeall cd./base&&make make[1]:Enteringdirectory`/root/nagios-4.0.6/base' gcc-Wall-I..-g-O2-DHAVE_CONFIG_H-DNscore-c-onagios.onagios.c gcc-Wall-I..-g-O2-DHAVE_CONFIG_H-DNscore-c-obroker.obroker.c gcc-Wall-I..-g-O2-DHAVE_CONFIG_H-DNscore-c-onebmods.onebmods ......................... FormoreinformationonobtainingsupportforNagios,visit: http://support.nagios.com ************************************************************* Enjoy.
4.2 make install
cd./base&&makeinstall make[1]:Enteringdirectory`/root/nagios-4.0.6/base' makeinstall-basic make[2]:Enteringdirectory`/root/nagios-4.0.6/base' ..................................................... make[2]:Enteringdirectory`/root/nagios-4.0.6/cgi' forfilein*.cgi;do\ /usr/bin/strip/usr/local/nagios/sbin/$file;\ done
4.3 make install-config
[root@cache-2nagios-4.0.6]#makeinstall-config /usr/bin/install-c-m775-onagios-gnagios-d/usr/local/nagios/etc /usr/bin/install-c-m775-onagios-gnagios-d/usr/local/nagios/etc/objects /usr/bin/install-c-b-m664-onagios-gnagiossample-config/nagios.cfg/usr/local/nagios/etc/nagios.cfg .................................................... /usr/bin/install-c-b-m664-onagios-gnagiossample-config/template-object/printer.cfg/usr/local/nagios/etc/objects/printer.cfg /usr/bin/install-c-b-m664-onagios-gnagiossample-config/template-object/switch.cfg/usr/local/nagios/etc/objects/switch.cfg ***Configfilesinstalled***
4.4 make install-commandmode
[root@cache-2nagios-4.0.6]#makeinstall-commandmode /usr/bin/install-c-m775-onagios-gnagios-d/usr/local/nagios/var/rw chmodg+s/usr/local/nagios/var/rw ***Externalcommanddirectoryconfigured*** Remember,theseare*SAMPLE*configfiles.You'llneedtoread thedocumentationformoreinformationonhowtoactuallydefine services,hosts,etc.tofityourparticularneeds.
4.5 make install-init
[root@cache-2nagios-4.0.6]#makeinstall-init /usr/bin/install-c-m755-d-oroot-groot/etc/rc.d/init.d /usr/bin/install-c-m755-oroot-grootdaemon-init/etc/rc.d/init.d/nagios ***Initscriptinstalled***
[root@cache-2nagios-4.0.6]# 加到启动项里面去: #chkconfig--addnagios #chkconfig--level35nagioson #chkconfig--listnagios
检查主机配置文件是否正确:
/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg
5. Check安装是否正确:
5.1说明:
切换目录到安装路径(这里是/usr/local/nagios),看是否存在etc、bin、sbin、share、var这五个目录,如果存在则可以表明程序被正确的安装到系统了。Nagios各个目录用途说明如下:
bin Nagios可执行程序所在目录
etc Nagios配置文件所在目录
sbin Nagios CGI文件所在目录,也就是执行外部命令所需文件所在的目录
share Nagios网页文件所在的目录
libexec Nagios外部插件所在目录
var/archives Nagios日志自动归档目录
var/rw用来存放外部命令文件的目录
5.2 check
[root@cache-2nagios-4.0.6]#cd/usr/local/nagios [root@cache-2nagios]#ll 总用量24 drwxrwxr-x.2nagiosnagios40965月515:31bin drwxrwxr-x.3nagiosnagios40965月515:32etc drwxrwxr-x.2nagiosnagios40965月515:31libexec drwxrwxr-x.2nagiosnagios40965月515:31sbin drwxrwxr-x.10nagiosnagios40965月515:31share drwxrwxr-x.5nagiosnagios40965月515:32var
5.3 安装nagios插件
[root@cache-2~]#wgethttp://nagios-plugins.org/download/nagios-plugins-2.0.tar.gz [root@cache-2~]#tar-xvfnagios-plugins-2.0.tar.gz [root@cache-2~]#cdnagios-plugins-2.0 [root@cache-2~]#./configure--with-nagios-user=nagios--with-nagios-group=nagios--prefix=/usr/local/nagios--with-MysqL [root@cache-2~]#make&&makeinstall
6、 安装配置apache和PHP
(1)安装apache
下载wgethttp://archive.apache.org/dist/httpd/httpd-2.2.23.tar.gz tar-xvfhttpd-2.4.7.tar.gz cdhttpd-2.4.7 ./configure--prefix=/usr/local/apache2 make&&makeinstall
(2)安装PHP版本
wgethttp://cn2.PHP.net/distributions/PHP-5.4.26.tar.gz tar-xvfPHP-5.4.26.tar.gz cdPHP-5.4.26 ./configure--prefix=/usr/local/PHP--with-apxs2=/usr/local/apache2/bin/apxs #报了个错少了个插件libxml2-devel.x86_64 make&&makeinstall
(3)配置apache
Apache的配置文件在/usr/local/apache2/conf/httpd.conf,vim打开 将 Userdaemon Groupdaemon 修改成: Usernagios Groupnagios 将 <IfModuledir_module> DirectoryIndexindex.html </IfModule> 修改成: <IfModuledir_module> DirectoryIndexindex.htmlindex.PHP AddTypeapplication/x-httpd-PHP.PHP </IfModule> 为了安全起见:nagios的web监控页面需要经过授权才能访问,这需要增加验证配置,即在httpd.conf文件最后添加如下信息: #settingfornagios ScriptAlias/nagios/cgi-bin"/usr/local/nagios/sbin" <Directory"/usr/local/nagios/sbin"> AuthTypeBasic OptionsExecCGI AllowOverrideNone Orderallow,deny Allowfromall AuthName"NagiosAccess" #用于此目录访问身份验证的文件 AuthUserFile/usr/local/nagios/etc/htpasswd Requirevalid-user </Directory> Alias/nagios"/usr/local/nagios/share" <Directory"/usr/local/nagios/share"> AuthTypeBasic OptionsNone AllowOverrideNone Orderallow,deny Allowfromall AuthName"nagiosAccess" AuthUserFile/usr/local/nagios/etc/htpasswd Requirevalid-user </Directory>
(4)创建apache目录验证文件
在上面的配置中,指定了目录验证文件htpasswd,下面要创建这个文件:
[root@cache-2PHP-5.4.26]#/usr/local/apache2/bin/htpasswd-c/usr/local/nagios/etc/htpasswddavid Newpassword: Re-typenewpassword: Addingpasswordforuserdavid
[root@cache-2PHP-5.4.26]#cat/usr/local/nagios/etc/htpasswd david:$apr1$Pf9XIJjd$m5hR2vw70MlqwrChgN7zc/
启动apache服务:
/usr/local/apache2/bin/apachectlstart servicenagiosstart
http://xxxx.xx:xx/nagios/,可以打开了,如下所示:
六、配置Nagios
Nagios 主要用于监控一台或者多台本地主机及远程的各种信息,包括本机资源及对外的服务等。默认的Nagios 配置没有任何监控内容,仅是一些模板文件。若要让Nagios 提供服务,就必须修改配置文件,增加要监控的主机和服务,下面将详细介绍。
6.1 默认配置文件介绍
Nagios 安装完毕后,默认的配置文件在/usr/local/nagios/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 主机的一个配置文件模板,默认没有启用此文件 |
6.2 配置文件之间的关系
在nagios的配置过程中涉及到的几个定义有:主机、主机组,服务、服务组,联系人、联系人组,监控时间,监控命令等,从这些定义可以看出,nagios各个配置文件之间是互为关联,彼此引用的。
成功配置出一台nagios监控系统,必须要弄清楚每个配置文件之间依赖与被依赖的关系,最重要的有四点:
第一:定义监控哪些主机、主机组、服务和服务组;
第二:定义这个监控要用什么命令实现;
第三:定义监控的时间段;
第四:定义主机或服务出现问题时要通知的联系人和联系人组。
6.3 配置Nagios
为了能更清楚的说明问题,同时也为了维护方便,建议将nagios各个定义对象创建独立的配置文件:
创建hosts.cfg文件来定义主机和主机组
创建services.cfg文件来定义服务
用默认的contacts.cfg文件来定义联系人和联系人组
用默认的commands.cfg文件来定义命令
用默认的timeperiods.cfg来定义监控时间段
contacts.cfg文件
@H_763_404@contacts.cfg是一个定义联系人和联系人组的配置文件,当监控的主机或者服务出现故障,nagios会通过指定的通知方式(邮件或者短信)将信息发给这里指定的联系人或者使用者。definecontact{ contact_nameDavid#联系人的名称,这个地方不要有空格 usegeneric-contact#引用generic-contact的属性信息,其中“generic-contact”在templates.cfg文件中进行定义 aliasNagiosAdmin emaildavid.tang@bsmart.cn } definecontactgroup{ contactgroup_namets#联系人组的名称,同样不能空格 aliasTechnicalSupport#联系人组描述 membersDavid#联系人组成员,其中“david”就是上面定义的联系人,如果有多个联系人则以逗号相隔 }
templates.cfg文件
definecontact{ namegeneric-contact;联系人名称 service_notification_period24x7;当服务出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义 host_notification_period24x7;当主机出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义 service_notification_optionsw,u,c,r;这个定义的是“通知可以被发出的情况”。w即warn,表示警告状态,u即unknown,表示不明状态; ;c即criticle,表示紧急状态,r即recover,表示恢复状态; ;也就是在服务出现警告状态、未知状态、紧急状态和重新恢复状态时都发送通知给使用者。 host_notification_optionsd,r;定义主机在什么状态下需要发送通知给使用者,d即down,表示宕机状态; ;u即unreachable,表示不可到达状态,r即recovery,表示重新恢复状态。 service_notification_commandsnotify-service-by-email;服务故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件; ;其中“notify-service-by-email”在commands.cfg文件中定义。 host_notification_commandsnotify-host-by-email;主机故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件; ;其中“notify-host-by-email”在commands.cfg文件中定义。 register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALCONTACT,JUSTATEMPLATE! } definehost{ namegeneric-host;主机名称,这里的主机名,并不是直接对应到真正机器的主机名; ;乃是对应到在主机配置文件里所设定的主机名。 notifications_enabled1;Hostnotificationsareenabled event_handler_enabled1;Hosteventhandlerisenabled flap_detection_enabled1;Flapdetectionisenabled failure_prediction_enabled1;Failurepredictionisenabled process_perf_data1;其值可以为0或1,其作用为是否启用Nagios的数据输出功能; ;如果将此项赋值为1,那么Nagios就会将收集的数据写入某个文件中,以备提取。 retain_status_information1;Retainstatusinformationacrossprogramrestarts retain_nonstatus_information1;Retainnon-statusinformationacrossprogramrestarts notification_period24x7;指定“发送通知”的时间段,也就是可以在什么时候发送通知给使用者。 register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALHOST,JUSTATEMPLATE! } defineservice{ namegeneric-service;定义一个服务名称 active_checks_enabled1;Activeservicechecksareenabled passive_checks_enabled1;Passiveservicechecksareenabled/accepted parallelize_check1;Activeservicechecksshouldbeparallelized; ;(disablingthiscanleadtomajorperformanceproblems) obsess_over_service1;Weshouldobsessoverthisservice(ifnecessary) check_freshness0;DefaultistoNOTcheckservice'freshness' notifications_enabled1;Servicenotificationsareenabled event_handler_enabled1;Serviceeventhandlerisenabled flap_detection_enabled1;Flapdetectionisenabled failure_prediction_enabled1;Failurepredictionisenabled process_perf_data1;Processperformancedata retain_status_information1;Retainstatusinformationacrossprogramrestarts retain_nonstatus_information1;Retainnon-statusinformationacrossprogramrestarts is_volatile0;Theserviceisnotvolatile check_period24x7;这里的check_period告诉nagios检查服务的时间段。 max_check_attempts3;nagios对服务的最大检查次数。 normal_check_interval5;此选项是用来设置服务检查时间间隔,也就是说,nagios这一次检查和下一次检查之间所隔的时间; ;这里是5分钟。 retry_check_interval2;重试检查时间间隔,单位是分钟。 contact_groupsts;指定联系人组 notification_optionsw,r;这个定义的是“通知可以被发出的情况”。w即warn,表示警告状态; ;u即unknown,表示不明状态; ;c即criticle,表示紧急状态,r即recover,表示恢复状态; ;也就是在服务出现警告状态、未知状态、紧急状态和重新恢复后都发送通知给使用者。 notification_interval10;Re-notifyaboutserviceproblemseveryhour notification_period24x7;指定“发送通知”的时间段,也就是可以在什么时候发送通知给使用者。 register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALSERVICE,JUSTATEMPLATE! } defineservice{ namelocal-service;Thenameofthisservicetemplate usegeneric-service;Inheritdefaultvaluesfromthegeneric-servicedefinition max_check_attempts4;Re-checktheserviceupto4timesinordertodetermineitsfinal(hard)state normal_check_interval5;Checktheserviceevery5minutesundernormalconditions retry_check_interval1;Re-checktheserviceeveryminuteuntilahardstatecanbedetermined register0;DONTREGISTERTHISDEFINITION-ITSNOTAREALSERVICE,JUSTATEMPLATE! }
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
重启nagios就可以了
本文转载自:
http://blog.csdn.net/hanzheng260561728/article/details/51504958
http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html