nagios监控原理

下面根据上面摘自网络的原理图对nagios的监控原理进行一下简单的说明:

1.nagios通过nsca进行被动监控。那么什么是被动监控呢?被动监测:就是指由被监测的服务器主动上传数据到nagios监控系统中。这种监测方式提高了实时性(出现问题的时候,被监测的服务器可以及时上传数据通知nagios,从而使管理员可以尽快作出处理,而不用像主动监测中一样,非要等到下一个监测周期才能获知被监测服务器的状态)。NSCA就是可以实现Nagios被动监测的一个程序。目前所知道的,只能通过nsca插件对linux/unix服务器进行被动监控。对于windows服务器暂时没发现可用的插件。

2.nagios通过nrpe插件和snmp协议进行主动监控。至于什么是主动监控可以参考上面所述。简单理解决就是nagios按照检测周期主动的获取远程主机的数据。这样一来实时性就要差一些了。nagios通过nrpe插件和snmp协议实现了对linux/unix服务器进行监控,同时通过snmp协议实现了对windows服务器、交换机、打印机等的监控。另外,nagios通过NSClient++客户端也可以对windows进行监控,至于有什么好处,暂时还未测试过。

3.nagios目前完全依赖于对配置文件的读写进行监控数据的展示与配置。当然写的操作nagios是不提供的,这个需要手工通过脚本等进行配置。但是NDOMOD模块的出现解决了nagios无法将数据写入到数据库的问题。提供NDOMOD模块的插件为NDOUtils,NDOMOD模块需要加载到nagios的配置中,NDOUtils插件通过运行NOD2DB进程将nagios的配置文件(.cfg)和status.dat进行分析,并将分析的结果写到mysql数据库中,但是目前来看,这些数据是相当于放入了一个回收站备份一样,并没有实际的被大家用到。但是这个数据对于二次开发来说也算是至关重要的。

nagios架构 

以下对nagios架构进行下简要说明:

1. nagios deamon进程对nagios.cfg配置文件进行读取,nagios.cfg配置文件中放存着一系列配置文件的存放路径。具体如上图。

2. nagios deamon进程通过对nagios.cfg配置文件中所引用到的信息进行操作,在服务端执行plugin与被监控端的agent进行通讯获取监控结果和数据。

3.nagios deamon进程将监控结果写入status.dat文件中,status.dat文件相当于一个log或一个db。
4.cgi程序对status.dat文件中的监控结果进行分析并与读到.cfg配置中的数据进行匹配合并,最终显示在cgi处理结果中。

现在简单介绍下nagios的cgi:

1.cgi是用c语言编写的,是与nagios相独立的一套程序,它不受nagios的影响。

2.对于较早的对动态语言使用者来说cgi无疑是个好帮手,它可以动态的显示网页上的信息,实时性较高。并且它最强劲的一点是可以通过C去读取服务器底层的一些接口,这是其它语言办不到的。

3.经过翻阅一些国内的一些资料。目前来看国内对cgi的使用已经寥寥无几了,不知国外用的怎么样。

4.对cgi的修改还算很容易的。可以在原有的cgi的基础之上进行一些自定义的界面展示,当然笔者也只是很初级的水平。希望在cgi交流的朋友我们可以私下交流一翻。

以上就是笔者对nagios的架构的一些浅薄认识。因为笔者学艺不精,有疏漏之处请指教,我们共同进步。

请朋友们转载时注明出处,因为我是为了更好的方便大家来和我讨论。谢谢了。

意见及建议:ruberzhu@qq.com

nagios二次开发(四)---nagios监控原理和nagios架构简介的更多相关文章

  1. nagios二次开发(一)---开发思想

    NAGIOS现状   从nagios的官网http://www.nagios.org/及其它已经公开的资料,我们可以知道:在web UI层nagios只提供了给我们查看图形界面的操作,界面上有简单的启 ...

  2. nagios二次开发(二)---nagios和nagiosql合并与取舍

    NAGIOS做前台 上一篇本人分析了nagios和nagiosql的优缺点,根据之前的使用经验及探索.决定将nagios做为监控数据的展示层,暂称做“前台”.将nagiosql做为监控体的配置层,暂称 ...

  3. 企业级监控平台开发之nagios二次开发(七)

    背景: A公司里有很多服务器(>3000台),每台服务器都有不同的用途,如DB Server.WEB Server.ESXI等,每个组使用其中的一批,每个组可能有多个服务器管理员.现在问题出来了 ...

  4. nagios二次开发(五)---nagios和nagiosql的关系

    根据对nagios和nagiosql的了解,笔者简要的将二者的关系粗略的梳理了一下,具体情况如下图所示: 从上面的关系图中可以看出,nagios与nagiosql共享了主机.主机组.服务.服务组等.c ...

  5. nagios二次开发(五岁以下儿童)---nagios和nagiosql关系

    基于nagios和nagiosql理解.这将是这两个梳理比较粗糙的简单关系,有关详细信息,请参阅下面的图如:      从上面的关系图中能够看出,nagios与nagiosql共享了主机.主机组.服务 ...

  6. nagios二次开发(三)---nagiosql架构简介

    NAGIOSQL数据库结构简介 个人觉得如果了解一个系统的架构,应该先从数据库着手,因为数据库是灵魂,当然前提是这个系统用到了数据库.刚才说到了架构,其实我还真不知架构到底是个什么东东,也不知第一句话 ...

  7. nagios二次开发(六)---nagiosql原理及主要文件的介绍

    nagiosql的入口文件:index.php,这也是所有php程序的入口文件.是由apache指定的. index.php 文件的开始引入了 require("functions/prep ...

  8. Sentry 监控 - Snuba 数据中台架构简介(Kafka+Clickhouse)

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  9. Spark- Spark内核架构原理和Spark架构深度剖析

    Spark内核架构原理 1.Driver 选spark节点之一,提交我们编写的spark程序,开启一个Driver进程,执行我们的Application应用程序,也就是我们自己编写的代码.Driver ...

随机推荐

  1. 使用Grunt 插件打包Electron Windows应用

    最近利用Electron来创建跨桌面应用的趋势似乎很火.看了几个用Electron开发的应用,这些应用在windows下面的安装方式,都是类似一个绿色软件的安装方法,下载.zip->解压到相应目 ...

  2. sql事务的调用

    一.数据库的SQL USE [Text]GO/****** Object: StoredProcedure [dbo].[mon] Script Date: 2017-01-03 15:59:28 * ...

  3. ubuntu下快速制作linux 系统安装盘

    1. 安装unetbootin sudo apt-get install unetbooin 2. 超级系统管理员启动,选择镜像文件并安装 先插入空白USB,然后打开终端输入命令 su - 输入密码, ...

  4. sharedPreferences的用法

    做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连 接跟操作等耗时大大影响了程序的效率,因此我们使用键值这 ...

  5. Java File.renameTo方法的问题

    今天发现一个问题,renameTo执行失败. 程序是这样的:一个小程序在执行完成时会将A目录的文件renameTo到B目录,该程序一直运行正常.今天将B目录进行了mount挂载(Linux上),挂载后 ...

  6. Django RedirectView

    RedirectView作用是重定向一个指定,给定的Url.这个给定的Url可能包含有字典风格的字符串,因为关键字(词)会被改变,所以从这个Url中捕获的参数可能也会被修改,例如,Url中的“%”应该 ...

  7. oracle 邮件发送

    CREATE OR REPLACE PROCEDURE PRC_sendmail(p_receiver VARCHAR2, -- 邮件接收人                               ...

  8. IntelliJ IDEA 中文乱码问题解决办法

    自己最近在使用IntelliJ IDEA,发现总是出现中文乱码的问题,在网上找了很多教程,发现真是“天下文章一大抄”.还不如自己动手试着解决一下. 1.编辑器以及调试信息中文乱码问题 解决方案: 选择 ...

  9. Access数据库的模糊查询到底是用*还是%

    今天被用了一下Access数据库,结果被它的模糊查询给折腾了一上午,到底是用*还是%?特此记下来 事情是这样的,我用C#写了个小的窗体程序,访问Access数据库进行一个模糊查询,我先手工往Acces ...

  10. oracle加并行参数PARALLEL

    select /*+ PARALLEL(t,4) */ * from table1