杂项工具 - 看一下我编写的系统
看一下我编写的系统
2004-04-23 15:18 pm来自:Linux文档
现载:Www.8s8s.coM
地址:无名
QQ:2237433
测试版和详细文档下载地址:http://61.241.81.36/shololo/monitor/
寻求各种方式合作.
一, 系统简要概述:
1, 开发目的
随着社会的发展,我们已经进入一个信息时代。伴随着计算机和网络技术的不断发展,越来越多的计算机,服务器被广泛应用到各个领域。它们能否正常稳定的工作影响到社会生活的方方面面。
为确保网络的重要组成部分-服务器能够正常运行,及时发现服务器运行状态是否异常.初步分析出问题原因, 并且能够在最短的时间内通知管理员以便解决问题.减少损失。而且该系统大大减轻系统管理员的工作强度,节省人力资源成本。
2,运行平台
SUN SOLARIS7/8 包括SPARC和x86版本.
FreeBSD 4.0+
3,系统结构
该系统采用C/S结构.
主监控服务器(一台):负责被监控服务器分组管理,定时采集数据,数据逻辑判断,数据入库,报警.
被监控服务器(多台):打开某一端口监听数据采集请求.数据采集并传送给主控服务器
5,分组管理
为便于管理,可根据一定条件将一台或多台服务器划分为一各组.在同一组内的服务器具有相同的数据采集周期和相同的管理员名单.如该组中的任何一台服务器出现故障,则只将报警消息发给该组的管理员.
6,报警
服务器运行不正常时,监控服务器会向该组管理员发出报警.报警方式为电子邮件.也可采用手机短信报警(需要与当地移动公司有短信发送协议)
7,配置文件维护
为减轻维护难度与复杂度,统一将配置文件放在主监控服务器上,被监控服务器上只放置自定义部分.在绝大多数情况下只需要维护主监控服务器上的配置文件.
8,数据采集指标,指标状态
静态指标:
1),服务器操作系统类型
2),操作系统版本
3),CPU型号
4),CPU个数
5),内存大小
6),SWAP大小
7),PATCH版本
8),时区
动态指标:
9),系统连续运行时间
10),系统时间
11),CPU LOAD(1MIN,5MIN,15MIN)
12),CPU状态,Solaris下(IDLE,USER,KERNEL,IO,SWAP) FreeBSD下(IDEL,USER,SYSTEN,NICE,INTERRUPT)
13),内存使用率
14),SWAP使用率
15),系统中当前总共进程数目
16),某一进程占用的CPU(可以设置多个)
17),某一进程占用的系统资源(可以设置多个)
18),某一进程在系统中的数目(可以设置多个)
19),某一物理分区使用率(可以设置多个)
20),某一物理分区I-NODE使用率(可以设置多个)
21),系统网络总连接数目
22),连接中SYNC状态的数目,用于判断是否遭到DOS攻击
23),已成功建立连接的数目
24),监测服务器某一端口是否可以连通(可是设置多个).
25),十个用户自定义外挂模块(用户可以根据服务器用途不同,自己编写要监控的内容,然后挂接到系统里面)
指标可以有两个状态,观察(WATCH),报警(ALARM).所有静态指标只能是观察状态,所有动态指标可以是上面两个状态中的一种.
所有静态指标属于系统基本配置,属于非量化指标.所有动态指标属于量化指标,都可以标明一阀值.将采集上来的数据根据配置文件中规定好的判断逻辑进行比较,若满足判断逻辑且为报警状态则报警.
9,判断逻辑
支持六种判断逻辑:
SEQ == 等于
SNE != 不等于
SGT > 大于
SGE >= 大于等于
SLT < 小于
SLE <= 小于等于
10,安全
被监控服务器采用IP允许措施,只有其配置文件中允许的主机才可以提出数据采集请求.否则连接会马上断开.
主监控服务器与被监控服务器采用特定二进制命令结构进行通讯,
11,可扩充性
由于服务器的任务不同,可能需要监控一些特殊指标.因此预留了十个自定义指标.用户可以在被监控服务器上自行开发自己的监控模块(最多十个),然后无缝的挂接到监控系统中.
12,数据纪录与历史数据显示
每次采集的数据都记录在数据库中,现支持的数据库有ORACLE,SYBASE,MYSQL显示和查询界面基于B/S结构,免除安装额外程序和不兼容问题.用户也可根据自行需要开发显示,查询程序.
如采用debug方式运行可打印日志到屏幕或者文件.
二、项目技术可行性分析
1.项目名称、项目主要内容及目前进展情况
(1)项目名称:UNIX服务器集群动态性能监控系统。SERVERS MONITOR
(2)主要内容:采集UNIX服务器的各项动态性能指标:如系统负载状况、CPU使用率、内存,交换区使用状况、特定进程的状态,所占系统资源(包括占用CPU,内存和交换区)、磁盘使用率以及特定服务是否正常,端口是否可以连通,正常响应。服务器当前网络状态等。将采集来的数据进行整理,并根据指定的逻辑与给定阀值进行比较,如果满足该逻辑,则进行报警。报警方式可选择邮件或者手机短信息。并且还可以将采集来的数据存入数据库,作为数据挖掘,数据分析的数据源。
(3)目前项目的进展情况:已完成Solaris7/8(Sparc / x86),FreeBSD(4.0以上)的所有功能。
2.关键技术及创新点的论述
关键技术:
(1)UNIX内核的状态读取,由C语言实现。由于UNIX系统基本上是由C语言编写实现,所以该系统可以很好的与操作系统衔接,且不需要任何额外的系统开销,执行效率高。
(2)使用C/S结构进行基于TCP/IP的数据传输。
(3)用C语言实现数据库读写。
(4)报警信息的发送,邮件和短信。
创新点:
(1)从操作系统内核读取系统状态,准确高效。
(2)采用分布式结构,一台主控服务器可以监控多台服务器的状态。被监控服务器只负责数据采集,然后发送给主控服务器。尽量减少监控程序在被监控服务器上的系统开销。所有的逻辑判断,报警,数据存储全部由主控服务器完成。
(3)服务器的分组管理。可以对被监控服务器按照一定条件分组。每个组设置不同的一个或多个管理员,报警信息只发送给该组的管理员
(4)系统的延展性。每一台被监控服务器可以根据自身的需要,可以使用任何语言最多编写十个自定义模块来监测自身的特殊服务。自定义的模块可以无缝的接入到报警系统中。
(5)主机信任制。只有被信任的主机才允许向被监控服务器发出数据采集请求。每一台被监控服务器上都有一个主机信任列表。增加了安全性。
3.技术性能水平(指标)与国内外先进水平的比较:
现与国外著名自由监控软件Big Brother(http://bb4.com/)进行对比。
---------------------------------------------------------
| | SERVERS MONITOR | BIG BROTHER |
---------------------------------------------------------
| 开发语言 | C | SHELL |
---------------------------------------------------------
| 系统结构 | C/S | C/S |
---------------------------------------------------------
| 执行效率 | 高 | 低 |
---------------------------------------------------------
| 分组管理 | 支持 | 不支持 |
---------------------------------------------------------
| 监控指标 | 多,可以到进程级别 |少,只能是系统基本状态|
---------------------------------------------------------
| 可扩充性 |支持十个用户自定义模块 |不支持用户自定义模块 |
---------------------------------------------------------
| 数据库 | 可支持多种数据库 | 不支持数据库 |
---------------------------------------------------------
| 历史数据的保存 | 支持 | 不支持 |
---------------------------------------------------------
4.技术成熟性和可靠性论述:
(1) 技术成熟性的论述及有关部门对本项目技术成果的技术鉴定情况:
本系统所使用到的基本技术都是开放性技术,或者已经很成熟,是经过多年发展和验证的技术。因此在技术上不存在技术壁垒和难点。
(2) 本项目产品的技术检测、分析化验的情况:
本系统经过功能测试,达到预期的目标。经测试能够完成预定的功能,并对被监控服务器产生尽量小的系统开销。
(3) 本项目产品在实际使用条件下的可靠性、安全性的情况等。
本系统已被国内某著名网络公司使用,一台主监控服务器,负责一百台以上服务器的监控。已经过两个月的实际运行,运行状况良好。误报警率不高于2%。另外由于数据采用自定义数据结构二进制传输,和信任主机制度,未发生安全问题。
三、项目、产品市场调查和需求预测
国内外市场调查和预测
(1)随着互联网的不断发展,各个行业都已经离不开网络。每年都有大量的服务器投入使用。这些服务器能否正常运行,会影响到我们生活的每一个领域。本系统主要是动态监测服务器性能,因此只要有网络存在,并且对服务器正常工作能力有较高要求行业都适用。采用该系统可以大大缩短服务器问题处理周期,能够及时发现问题,初步判断问题原因,通知管理员解决问题。最大程度的减少由于服务器问题带来的损失。并且降低系统管理员的劳动强度,解放劳动力,现在各公司使用的一些监控软件大都是单机版,不支持服务器集群监控。或者使用的是一些自由软件,像Big Brother等,由于这些系统都是自由软件,不但监控的指标少,而且缺乏必要的技术支持。
(2)该系统已经被国内某著名网络公司实际使用,并得到了系统管理员的一致好评。
四、补充说明
现在已经发布V1.3 for Solaris7/8,FreeBSD4.0+
LINUX版本正在移植过程中,计划春节以后发布LINUX版本.
我的联系方式:
[email protected]
ICQ:117610173
QQ:2237433
MSN:[email protected]
上次的socket问题我写的没有错误,是正确的。主要是我的应用方式很特殊。
我有一个java类,这个java类里面有一个方法是native,也就是java里面的JNI.
这个native方法我是用C语言实现的,里面用到了非阻塞socket。
然后我把这个java类打成了一个bean.。
这个bean在被其他java程序调用的时候是没有错误的。但是如果被jsp调用,就出现了我上次说的问题。
我主要感觉是普通的java程序运行方式和jsp运行方式不大一样。jsp是要通过应用服务器来运行的。我用的是resin-2.0.3。当然具体为什么我还没搞清楚。我后来改成阻塞模式就可以了