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

Nagios 工作原理 (2)

[复制链接]

尚未签到

发表于 2019-1-16 08:01:41 | 显示全部楼层 |阅读模式
  1.实现原理
  处于网络中的各种服务器需要管理和维护,管理员不可能及时对每一台的状态都进行监控,这时候当然需要借助软件的功能来实现了。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 显示出来,以供管理员及时发现故障。
  2.利用 Nagios 的 NRPE 插件实现网络上服务器的监控
  知道 Nagios 是如何通过插件来管理服务器对象后,现在开始研究它是如何管理远端服务器对象的。Nagios 系统提供了一个插件 NRPE。Nagios 通过周期性的运行它来获得远端服务器的各种状态信息。它们之间的关系如下图 所示:
DSC0000.jpg

  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 依次读取队列中的信息,再把结果显示出来。
  下面通过一个监控远端服务器 CPU 负载情况的实例,研究如何实现通过 NRPE 来管理远端服务器。假设有一台远端服务器的 IP 是 10.20.0.110,Nagios 服务主机 IP 是:10.20.10.1。它们都已经安装上了 nagios 系统,主机通过 NRPE 检查运行中的服务器 CPU 的负载量,当负载量超过80%是发出警告(WARNING)报告,超过95%时发出紧急(CRITICAL)报告。在Nagios 的插件中存在 check_load -w $ARG1$ -c $ARG2$插件,通过查看其帮助,当 Nagios 调用它时,就会去检查对象主机的CPU负载,达到$ARG1$指定的数值时就会发出警告(WARNING),达到$ARG2$时发出紧急报告(CRITICAL)。
  首先是在远端服务器上的修改:
  1.让 Nagios 用户拥有对如下文件的所用权:
  chown nagios.nagios /usr/local/nagios chown –R nagios.nagios /usr/local/nagios/libexec 然后如果没有安装 xinetd,则先安装 xinetd。
  2.按照 Nagios 文档安装好 nrpe 插件。
  3.修改文件/etc/xinetd.d/nrpe:
  only_from = 127.0.0.1 10.20.10.1(这个是 Nagios 主机的 IP)
  nrpe 允许以上 IP 的机器通过 nrpe 查询服务
  4.在/etc/service 文件里添加:
  nrpe 5666/tcp #nrpe 然后 service xinetd restart
  5.执行:netstat –at | grep nrpe
  如果出现:tcp 0 0 *:nrpe *:* LISTEN 说明NRPE监听已经成功启动了
  6.执行 /usr/local/nagios/libexec/check_nrpe –H localhost
  出现 NRPE v 2.8.1 则安装成功。
  7.确认本地防火墙允许远端服务器访问 NRPE daemon:
  iptables -IRH-Firewall-1-INPUT -p tcp -m tcp –dport 5666 -j ACCEPT service iptables save 8.打开/usr/local/nagios/etc/commands.cfg,找到 check_load 服务,修改如下:
  define command { command_name check_server_load command_line $USER1$/check_load -w 80% -c 95% } 9.打开 /usr/local/nagios/etc/nrpe.cfg 可以看到里面已经默认定义了一些检测服务,如:
  /usr/local/nagios/libexec/check_nrpe -H localhost -c check_users /usr/local/nagios /libexec/check_nrpe -H localhost -c check_load /usr /local/nagios/libexec/check_nrpe -H localhost -c check_hda1 注释掉除 check_load 外的其它服务定义。
  最后是 Nagios 主机上的修改:
  1在 Nagios 主机上安装 nrpe 插件。
  2打开/usr/local/nagios/etc/command.cfg添加如下行:
  define command{ command_name check_nrpe command_line $USER1$/check_nrpe –H 10.20.0.110 -c $ARG1$ 3再在对象定义的配置文件里(host.cfg 文件),修改 host 为要检测的主机的 IP 地址,然后在服务中添加要检测的命令:
  define service { use linux-service service_description remote_CPU_Load check_command check_nrpe!check_load } 4在 nagios.cfg 主配置文件中,cfg_file 值为 host.cfg,运行
  /usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg 如果没有错就启动 nagios:
  service nagios start(restart,stop) 5打开浏览器:http://主机 IP/nagios
  可以看到所监控的远端机器的这个信息了(check_server_load的返回结果),参看图2.正常状态用绿色表示,一旦远端服务器负载超过 80%,状态信息就会变成红色警告管理员。


运维网声明 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-663768-1-1.html 上篇帖子: Nagios 工作原理 下篇帖子: You don't have permission to access /nagios/ on this server
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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