什么是Nagios?
Nagios是一款开源的网络及服务的监控工具,功能强大,灵活性强,需要注意的是,其服务端只能在linux上面安装。
Nagios可以进行分布式监控。
这里主要解释一下什么叫分布式?什么是集群?什么是分布式计算?
分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题。
集群:同一个业务部署在多台机器上,提高系统可用性。
所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
打个比方,一个任务由5个子任务组成,暂且五个子任务都是独立的,异步的。一个子任务如果需要1个小时完成,那么我只需要将5个子任务分配到5个机器上,那么就是一小时完成了这个任务,这就是分布式,解决的是高并发。
那么集群,就是将一群机器集合起来,完成一个任务。如果一个任务的机器跨了,可以通过其他机器替代,讲究的是可用性。
在网上看到,现在讲的各种云计算,说白了就是集群和分布式的一些应用。
分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。(也可以是分布式,比如你布置多个集群咯!)
举个例子:
饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关系是集群。为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群
常用组件功能作用:
Nagios组成一个主程序Nagios和插件程序Nagios-plugins和一些可插的附加程序(NRPE、NSClient 、NSCA和NDOUtils)等。
Nagios本身是一个监控平台而已,其具体的监控工作都是通过插件Nagios-plugins来实现的,Nagios-plugins也要安装于被监控端。
这里解释下插件的概念?
插件是一种遵循一定规范的应用程序接口编写出来的程序。其只能运行在程序规定的系统平台下(可能同时支持多个平台),而不能脱离指定的平台单独运行。因为插件需要调用原纯净系统提供的函数库或者数据。很多软件都有插件,插件有无数种。
好了,现在说一下几个附件插件功能:
1.NRPE:只能存在于linux不能存在windows系统中,安装于被监控端,执行脚本插件后,就会获取相关本地资源回传给服务端,实现对本地的监控。在本地中,它的存在是守护进程(agent)模式,开启端口是5666。是通过服务端调用,才会回传数据。
在linux或者unix操作系统中在系统引导的时候会开启很多服务,这些服务就叫做守护进程。
2.NSClients :和NRPE一样,不同之处就是被监控端是windows系统。
3.NDoUtils:存在于Nagios服务端,用于将Nagios的配置信息和各event,比如agent端cpu实时状态等产生的数据存入数据库以实现对这些数据的检索处理;说白了就是一个Nagis的数据库接口。
4.NSCA:NSCA需要同时安装在客户端和服务器端。在分布式监控集群模式下会用到。是一种主动报告模式,不需要服务器请求的。