nagios二次开发(三)---nagiosql架构简介
NAGIOSQL数据库结构简介
个人觉得如果了解一个系统的架构,应该先从数据库着手,因为数据库是灵魂,当然前提是这个系统用到了数据库。刚才说到了架构,其实我还真不知架构到底是个什么东东,也不知第一句话说的是否在理,因为我确实不懂开发,更没了解过某个系统的架构。嘿嘿。
先来个mysql数据库表的截图,见1.4
这个截图中的表就是nagiosql所用到的表,在二次开发过程中请尽可能的使用系统默认的表,因为这样可以最少的减小系统的出错机率,但是如果在表中加字段时请慎重。因为一个主要原因就是 :nagiosql是会写配置文件的,在写配置文件过程中,它会select * from table的,哈哈。(之后的文章,我会介绍解决的办法!)
下面简单介绍下圈起来的几个表,他们都是常用到的,tbl_是默认的前缀,tbl_lnk表示关联表:
NAGIOSQL源码结构简介
源码结构如下图:
注:其它未标注文件为自动生成的配置。
NAGIOSQL运行时
默认的nagiosql所展示的每个页面都是通过templates目录下的tpl.htm模板展现的。nagiosql通过一个叫做HTML_Template_IT的模板类去处理模板的加载、分析、配置、展现。不得不说这个模板处理的机制已经很古董了,除了思想与现在的模板使用基本一致外,我想这个类的使用现在应该已经被人遗忘的差不多了,因为它确实不是很主流,以至于各种找不到介绍与使用它的资料。如需想了解更多可访问http://pear.php.net/manual/en/package.html.html-template-it.php。
nagiosql首次运行的时候,index.php页面会首先加载functions/prepend_adm.php文件,并通过此页面中的session_start()方法设置session信息。而登录后的状态保存及权限控制也基本全是基于session进行的,这也完全归功于php强大的session功能。prepend_adm.php文件控制着全局的页面显示,它是全局模板(包括文件头,页脚)main.tpl.htm的数据源。functions/nag_class.php则控制着左侧菜单及插入、删除、更改页面的数据源。admin_master.tpl.htm模板页则控制着每个页面的主内容。
它们的对应关系的简要截图如下:
请朋友们转载时注明出处,因为我是为了更好的方便大家来和我讨论。谢谢了。
意见及建议:ruberzhu@qq.com
nagios二次开发(三)---nagiosql架构简介的更多相关文章
- nagios二次开发(四)---nagios监控原理和nagios架构简介
nagios监控原理 下面根据上面摘自网络的原理图对nagios的监控原理进行一下简单的说明: 1.nagios通过nsca进行被动监控.那么什么是被动监控呢?被动监测:就是指由被监测的服务器主动上传 ...
- nagios二次开发(一)---开发思想
NAGIOS现状 从nagios的官网http://www.nagios.org/及其它已经公开的资料,我们可以知道:在web UI层nagios只提供了给我们查看图形界面的操作,界面上有简单的启 ...
- nagios二次开发(五)---nagios和nagiosql的关系
根据对nagios和nagiosql的了解,笔者简要的将二者的关系粗略的梳理了一下,具体情况如下图所示: 从上面的关系图中可以看出,nagios与nagiosql共享了主机.主机组.服务.服务组等.c ...
- nagios二次开发(五岁以下儿童)---nagios和nagiosql关系
基于nagios和nagiosql理解.这将是这两个梳理比较粗糙的简单关系,有关详细信息,请参阅下面的图如: 从上面的关系图中能够看出,nagios与nagiosql共享了主机.主机组.服务 ...
- nagios二次开发(二)---nagios和nagiosql合并与取舍
NAGIOS做前台 上一篇本人分析了nagios和nagiosql的优缺点,根据之前的使用经验及探索.决定将nagios做为监控数据的展示层,暂称做“前台”.将nagiosql做为监控体的配置层,暂称 ...
- nagios二次开发(六)---nagiosql原理及主要文件的介绍
nagiosql的入口文件:index.php,这也是所有php程序的入口文件.是由apache指定的. index.php 文件的开始引入了 require("functions/prep ...
- 企业级监控平台开发之nagios二次开发(七)
背景: A公司里有很多服务器(>3000台),每台服务器都有不同的用途,如DB Server.WEB Server.ESXI等,每个组使用其中的一批,每个组可能有多个服务器管理员.现在问题出来了 ...
- ccflow表机构与运行机制(二次开发必看)
驰骋工作流引擎,工作流程管理系统,表结构与运行机制. ------------------------------------------------------- 前言: 1, ccflow 有自动 ...
- E8.Net 工作流二次开发架构平台
一. 产品简介 E8.Net工作流开发架构是基于微软.Net技术架构的工作流中间件产品,是国内商业流程管理(BPM)领域在.Net平台上的领先产品,是快速搭建流程管理解决方案的二次开 ...
随机推荐
- module
扯淡的人 http://www.cnblogs.com/yuanchenqi/articles/5732581.html 不被调用的 要写在这下面 1 if __name__=="__ ...
- [Mongdb] 关于Replica Set复制集奇数成员限制的解释--待完善
一.缘由: http://blog.itpub.net/29254281/viewspace-1176821/ http://blog.chinaunix.net/uid-20726500-id-54 ...
- mysql replication
change master to master_host='192.168.0.3',master_user='myrepl',master_password='5rNUnOHxut3lkP4wXds ...
- (Tree) 101. Symmetric Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- JavaScript数据类型转换
原文转自:http://javascript.ruanyifeng.com/grammar/conversion.html#rd JavaScript是一种动态类型语言,变量是没有类型的,可以随时赋予 ...
- js 处理 html 标签转义 处理json中含有的ascii 编码
function escape2Html(str) { var arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&am ...
- system verilog中的类型转换(type casting)、位宽转换(size casting)和符号转换(sign casting)
类型转换 verilog中,任何类型的任何数值都用来给任何类型赋值.verilog使用赋值语句自动将一种类型的数值转换为另一种类型. 例如,当一个wire类型赋值给一个reg类型的变量时,wire类型 ...
- zz剖析为什么在多核多线程程序中要慎用volatile关键字?
[摘要]编译器保证volatile自己的读写有序,但由于optimization和多线程可以和非volatile读写interleave,也就是不原子,也就是没有用.C++11 supposed会支持 ...
- Firefox 插件 FlashGot 创建 Axel 下载任务
运行脚本: #!/bin/sh# FlashGot Command line arguments template: [URL] [COMMENT] [FOLDER]if [ $# = 3 ]; th ...
- Java温故系列之web项目复习
如果从外面导入项目 操作方法为: File->Import -->General-->Existing Project into Workspace 搭建sqlserver数据库连接 ...