Nagios安装与配置详解_第1页
Nagios安装与配置详解_第2页
Nagios安装与配置详解_第3页
Nagios安装与配置详解_第4页
Nagios安装与配置详解_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档Nagios学习笔记之(一)最初搭建 2012-07-17 13:05:08标签:linux 监控 nagios cacti 版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 Nagios学习笔记之一最初搭建一、简介:Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。二、搭建过程:OS:CentOS 5.5 x86_64(最小化即可)Nagios主程序:nagios-cn-3.4.1Nagios插件:nagios-plugins-1.4.15.tar.gz2.1安装前:2.1.1安装依赖包,下载源程序包1. #cd/etc/yum.repos.d/ 2. #rm-fr./* 3. #wgetwget/.help/CentOS-Base-163.repo 4. #yummakecache#删除系统自带的yum源,下载网易的网络源并更新缓存1. #yum-yinstallgccglibcglibc-commongdgd-develhttpd#安装必须的依赖包1. #wget/sourceforge/nagios/nagios-3.4.1.tar.gz2. #wget/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz#下载nagios主程序以及插件程序2.1.2正式安装:1. #groupaddnagcmd 2. #useradd-Gnagcmdnagios 3. #usermod-Gnagcmdapache#创建一个用户组名为nagcmd用于从Web接口执行外部命令。将nagios用户和apache用户都加到这个组中。1. #tarzxfnagios-3.4.1.tar.gz 2. #cdnagios 3. #./configure-prefix=/usr/local/nagios -with-command-group=nagcmd4. #解压程序包,并进行预编译前的配置(默认用户就是nagios,所以只需指定组) 5. #makeall#编译Nagios程序包源码 6. #makeinstall#安装二进制运行程序 7. #makeinstall-init#初始化脚本 8. #makeinstall-config#配置文件样本 9. #makeinstall-commandmode#设置运行目录权限 10. #makeinstall-webconf#安装Nagios的WEB配置文件到Apache的conf.d目录下#htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin#创建一个nagiosadmin的用户用于登录Nagios的web界面。#service httpd restart#重启apache使服务生效1. #tarzxfnagios-plugins-1.4.15.tar.gz 2. #cdnagios-plugins-1.4.15 3. #./configure-prefix=/usr/local/nagios -with-nagios-user=nagios-with-nagios-group=nagios 4. #make&makeinstall 5. #编译安装nagios插件#chkconfig -add nagios#chkconfig nagios on#chkconfig httpd on#添加系统服务并设开机自启#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg#验证配置文件是否正确,如下图则没问题:#service nagios start#启动服务#vim /root/.bashrc#添加一条:alias check=/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg#source /root/.bashrc#在以后的配置和调试过程中,经常需要检查配置文件,所以加条别名为了方便#备注:注意防火墙和Selinux(都关了即可)输入http:/IP/nagios,输入前面设置的用户名密码后,如下图即安装成功。三、安装后问题及解决办法问题1:打开http:/ip/nagios,输入口令验证后出现“You dont have permission to access /nagios/ on this server”解决方法:没装php导致,yum -y install php,装好,重启httpd和nagios问题2:如果提示“Whoops! Error: Could not read object configuration data! ”,这是因为没有启动nagios后台进程,执行以下命令解决方法:/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg问题3:Nagios显示类似错误:HTTP WARNING: HTTP/1.1 403 Forbidden - 5240 bytes in 0.002 second response time。该错误表明在apache web根目录没有index.html文件。解决方法:在web根目录(如:/var/www/html/目录)建立index.html文件,重启apache和nagios即可。问题4:安装nagios-plugins,make时出现如下报错:make2: * check_http.o Error 1make2: Leaving directory /mnt/nagios-plugins-1.4.13/pluginsmake1: * all-recursive Error 1make1: Leaving directory /mnt/nagios-plugins-1.4.13make: * all Error 2解决办法:yum -y install openssl openssl-devel,然后重新执行./configure,再编译安装。Nagios学习笔记之(二)监控部署 2012-08-02 00:01:38标签:linux 监控 nagios cacti 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/3964396/950826 Nagios学习笔记之(二)监控部署前言:本篇致力于初涉Nagios的同学,老鸟绕行!前面已经把最基本的Nagios以及插件安装好了,现在只能对本机进行监控,要想监控远程主机,就必须通过类似于NRPE的软件来实现。监控端和被监控端都要装nrpe,因为靠此来通信,nrpe是通过ssl来通信的,所以比较安全。用到ssl就得装相关支持的包:yum -y install openssl openssl-devel现在开始来安装nrpe:以下操作在监控端进行:首先把下载下来的nrpe-2.12.tar解压(自行网上下载)1. #tarzxfnrpe.2.12.tar2. #cdnrpe-2.123. #./configure4. #makeall5. #makeinstall-plugin安装完成后会在/usr/local/nagios/libexec/下生成check_nrpe文件下面定义一个check_nrpe监控命令(默认装好以后没有被nagios调用)顺带说下监控整体思想:1.要定义监控的主机或服务2.执行什么命令来监控3.出现问题要通知的人4.采用什么方式通知,邮件|短信 -后续再细说修改/usr/local/nagios/etc/commands.cfg(定义命令的文件),添加如下内容:1. definecommand2. command_namecheck_nrpe3. command_line$USER1$/check_nrpe-H$HOSTADDRESS$-c$ARG1$4. 至此监控端暂时完事。command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -t 30 -c $ARG1$ $ARG2$以下操作在被监控端进行:需要两个文件:nagios-plugins-1.4.15.tar (nrpe依赖于这个插件)nrpe-2.12.tar (远程通信)首先创建安装用户:useradd -s /sbin/nologin nagios解压安装Nagios插件:1. #tarxzfnagios-plugins-1.4.15.tar.gz2. #cdnagios-plugins-1.4.153. #./configure-prefix=/usr/local/nagios -with-nagios-user=nagios-with-nagios-group=nagios4. #make&makeinstall解压安装nrpe:1. #tarzxfnrpe.2.12.tar2. #cdnrpe-2.123. #./configure4. #makeall5. #makeinstall-plugin6. #makeinstall-daemon7. #makeinstall-daemon-config8. #makeinstall-xinetd安装完毕。接下来把nrpe交由xinetd来监听(好处:修改nrpe的配置文件不需要重启服务)vi /etc/xinetd.d/nrpe将only_from = 后面加上监控端的地址确保/etc/services有nrpe 5666/tcp #NRPE这一行,没有则添加重启xinetd服务,至此被监控端配置完毕。service xinetd restart接下来测试下连通性,在监控端执行:/usr/local/nagios/libexec/check_nrpe -H 被监控端的地址如能显示 “NRPE v2.12”,表明NRPE可以和被监控端正常通信。部署前的工作基本OK了。下面来说说,服务器上具体是怎么部署监控的。首先来看下Nagios的目录结构bin #存放执行文件,如nagios,以及后续安装的扩展程序etc #存放配置文件,如nagios.cfg主配文件,平时部署维护操作最多的文件夹include #存放引用文件,默认为空libexec #存放执行命令,如check_load等,里面有很多命令,需要熟练掌握sbin #存放一些cgi,平时一般不用动share #存放一些网页文件,平时一般不用动var #存放一些产生的数据文件,平时一般不用动比较重要的就是etc和libexec。下面说下如何定义一台主机以及主机上的服务:首先修改:/usr/local/nagios/etc/nagios.cfg去掉cfg_dir=/usr/local/nagios/etc/servers前面的注释mkdir /usr/local/nagios/etc/servers将来新建的主机以及服务都可以存放在这下面,建议把主机和服务写在一个配置文件中,按主机来划分,便于管理。例如:要监控一台http服务器可以在servers下面新建一个以cfg结尾的文件vim simple-http.cfg1. definehost#定义一个主机2. uselinux-server#引用etc/objects/中的linux-server配置(后续细说)3. host_namehttp#定义一个主机名,并不是http的实际主机名,任意即可,但要继续,后面要调用4. aliashttp#定义一个别名5. address#指定地址6. 7. defineservice#定义一个服务8. usegeneric-service#引用etc/objects/templates.cfg中的generic-service配置(后续细说)9. host_namehttp#引用主机名10. service_descriptionCPULoad#定义监控服务名,就是在web网页上显示的服务名11. check_commandcheck_nrpe!check_load#定义要执行的命令:让check_nrpe调用被监控端的check_load命令执行12. #以下类似(备注:每条定义的命令都必须在etc/nrpe.cfg中明确定义)13. defineservice14. usegeneric-service15. host_namehttp16. service_descriptionCurrentUsers17. check_commandcheck_nrpe!check_users18. 19. defineservice20. usegeneric-service21. host_namehttp22. service_descriptionDiskFreeSpace/23. check_commandcheck_nrpe!check_root24. 25. defineservice26. usegeneric-service27. host_namehttp28. service_descriptionTotalProcesses29. check_commandcheck_nrpe!check_total_procs30. 31. defineservice32. usegeneric-service33. host_namehttp34. service_descriptionZombieProcesses35. check_commandcheck_nrpe!check_zombie_procs36. 保存以后,check一下,没问题重载nagios的配置文件service nagios reload登录网页后就会看见定义监控的项目了。后续:配置文件详解Nagios学习笔记之(三)配置详解 2012-08-09 13:33:29标签:配置 监控 nagios 详解 cfg 版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 Nagios学习笔记之(三)配置详解前言:上篇先实现的监控部署,就是想先搭建起来,有点小成就,现在再来看配置文件中的详解。只有把其中配置文件中的联系都理解清楚了,才能方便日后自己自定义的检测。Nagios的配置文件还是有其鲜明的特点的。网上也有很多零零闪闪的配置讲解,但大多都不够详解,此篇为自己整理,当然也参考了网络上的信息,有配置的解释还有自己的一些备注,可能还有很多不完善的地方,后续会慢慢补充,希望看的人能看懂,还有就是自己以后能看懂,呵呵。好了,不多说了,开始!一、目录层次:Nagios以及其插件,安装并配置好了以后,目录层次如下:1. bin#Nagios执行程序所在目录,包括nagios、npc、nrpe等;2. etc#Nagios配置文件位置,重点;3. libexec#Nagios插件目录,里面有具体监控的各种插件,重点;4. sbin#NagiosCgi文件所在目录,也就是执行外部命令所需文件所在的目录;5. share#Nagios网页文件所在的目录,也就是web页面给我们展示的文件;6. include#Nagioscgi文件的外部调用;7. var#Nagios日志文件、spid等文件所在的目录。二、配置文件概览:Nagios所有的配置文件以cfg为结尾,在默认装好以后会在etc/下生成一些,我们来逐个看下:1. etc/nagios.cfg#Nagios主配置文件,所有的cfg文件(外部调用除外)必须都在此文件中引用才能生效;2. etc/resource.cfg#定义$USER1$变量,设置插件路径;3. etc/nrpe.cfg#定义nrpe检测命令的文件,在command中引用;4. etc/objects下:5. commands.cfg #定义命令执行的文件,比如check_tcp、check_local_disk等,由后面定义服务的配置文件来引用;6. contacts.cfg #定义联系人的文件,比如服务down了通知的对象;7. localhost.cfg #定义本机的监控条目,默认生成;8. printer.cfg #定义打印机的文件,默认未启用,在生产环境中意义不大;9. switch.cfg #定义监控路由器和交换机的配置文件,默认未启用;10. templates.cfg #定义服务类型的文件,样本文件,比如定义的linux-server就是在此文件中预先定义好;11. timeperiods.cfg#定义要监控时间段文件,比如24x7,workhours等;12. windows.cfg #定义监控Windows的文件,默认未启用。备注:这些文件的名字不是一定的,只要里面的内容正确就可以,Nagios可以自动识别,比如你把commands.cfg和localhost.cfg的文件名互换,都是没有问题的。三、各配置文件详解:(考虑篇幅,只列举部分)1.etc/nagios.cfg(主配置文件)1. log_file=/usr/local/nagios/var/nagios.log2. #这个变量用于设定Nagios在何处创建其日志文件。3. #OBJECTCONFIGURATIONFILE(S)4. #对象的配置文件5. #可以指定单个对象的配置文件,如下所示:6. cfg_file=/usr/local/nagios/etc/objects/commands.cfg7. #定义其命令文件8. cfg_file=/usr/local/nagios/etc/objects/contacts.cfg9. #定义联系人文件10. cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg11. #定义时间段文件12. cfg_file=/usr/local/nagios/etc/objects/templates.cfg13. #定义样本文件14. cfg_file=/usr/local/nagios/etc/objects/localhost.cfg15. #定义监测本地(Linux)主机16. 17. #cfg_file=/usr/local/nagios/etc/objects/windows.cfg18. #定义监测(windows)主机19. 20. #cfg_file=/usr/local/nagios/etc/objects/switch.cfg21. #定义监测路由器或交换机22. 23. #cfg_file=/usr/local/nagios/etc/objects/printer.cfg24. #定义监测打印机25. 26. #也可以告诉Nagios处理所有配置文件(带有.cfg扩展名)在特定的目录使用cfg_dir指令如下所示:27. #cfg_dir=/usr/local/nagios/etc/servers28. #cfg_dir=/usr/local/nagios/etc/printers29. #cfg_dir=/usr/local/nagios/etc/switches30. #cfg_dir=/usr/local/nagios/etc/routers总结配置文件里的变量:日志文件:格式: log_file=样例: log_file=/usr/local/nagios/var/nagios.log说明:这个变量用于设定Nagios在何处创建其日志文件。它应该是你主配置文件里面的第一个变量,当Nagios找到你配置文件并发现配置里有错误时会向该文件中写入错误信息。如果你使能了日志回滚,Nagios将在每小时、每天、每周或每月对日志进行回滚。对象配置文件:格式: cfg_file=样例:cfg_file=/usr/local/nagios/etc/hosts.cfgcfg_file=/usr/local/nagios/etc/servers.cfgcfg_file=/usr/local/nagios/etc/commands.cfg说明:该变量用于指定一个包含有将用于Nagios监控对象的对象配置文件。对象配置文件中包括有主机、主机组、联系人、联系人组、服务、命令等等对象的定义。配置信息可以切分为多个文件并且用cfg_file=语句来指向每个待处理的配置文件.对象配置目录:格式: cfg_dir=样例:cfg_dir=/usr/local/nagios/etc/commandscfg_dir=/usr/local/nagios/etc/serverscfg_dir=/usr/local/nagios/etc/hosts说明:该变量用于指定一个目录,目录里包含有将用于Nagios监控对象的对象配置文件。所有的在这个目录下的且以.cfg为扩展名的文件将被作为配置文件来处理。另外,Nagios将会递归该目录下的子目录并处理其子目录下的全部配置文件。你可以把配置放入不同的目录并且用cfg_dir=语句来指向每个待处理的目录。2.etc/objects/commands.cfg(命令配置文件)1. #定义通知的方式,主机发生故障通知和服务发送故障通知2. definecommand3. command_namenotify-host-by-email4. command_line/usr/bin/printf%b*Nagios*nnNotificationType:$NOTIFICATIONTYPE$nHost:$HOSTNAME$nState:$HOSTSTATE$nAddress:$HOSTADDRESS$nInfo:$H5. OSTOUTPUT$nnDate/Time:$LONGDATETIME$n|/bin/mail-s*$NOTIFICATIONTYPE$HostAlert:$HOSTNAME$is$HOSTSTATE$*$CONTACTEMAIL$6. 7. #定义通知的方式,服务发生故障通知和服务发送故障通知8. #notify-service-by-emailcommanddefinition9. definecommand10. command_namenotify-service-by-email11. command_line/usr/bin/printf%b*Nagios*nnNotificationType:$NOTIFICATIONTYPE$nnService:$SERVICEDESC$nHost:$HOSTALIAS$nAddress:$HOSTADDRESS$nS12. tate:$SERVICESTATE$nnDate/Time:$LONGDATETIME$nnAdditionalInfo:nn$SERVICEOUTPUT$n|/bin/mail-s*$NOTIFICATIONTYPE$ServiceAlert:$HOSTALIAS$/$SERVICEDESC$is$SE13. RVICESTATE$*$CONTACTEMAIL$14. 15. #定义检测主机是否存活的命令,command_name是最后在服务中的引用名,而它是调用的check_ping命令来实现的16. definecommand17. command_namecheck-host-alive18. command_line$USER1$/check_ping-H$HOSTADDRESS$-w3000.0,80%-c5000.0,100%-p519. 20. #定义检测主机cpu负载的命令21. definecommand22. command_namecheck_local_load23. command_line$USER1$/check_load-w$ARG1$-c$ARG2$24. 25. #定义检测主机进程的命令26. definecommand27. command_namecheck_local_procs28. command_line$USER1$/check_procs-w$ARG1$-c$ARG2$-s$ARG3$29. 30. #定义检测主机tcp端口的命令31. definecommand32. command_namecheck_tcp33. command_line$USER1$/check_tcp-H$HOSTADDRESS$-p$ARG1$ARG2$34. 总结:命令配置文件:格式: define command command_name 命令名 command_line 命令调用的实际插件路径以及阀值 样例:cfg_file=/usr/local/nagios/etc/hosts.cfgcfg_file=/usr/local/nagios/etc/servers.cfgcfg_file=/usr/local/nagios/etc/commands.cfg说明:该变量用于指定一个包含有将用于Nagios监控命令的配置文件。对象配置文件中包括有命令名以及实际插件路径以及阀值的定义。3./etc/objects/templates.cfg(样本配置文件)1. 此定义的为类,也就是日后定义主机或者服务时指定的name引用2. defineservice3. namegeneric-service#通过name来指定服务类名,这里的generice-service是一个类名4. active_checks_enabled1#设定启用活动监测服务5. passive_checks_enabled1#设定启用被动监测服务6. parallelize_check1#设定启用并发活动监测服务7. obsess_over_service1#设定启用服务防停滞8. check_freshness0#设定关闭更新监测9. notifications_enabled1#设定启用事件通知10. event_handler_enabled1#设定启用事件处理程序11. flap_detection_enabled1#设定启用状态抖动监测12. failure_prediction_enabled1#设定启用故障预测13. process_perf_data1#设定启用进程性能数据记录14. retain_status_information1#设定启用状态信息保存功能。当Nagios重新启动的时候不会是空数据,而是先显示上次离线时最后保留的状态数据。15. retain_nonstatus_information1#设定启用非状态信息保存功能。当Nagios重新启动的时候不会是空数据,而是先显示上次离线时最后保留的非状态数据16. is_volatile0#设定服务非易失17. check_period24x7#设定监控的时间段18. max_check_attempts3#设定监测失败后最多尝试次数19. normal_check_interval10#设定正常监测服务的间隔,单位分20. retry_check_interval2#设定监测失败后尝试的间隔,单位分21. contact_groupsadmins#定义通知联系人租22. notification_optionsw,u,c,r,d#设定监测指定服务产生的事件通知的条件选项。这里后面跟上一些级别类型参数:23. w代表warning告警;24. u代表unknown未知;25. c代表critical严重;26. r代表recover恢复;27. d代表down奔溃。28. notification_interval60#设定服务通知的间隔29. notification_period24x7#设定服务通知运行时间30. register0#设定register表明本段定义的是一个服务类,而不是具体的服务31. 4.etc/objects/localhost.cfg(本机监控文件)1. definehost#此定义的为监控主机的配置文件2. uselinux-server#引用类,在templates.cfg中预定义3. host_namelocalhost#指定主机名,并不是实际机器的主机名,自己定义,方便以后在定义服务时调用4. aliaslocalhost#别名5. address#指定监控主机的地址6. 7. defineservice#此定义为监控主机服务的配置文件8. uselocal-service#引用类,在templates.cfg中预定义9. host_namelocalhost#指定主机名,在host段中预定义10. service_descriptionPING#监控服务的名称,也就是在web页面上显示的监控项目11. check_commandcheck_ping!100.0,20%!500.0,60%#具体监控的命令以及阀值12. 备注: 以上定义的主机和服务,没有指定通知联系人,那是因为在其中引用了类,而templates.cfg中定义的类是有指定联系人的。 5.etc/objects/contacts.cfg(联系人配置文件)1. definecontact2. contact_namenagiosadmin#定义联系人的名称,方便以后在监控项目中调用3. usegeneric-contact#引用类,在templates.cfg中预定义4. aliasNagiosAdmin#别名5. #邮件地址6. 7. definecontactgroup8. contactgroup_nameadmins#定义联系人组的名称,方便一次性发送多人9. aliasNagiosAdministrators#别名10. membersnagiosadmin#定义组成员,这里nagiosadmin,也就是上面contact_name的值11. 6.etc/objects/timeperiods.cfg(时间段配置文件)1. definetimeperiod#定义时间段的配置文件2. timeperiod_name24x7#指定时间段的名称,方便以后在服务里调用3. alias24HoursADay,7DaysAWeek#别名4. sunday00:00-24:00#具体的时间段定义5. monday00:00-24:00#一周24小时6. tuesday00:00-24:007. wednesday00:00-24:008. thursday00:00-24:009. friday00:00-24:0010. saturday00:00-24:0011. 12. definetimeperiod#定义时间段的配置文件13. timeperiod_nameworkhours#指定时间段的名称,方便以后在服务里调用14. aliasNormalWorkHours#别名15. monday09:00-17:00#具体的时间段定义16. tuesday09:00-17:00#周一到周五的上班时间17. wednesday09:00-17:0018. thursday09:00-17:0019. friday09:00-17:0020. 四、总结:看过了以上配置文件的详解,来总结下监控一台主机和主机上的服务,必要的条件。1.首先定义其监控主机,其中注意的就是引用的类必须在templates.cfg中预定义(所有未指定的条目,都按照类的定义载入)2.再就是监控主机中的资源以及服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论