设为首页 收藏本站
查看: 1647|回复: 0

Ubuntu上快速搭建Nagios监控

[复制链接]
累计签到:4 天
连续签到:1 天
发表于 2015-11-23 09:23:32 | 显示全部楼层 |阅读模式
  转自:http://my.oschina.net/julienbin/blog/69186
  

  
Nagios是常用的系统监控工具,提供了很多基本服务的监控脚本,如HTTP,MYSQL等,同时具有不错的可扩展性,自己可定制针对特定参数的监控脚本以及报警的方式。但Nagios的配置相当复杂,本文总结了我最近在Ubuntu Server上搭建Nagios的过程,以方便大家将来更加快速的安装搭建监控系统。
Nagios安装
安装分为nagios server和被监控端两部分。nagios server提供web界面,报警配置;被监控端需要安装nagios nrpe服务,负责与server通信本机的监控情况。1) Nagios Server的安装:默认情况下,nagios会使用apache2作为自己的web server。本着快速的原则,在server上运行:1sudo apt-get install apache2nagios3 nagios-nrpe-plugin
nagios-nrpe-plugin用于与被监控机器上的nrpe服务通信;安装过程中,会提示输入nagsio web管理员的密码,nagios web的登录帐号和密码是nagiosadmin/<安装时设定的密码>;也可以修改/etc/nagios3/htpasswd.users来改变用户、密码。安装完成后,在/etc/apache2/conf.d下会建立nagios3.conf,这是关于nagios web的配置。访问http://<apache2 Server Address>/nagios3即可看到nagios的主页。如果想在网页上看nagios的doc,请安装:1sudo apt-get install nagios3-doc如果想使用Nginx作为WEB SERVER,请Google &quot;Nagios Nginx&quot;。
2)被监控机器上,运行:1sudo apt-get install nagios-nrpe-server
不管是nagios server还是被监控机器,默认的监控脚本配置会安装在/etc/nagios-plugin/config下,监控脚本都在/usr/lib/nagios/plugins下。
Nagios配置
1)Nagios Server:Nagios里需要配置的Object主要分Host, Service, Contact等;其主配置是/etc/nagios3/nagios.cfg,一般不用怎么修改;脚本配置
脚本的配置是/etc/nagios3/commands.cfg,这里面常常修改notify-host-by-email;notify-service-by-email,通常会修改发email的命令,我改成了用sendEmail(apt-get install sendEmail)发email:1define command{2        command_name   notify-service-by-email3        command_line   /usr/bin/printf &quot;%b&quot; &quot;*****Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$&quot; |/usr/bin/sendEmail -f <from@xxx.xx> -t <to@xxx.xx> -u &quot;**$NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **&quot; -s<SMTP_SERVER> -xu <EMAIL_USER_NAME> -xp <EMAIL_USER_PASSWORD>4        }
也可增加一些用短信报警的命令,具体可Google &quot;Nagios短信报警&quot;。另外需要查看的脚本配置位于/etc/nagios-plugin/config下,比如check_nrpe.cfg:01#this command runs a program $ARG1$ with arguments $ARG2$02define command {03        command_name   check_nrpe04        command_line   /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$05}06 07#this command runs a program $ARG1$ with no arguments08define command {09        command_name   check_nrpe_1arg10        command_line   /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$11}
分别配置了带一个参数和带两个参数的nrpe命令,command name是check_nrpe_1arg的命令带一个参数,command name是check_nrpe的带两个参数。比如我配置的脚本想查看目标机上的load,command line就需配置成check_nrpe_1arg!check_load,该命令会调用nrpe server上的check_load命令。想查看check_http/check_ping/check_mysql的详细,对应的请查看http.cfg/ping.cfg/mysql.cfg里是怎么配置的。一般都是调用/usr/lib/nagios/plugins下的脚本,这些脚本都是可执行的,加&quot;-- help&quot;可查看该脚本的具体用法。如:1/usr/lib/nagios/plugins/check_http--help
可输出check_http的使用说明。
配置的组成结构
在/etc/nagios3/conf.d下有一组配置,该配置的结构为:1) contacts_nagios2.cfg: 配置联系人,可配置报警的命令等,一般我会在这里修改了联系人的email;2) generic-service_nagios2.cfg和generic-host_nagios2.cfg配置,generic-host/generic-service的一些配置,这样你配置的host/service只要配上use generic-host/use generic-service就能继承相应的配置。扩展的配置放在extinfo_nagios2.cfg里,时间段配置在timeperiods_nagios2.cfg里,这几个文件我都没有修改。3) hostgroups_nagios2.cfg里配置host的分组,实际上它的主要作用是给host进行分类;4)最重要的是services_nagios2.cfg,这里配置了需监视的service,每个service可指定针对哪类host有效。如:1defineservice {2        hostgroup_name                 http-servers         1        service_description            HTTP2        check_command                  check_http3        use                            generic-service4        notification_interval          0 ; set >0 if youwant to be renotified5}
比较合理的配置方法是,在service_nagios2.cfg里为每类server配置service,然后在hosts.cfg和hostgroup_nagios2.cfg,配置相应的server和该server的类别。这样,在server地址或server上的服务发生变化的情况下,只需要修改host.cfg和hostgroup_nagios2.cfg即可。
被监控机器的配置
配置文件是/etc/nagios/nrpe.cfg。主要配置项有:1#server_address=127.0.0.1
默认是只有本机才能访问,多IP地址的情况下也不知道用的哪个IP,通常情况下会配成内网的地址;1allowed_hosts=127.0.0.1
容许访问nrpe的机器,多个主机用','分隔,注意不要留空&#26684;,“127.0.0.1, 192.168.1.12”是不工作的,必须是&quot;127.0.0.1,192.168.1.12&quot;;nrpe里的自定义command,如:1command[check_users]=/usr/lib/nagios/plugins/check_users-w 5 -c 102command[check_load]=/usr/lib/nagios/plugins/check_load-w 15,10,5 -c 30,25,203command[check_hda1]=/usr/lib/nagios/plugins/check_disk-w 20% -c 10% -p /dev/hda1
这样在nagios server上可通过/usr/lib/nagios/plugins/check_nrpe -H <被监控机器> -c check_load来调用被监控机上的check_load;又参见/etc/nagios-plugin/config/check_nrpe.cfg,需要配置的command line应为check_nrpe_1arg!check_load。我就是在这里写成了check_nrpe!check_load导致服务unknown的。
后继
按以上步骤,大概20分钟后就可以搭起一个最基本的监控系统。完成后可通过nagios的web查看各个host和service,观看详细的运行情况,包括下次监控脚本运行时间等等。如果需要细致的配置,如配置检查间隔等,请查看nagios的官方文档。(nagios主页位于http://nagios.org)如果需要扩展监控脚本,需自己写一个脚本,返回&#20540;为0, 1, 2时分别代表Normal,Warning,Critical的状态,然后在nrpe里配好command即可。我还碰到过一个报警命令配错了,系统在一次报警失败后,遇到新的需要报警的时候,没有再次报警的问题。Google了一下,可能是Nagios Cache的问题,清下cache就行。1rm /var/cache/nagios3/*

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142415-1-1.html 上篇帖子: Nagios监控网络流量 下篇帖子: CentOS 6.4上通过yum安装Nagios-3.5.0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表