|
开源网络管理软件
配置要求
From Name RAM FREQUENCE(GHz)
1998 zabbix
1999 nagios
1992 net-snmp
NetXMS 512kB 1
zenoss 6GB 2
http://network.51cto.com/art/201110/295677_1.htm
(英文原文 http://www.networkworld.com/slid ... ement-software.html)
http://wenku.baidu.com/link?url= ... VTcTIa24gDazf2wq0m3
http://os.51cto.com/art/201307/402538.htm
开源或商业网管软件对比
http://wenku.baidu.com/link?url= ... bmPL-gLPOJQseHrMLVS
有SugarNMS(国内中文的) 界面和后台都是java技术
OpenNMS 部分java
Nagios web技术
Zenoss Core python
Hyperic HQ Enterprise 部分java
提到的3种开源软件都有展现网络拓扑的功能。cacti:weathermap nagios:nagvis zabbix:maps
http://gpp256.zapto.org/glNetViz/docs/en/html/index.html
http://www.oschina.net/p/glnetviz/similar_projects
glNetViz User’s Guide
Last Update: 2013-09-08
Overview
glNetViz is a tool for visualizing computer network topologies with WebGL.
With the abilities of real time visualizing network traffics flowing around the local network and to/from the Internet, you can manage the various network more easily and efficiently. glNetViz is intended to be a convenient tool that can easily visualize the network topology from the serialized data in YAML or JSON.
P网络拓扑自动发现--算法比较经典
http://wenku.baidu.com/view/88411ce9856a561252d36f62.html
自动发现网络拓扑 一站式的网络运维
2010-08-12 16:18 晓忆 51CTO.com
http://network.51cto.com/art/201008/218685.htm
Mocha BSM4+1能够自动发现二层和三层网络拓扑,支持主流协议、主流厂商的网络设备。用户可根据自己的监控习惯和网络复杂度,定制相关的逻辑网络拓扑图,方便运维人员进行监控和维护大大提高了工效率。
随着企业信息化的不断深入,各种业务越来越依赖高效、快速的网络做支持。然而企业的网络拓扑结构与设备时常变化,单靠人工往往难以维护日渐庞大的网络环境。尤其对于上千台设备的大型网络来说,维护工作就更为复杂了。当用户的网络设备大量增加后,网络结构异常复杂,用户的网络拓扑很难在一个屏幕上展现或者很难找到要查阅的网络拓扑。这时一款使用简单、高效的网管软件就十分必要了。
网络管理
◆那到底怎样去选择一款使用简单、高效的网管软件呢?它应该符合以下几点:
1、 自动发现网络拓扑
在网络管理系统中,节点(计算机和网络设备)的自动发现作为一个最基本的功能之一具有其独特的作用。由于它所有需要的数据都是从网络上提取来的,而且作为一个网络,一定具有大量的计算机或网络设备,要寻找这么多的具有IP地址的设备,如果是人工来绘制网络拓扑需要很多的时间效率很低。因此自动发现和绘制网络拓扑十分必要。如图一。
图一 自动发现网络拓扑
2、 管理型拓扑
当网络发展到今天,面对一张传统的拓扑图对于网络管理员来说是很难管理网络的。传统的拓扑图就是显示设备连着设备,不能直观的反应这些设备是负责什么业务或者什么区域的。
通过管理型的拓扑我们能一目了然的知道这个设备是哪个区域的或者是支撑哪个业务的。这样当出现故障的时候,我们快速的定位到故障点或故障影响的范围。如图二。
图二 快速定位故障点
3、 拓扑与机房相关联
当出现故障的时候,我们耗费最多时间的并不是去解决故障而是定位故障点。比如:当我们OA出现故障时,我们首先定位是哪台服务器出现了问题,然后去找存放文档的这台服务器是在哪个机房的哪个机柜。这耗费了我们大量的时间。如果能把拓扑图和机房相关联,那么当设备出现故障时我们能马上看到是哪个机房的设备有问题。双击对应的机房,我们就能看到是具体哪个机柜的哪台机器出问题了。这样大大的加快了我们故障处理的时间。如图三。
图三 拓扑与机房相关联
4、 幻灯片播放
◆当我们的网络比较大或者为了方便管理,我们会按照业务或者区域建立一些子拓扑。这时我们可以通过幻灯片功能,自动播放各个子拓扑,不需要手动切换。方便我们随时掌握设备的运行状态。如图四。
图四 实时网络拓扑
摩卡业务服务管理(Mocha BSM)的优势
◆Mocha BSM4+1能够自动发现二层和三层网络拓扑,支持主流协议、主流厂商的网络设备。用户可根据自己的监控习惯和网络复杂度,定制相关的逻辑网络拓扑图,方便运维人员进行监控和维护大大提高了工效率。
在本系列文章中,我们将一同剖析四款高人气开源产品--Nagios Core 3.5、NetXMS 1.2.7、OpenNMS 1.10.9以及Zenoss Core 4.2。四款产品都已经相当成熟,足以提供与其它企业级同类方案相媲美的综合性监控能力,同时拥有良好的社区支持体系。
四款产品都提供管理、性能监控以及网络设备警示与报告功能,其作用范围涵盖服务器、路由器、交换机、打印机、UPS、网络站点、业务应用程序以及移动设备等等。监控功能可以简单起效,用户可以像使用PING请求那样利用SNMP(即简单网络管理协议)或者本地代理对单一设备进行全面管理。
此次参与评述的四款产品经实测全部支持SNMP及其它通用型协议,包括WMI、HTTP、SMTP、SSH以及XML。尽管其中两款产品只能用于特定操作系统,但四者全部可以实现跨平台IT基础设施监控(本质上说可作用于任何拥有IP地址的设备)。它们支持的功能包括自动识别、SNMP、可阅读系统日志、触发器/警报设置、Web应用程序、分布式监控(即负载平衡)、映射、IPv6(只有NetXMS不支持IPv6)以及库存追踪。
四款产品还提供基本而全面的基础设施监控功能,而且很少甚至完全不需要额外硬件、内存以及存储机制作为监控环境的支持基础。在本次评述中,我们将从安装便捷性、配置便捷性、管理能力、多平台支持能力、报告机制及总体可用性等几个角度做出横向比较。
网络监控软件定义:指针对局域网内的计算机进行监视和控制,针对内部的电脑上互联网活动(上网监控)以及非上网相关的内部行为与资产等过程管理(内网监控;所以包含了上网监控(上网行为监视和控制、上网行为安全审计)和内网监控(内网行为监视、控制、软硬件资产管理、数据与信息安全),有些还增加了数据安全的透明加密软件部署
NetXMS
是一款用户界面有些凌乱、但却拥有丰富工具集的产品,不仅能对基础设施进行细化管理、而且在移动方面倾注了大量心血。
NetXMS可以运行在Windows 2003及更新版本、Linux、Solaris、AIX、HP-UX以及FreeBSD等多套系统平台之上,并遵循GPL许可机制。
NetXMS的最大特色就是能在不借助外部插件的前提下以原生方式支持大量主流平台。NetXMS能够使用SNMP以及本地"高性能"代理、从而收集数据并将结果提交并保存至SQL数据库中(包括甲骨文、微软SQL Server、PostgreSQL、MySQL以及SQLLite)。我们可以通过自动或者手动方式实现二层与三层网络基础设施识别。收集到的数据会被保存在监控服务器中,并由管理员通过多种方式加以访问。
数据收集由对象/节点负责,而且每个对象/节点都拥有与自身相关联的阈值限制,例如服务器内存利用率或者路由器流量限值等。一旦超出阈值,NetXMS会直接触发某些事件;而随着阈值的回落,系统则继续触发正常业务事件。NetXMS还支持Android,既可以对Android设备进行管理、又可以作为设备监控的代理机制。
除了在屏幕上显示通知及警报信息,NetXMS还允许管理员通过配置发送警报短信及电子邮件。具体事件也可被转发至另一台NetXMS服务器或其它外部系统。NetXMS还具备本地脚本引擎,旨在实现高级自动化与管理功能。
NetXMS的系统配置要求简直可谓没有要求--只需要512KB内存与主频低于1GHz的处理器。不过对于大部分生产安装环境来说,主机操作系统还需要额外的CPU处理核心/强度/速率以及更大的内存容量。要安装在Windows系统中,我们还需要为其准备一套单独的数据库服务器,用于保存配置设定以及数据收集(支持PostgreSQL、MySQL、甲骨文或者SQL Server)。某些PDF说明文档已经有些过时(官方网站也已经明确提示了这一点),但我们发现维基百科能够起到很好的指导作用。
在测试环境中,我们将NetXMS安装在运行着PostgreSQL管理方案的Windows Server 2008 R2系统中,同时配备一套基于Java的桌面界面、Web界面或者移动管理控制台。NetXMS还会同时安装自己的轻量级web服务器,这样大家就不必再安装IIS、Apache或者其它web服务器了。不过各位千万不要把Web界面安装在NetXMS所在的目录中,这样会导致工具安装失败、相当于搬起石头砸自己的脚。不过安装导航会默认将二者装在同一个目录中,这可能是供应商的失误。
NetXMS管理控制台的既定目标之一在于提供一套统一化跨平台图形用户界面(包括Web界面),从这个角度来看NetXMS无疑获得了极大成功。
虽然我们也在独立的台式机上测试过Web用户界面,但本次测试的大部分工作都利用了运行在服务器上的桌面应用程序。登录之后,工作台就成了我们的主要视图界面,用户可以通过不同的自定义方式对其进行调整,并将保存结果用于未来的会话过程。初一上手,用户界面上的大量标签与链接可能会让新手们感到不太适应。
要实现完整的自动识别功能,供应商建议我们让工具对大型网络进行几个小时乃至一整夜的全局扫描。由于我们的测试环境规模不大,因此整个识别过程耗时并不太长(不到30分钟)。大家也可以通过一系列简单步骤手动添加节点。节点添加完成后,NetXMS将在"事件状态"窗口中显示节点的基本信息,例如某个进程无法正常工作或者某个节点处于不可用状态。此外,工具还提供多个数据连接项(简称DCI),允许用户针对每个节点进行自定义配置或者将配置方案保存在模板并推广到整个网络当中。这样如果需要对配置进行整体修改,我们就不必在每个节点中重复折腾。
屏幕报告功能给我们留下了深刻印象,该功能允许用户运行一系列临时报告;报告结果所产生的数据集可被导出为CSV文件。NetXMS还集成了Jaspersoft报告引擎,从而实现了创建自定义报告并在必要时加以重复使用。
总体而言,NetXMS是一套功能强大的管理工具,但在配置方面颇具挑战,因为设定与控制布局过多使整个调整逻辑显得有些混乱。用户手册也还不错,但具体内容应该再重新整理一遍。另一项不足之处在于,管理控制台应该提供与当前情况相关的帮助机制。
从积极的角度看,我们对NetXMS的跨平台能力、移动设备支持能力以及在移动设备中运行管理控制台的能力深表赞赏。便捷的自定义仪表板创建功能只需几次鼠标点击即可完成,能够帮助用户以可视化方式掌握网络运行状态。
OpenNMS
诞生于1999年的OpenNMS提供了事件管理、服务监控以及性能测量功能。该软件无需授权许可费;用户只需支付咨询、培训及技术支持所带来的开销即可。
OpenNMS是一款强大的网络管理工具,能够运行在大多数平台之上且足以应对大规模数据的管理工作,其定制仪表板功能尤其令人赞叹。由于已经得到广泛普及,目前已经有超过一万五千款插件可供用户选择。
作为一款基于Java的跨平台产品,OpenNMS能够运行在任何支持Java SDK 1.6及更新版本的平台上。OpenNMS基于GNU GPL许可,开发团队还提供商业许可及相关技术支持。OpenNMS的核心功能包括二层及三层连接自动识别、网络自动识别、自动配置以及服务识别等。在最新版本中,这款工具还添加了对IPv6的支持能力。OpenNMS拥有一套内置网络服务器系统,用户通过内置用户列表、LDAP或者RADIUS协议实现身份验证。
除了创建自有事件,OpenNMS还可以从SNMP、HTTP、WMI、XML、JMX以及系统日志等外部协议中接收性能数据。从服务监控方面来看,它能够与一系列常用协议及服务进行通信,包括DNS、Windows服务状态、BGP会话、思杰、邮件协议等等,这还只是其通信对象中的一小部分。目前已经有一百多家厂商为其开发出超过一万五千款trap,其中SNMP trap接收器能够在设备启动后为其提供大量实用功能。
我们可以通过多种方式实现通知推送目的,包括利用标准页面调度程序、邮件通知机制以及更具定制特色的微博(例如Twitter)与命令行呼叫等方式。在整合性方面,它能够与DNS交互、接收并上传节点信息,还可与Hyperic HQ、RANCID以及Asterisk电话平台等第三方产品进行交互。
最后,OpenNMS还提供多种报告选择,用户可以通过预先配置调整报告机制或添加以日期范围为基础的筛选方案。报告可以在指定时间运行,其结果会被保存到文件系统中或通过电子邮件发送至特定收件人。生成的文件格式分为PDF与CSV两种。
OpenNMS的最低系统要求非常亲民,只需要512MB内存。但如果要让整套系统有能力应对任何数据采集任务,那么用户仍然需要在处理器、内存以及存储配置方面进行大幅强化。
由于该工具图形用户界面所采用的JSP页面属于动态编译,因此除JRE之外、OpenNMS还必须配合完整的Java SDK才能正常运行。再有,PostgreSQL也必须提前安装就绪。
我们将OpenNMS作为独立服务器安装在Windows系统当中,并利用Web图形用户界面在浏览器中进行管理操作。在登录之后,主页面会显示关于基础设施的一些基本信息,例如各节点在过去24小时中的停机或者可用状态,并额外提供专门的区域用于访问与报告功能。大家在屏幕上方的水平链接栏中还能找到其它导航机制。
OpenNMS主要利用两种特定配置方式向监控体系中添加新功能,即自动识别与定向识别。我们先通过一系列参数设定让OpenNMS了解如何根据需求识别基础设施,大家可以在"识别配置"中输入URL、特定的IP及IP地址范围并设定例外情况的方式调整其识别机制。值得一提的是,大部分OpenNMS配置信息都被以XML格式保存在文件中,熟悉XML的用户可以直接在对应文件中进行修改、而不必使用图形用户界面。
在配置过程中,我们发现用户需要经常查阅在线说明文档(好在指导材料还算全面),否则很多任务根本无法完成。之所以面临诸多挑战,是因为我们对于OpenNMS所使用的基础设施技术术语不够熟悉。从理论角度讲,节点应该会被自动识别并添加到监控体系当中,但由于我们的测试实验室拥有许多故意隔离出来的节点,因此这部分配置工作只能通过手动方式完成。
全局导航对于我们来说不太符合逻辑,不过我们认为各个环节与屏幕信息在整合之后会使其得到改善。也许这只是由配置引起的小问题,但我们发现在打开警报、事件或者通知选项卡后,屏幕上确实不会显示任何内容--除非大家进行搜索或者点击查看全局链接。
不过我们清楚,对于大型基础设施来说除非与筛选工具配合使用、否则屏幕上直接显示出的基础信息几乎没什么实际价值。我们在登录后只能看到采用仪表板风格的屏幕, 而且需要点击OpenNMS以返回管理面板。我们还可以点击链接激活另一个仪表板界面,其中提供一部分关于基础设施的简要信息,但通过横向比较、我们发现这套方案效果平平。
我们对于搜索功能非常赞赏,而OpenNMS也确实在搜索功能的可用性方面下足了功夫。我们尤其喜爱以节点为单位搜索DNS或者POP3等特定服务这一功能。另一项实用功能在于对与资产(包括位置、操作系统及运行状态)相关的数据字段进行搜索。
OpenNMS的报告功能非常全面,其中包含大量预创建模板并能够运行临时报告。报告可被输入到屏幕中或者以PDF及/或CSV格式汇总成文件。
我们发现OpenNMS的用户界面需要经过一定调整才能满足大部分使用者对直观性的需求,但随着对界面的愈发熟悉、我们的注意力更多集中在了这款产品出色的功能身上。管理员界面提供大量实用信息,相信能很快得到大家的肯定。我们也喜欢它带来的创建只读仪表板的功能。搜索功能非常强大,彩色编码警报也效果显著。总体来看,OpenNMS确实是一款能够支持多种平台的出色管理工具。
Monit
是一个Linux/UNIX系统上开源的进程、文件、目录和文件系统监控和管理工具,可自动维护和修复一些错误的情况。
Ganglia
是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格。
它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数据存储和可视化。它利用精心设计的数据结构和算法实现每节点间并发非常低的。它已移植到广泛的操作系统和处理器架构上,目前在世界各地成千上万的集群正在使用。它已被用来连结大学校园和世界各地,可以处理2000节点的规模。
JFFNMS
其实这款名为Just For Fun(只是开个玩笑)的网络管理系统并不只是个玩笑。在自述文件中有如下表述:"尽管名字带有戏谑意味,但此工具是一款严格意义上的网络管理系统,能够帮助用户监控自己的路由器、交换机、服务器以及其它网络设备。"该软件利用PHP编写,并通过SNMP(即简单网络管理协议)实现监控。
MRTG
多路由器流量图形化监视器是一款声名远播的精干工具,能够通过SNMP对流量实施监视--使用方法也非常简单,启用网络设备然后,呃,监视就行了。
Munin
根据本软件官方网站的介绍,Munin一名源自北欧神话中的某只乌鸦,这只小东西的主要任务是四处巡视并将情况回报给诸神之王奥丁。网站还说,在网络管理方面,Munin监控着一切联入网络的资源,并能够及时回答用户"哪些因素影响到了服务的性能表现"之类的问题。
Munin
是一个非常好用、安装和设置方便的监测软件。
Cacti
在英文中的含义是仙人掌,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用RRDtool绘画图形,而且你完全可以不需要了解RRDtool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、host以及任何一张图,还可以与LDAP结合进行用户验证,同时也能自己增加模板,功能非常强大完善。
Cacti是一款通过图形来显示网络随时间推移而产生的各项数据的工具,例如CPU负载以及带宽利用率等。它本质上来说是一款环状数据库工具的前端软件,所谓环状数据库工具,是指一种用于存储随时间推进而变化的数据的开源数据库工具。
Nagios
是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。
Nagios可运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。
Nagios对于基础设施规模不大的小型企业而言非常理想,在它的帮助下技术团队无需像大型企业那样花费大量时间通过命令行对节点加以配置。
Nagios诞生在1999年,尽管最初是针对Linux所设计,但它在Unix平台上的运行状况同样出色。Nagios Core是一款遵循GNU通用公共许可的开源软件,另有Nagios企业版为用户提供商业技术支持。
Nagios能够监控包括SMTP、POP3、HTTP、NNTP以及PING在内的多种网络服务。它还会追踪主机资源的使用情况,例如处理器负载、内存及磁盘使用量等。利用自定义插件,用户能够开发出自己的服务检查方案。Nagios Core与之前提到的几款工具有所不同,其Core版本与市场上的其它商业产品相比缩水比较严重。
如果想使用SNMP trap或者移动应用等功能,大家必须采购其"专业版"或者"商务版",而后端数据库选项则只在"商务版"中提供。"学生版"虽然仅仅售价50美元,但也只提供了快速入门指南、一套预配置虚拟机外加Web配置图形用户界面等基本功能。免费版本更是相当寒酸,只包含开源监控引擎。
HTTP、FTP以及SMTP等公共服务能够在不部署主机代理或者依赖于SNMP的前提下受到,但任何"私有"服务--例如CPU与内存使用率、用户信息、服务状态及运行流程等--都需要通过在主机上安装代理方可实现。针对不同类型的主机,供应商也提供不同种类的代理机制,例如Windows服务器、Linux/Unix服务器、打印机、路由器与交换机等。除了安装代理之外,大家还需要更新一系列配置文件以顺利启动监控工具。Nagios Exchange网站提供大量可选插件,足以满足用户在实际监控/管理工作中的不同需求。
在通知功能方面,Nagios能够通过电子邮件或者手机短信发送警示信息,并有专门的系统根据问题的严重程度向不同个人及小组传达情况。
Nagios Core必须运行在Linux或者Unix的衍生系统环境下,如果要使用Web界面(也就是CGI,即计算机生成界面),我们还需要准备一台web服务器(最好是Nagios与Apache一一对应)。
准备好前续工作后,我们需要从快速入门指南开始着手Nagios Core的安装工作。在我们的实际测试中,指南计划很快搁浅--因为我们选择Linux最新版本根本不在供应商的支持范畴之内。为了完成测试,我们不得不依靠第三方在线资源的指引将Nagios Core安装在CentOS 6.4版本中。必须抱怨的是,Nagios官方网站上根本就没有提供这样的备选说明。
Web用户界面中包含的CGI素材在外观与操作感受上都与Web页面非常相似。管理员启动页面左侧设有基本导航与公告/访问软件更新、技术支持与其它实用资源等选项。进入左侧的导航界面,我们可以访问各类指标,包括主机、问题以及报告的总体概述与细节信息。
“战术总结”屏幕显示出包括主机及服务在内的整套体系的当前运行状态。状态摘要则通过“关键”、“警告”、“未知”、“待定”以及“良好”等词汇对情况加以概括。网络图中显示了所有主机、各自运行状态以及彼此之间的连接方式。通过将光标移向不同主机,我们看到更为详细的概要信息。如果我们的基础设施由数百乃至上千台主机构成,那么这项功能恐怕没什么实用价值;但在小规模基础设施中,它倒确实能够提供实时的网络体系说明。
Nagios应用的一大优势在于能够在节点之间快速起效。略显平庸的用户界面使得资源没有被浪费在花哨的描述与表现形式上(但这也使界面较难上手)。虽然简单的设计不能算坏事,但我们仍然希望供应商能将界面风格加以进一步统一,同时对显示数据进行整理以提高可读性。当然,也许他们是故意通过这种笨拙的效果敦促用户尽快购买商业版本。
在报告功能方面,Nagios Core提供多种预置屏幕报告方式,用户可以在通过选项参数设置在下拉菜单中使用临时报告。但我们无法将报告内容以PDF或者其它任何格式加以导出。
单从免费版本来看,Nagios Core可谓名符其实--只提供“核心”功能组件,即最基本的基础设施监控引擎。虽然这样的方案在某些特定环境中也能顺利起效,但我们仍然希望花点时间进行任务管理配置。尽管Nagios Core的图形用户界面有些过时,但其性能表现非常出色、而且比其它全功能竞争方案更易于设置及管理。
Zabbix
Zabbix源自1998年,是一个开源的基于WEB界面的企业级分布式监控系统。其功能包括实时监控、自动搜索与映射以及可扩展性。
zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。
zabbix由2部分构成:zabbix server与可选组件zabbix agent。
zabbix server可以通过SNMP、zabbix agent、ping、端口监视等方法提供对远程服务器/网络状态的监视、数据收集等功能,它可以运行在Linux、Solaris、 HP-UX、 AIX、Free BSD、Open BSD、OS X等平台之上。
zabbix agent需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存、CPU等信息的收集。
zabbix agent可以运行在Linux、Solaris、 HP-UX、AIX、Free BSD、Open BSD、OS X、Tru64/OSF1、 Windows NT4.0、 Windows 2000/2003/XP/Vista)等系统之上。
zabbix server可以单独监视远程服务器的服务状态;同时也可以与zabbix agent配合,可以轮询zabbix agent主动接收监视数据(trapping方式),同时还可被动接收zabbix agent发送的数据(trapping方式)。
另外zabbix server还支持SNMP (v1,v2),可以与SNMP软件(例如net-snmp)等配合使用。
Zabbix架构
Zabbix支持多种网络方式下的监控,可通过分布式的方式部署和安装监控代理,整个架构如下图所示。
zabbix的主要特点
安装与配置相对简单
支持多语言(包括中文)
免费开源
自动发现服务器与网络设备
分布式监视以及WEB集中管理功能
可以无agent监视
用户安全认证和柔软的授权方式
通过WEB界面设置或查看监视结果
email等通知功能
等等
官方网站:http://www.zabbix.com
开源监控系统中 Zabbix 和 Nagios 哪个更好? http://www.zhihu.com/question/19973178
我比较看好zabbix这款监控软件,理由如下:
1.分布式监控,天生具有的功能,适合于构建分布式监控系统,具有node,proxy2种分布式模式
2.自动化功能,自动发现,自动注册主机,自动添加模板,自动添加分组,是天生的自动化运维利器的首选,当然于自动化运维工具搭配,puppet+zabbix,或者saltstack+zabbix,那是如鱼得水。
3.自定义监控比较方便,自定义监控项非常简单,支持变量,支持low level discovery,可以参考我写的文档自动化运维之监控篇---利用zabbix自动发现功能实现批量web url监控
4.触发器,也就是报警条件有多重判断机制,当然,这个需要你去研究一下,这也是zabbix的精华之处,
5.支持多种监控方式,agentd,snmp,ipmi,jmx,逻辑图如下
6.提供api功能,二次开发方便,你可以选用zabbix来进行二次深度开发,结合cmdb资产管理系统,业务管理系统,从而使你的自动化运维系统达到新的高度。
7.当然zabbix还有很多其他功能,这里不一一介绍了。
很多人说zabbix不简单,其实是zabbix的设计理念有些超前,当你都研究到一定程度,你不得不佩服zabbix的团队是非常强悍的,这种工作机制也是相对先进的。
国内的大厂,都有一套自己的监控系统,自己设计,自己开发,其功能也能和zabbix一样,更能适合于自己的需求,但一般企业用,特别是中型互联网公司,还是极力推荐zabbix。
另外附上我的文档Zabbix使用手册V1.4.pdf,这里面有我的经验总结,以及一些使用心得与技巧
最后建议大家多看官方文档
新浪微盘下载地址:最新文档版本为Zabbix使用手册V2.0.pdf
百度网盘下载地址:Zabbix使用手册V2.0.pdf_免费高速下载
同时提供zabbix的安装二次定制的RPM包,该项目地址为:
https://github.com/itnihao/zabbix-rpm/tree/master/zabbix-2.2.2
Hyperic HQ
是一个基于java的监控软件,由一个中心监控服务器和一个或多个远程代理组成,远程代理用来向服务器报告节点信息。
Hyperic HQ的主要作用是监测自定义类Web应用程序并对其进行跨物理、虚拟以及云环境的性能测试。这款工具也具备需要付费的企业版,该版本强化了报警功能,并能够更好地创建测试基准。
Hyperic HQ支持多种
Hyperic HQ不通过侵入的方式,从基础设施中生产的硬件、网络和应用等层中搜集实时的和历史上的数据
Hyperic HQ定义智能警报,帮助在问题造成损失之前,能够预见问题
Hyperic HQ通过定制的指示视图比较和关联不同资源的度量值,帮助你理解他们之间的相互作用关系
Hyperic HQ用单一的视图将资源和资源组关键的度量值显示出来,可以快速地评估环境的状态
c)Hyperic HQ跟踪所有日志,配置,安全事件数据
报告由所有被管理资源产生日志事件的实时和历史的详细信息
跟踪所有主机或应用的配置,帮助分析影响和控制变化
加强安全策略,侦测和记录物理的或远程的对环境中任何主机的访问
在环境中的任何地方,可以定义警报去跟踪详细的日志消息
Hyperic HQ可以将任何日志事件,配置改变或安全事件与计算环境的可用性相关联
d)Hyperic HQ通过报警和纠正的控制行动等方式管理可用性
Hyperic HQ可以定义任意简单或精细的条件产生警报
Hyperic HQ可以覆盖从操作系统的故障到服务层的响应时间等所有技术范围
Hyperic HQ对于发生在你环境中的所有日志,配置和安全事件等定义警报
Hyperic HQ根据需要,可以在设备上执行生产级的控制活动
串行或者并行地控制资源组合
不必编写代码,就可以将定制的控制脚本集成到HQ
e)Hyperic HQ扩展和定制,最优地管理你特有的环境需求
使用拖拽portlets设置你的操作仪表板,并很容易使用配置控制
NetDisco
NetDisco会通过SNMP自动检测连入网络的设备并创建用户的网络示意图。根据官方网站的说法,该软件的长项在于定位设备、创建连入清单,并对使用中的IP地址及交换机端口进行汇总。
NetworkAuthority Inventory
2006年由开源项目ZipTie蜕变而来的NetworkAuthority Inventory不断在检测及追踪连入设备的道路上开拓进取。它能够对设备配置进行备份及恢复,还可以对不同设备之间的配置情况加以比较。此外,它对于企业内部的商业用途也推行免费策略。
Ntop
Ntop能够按照使用协议或其它条件对占用网络资源的客户进行排序。它需要与NetFlow及sFlow协同工作。
Observium
Observium是一款自动检测网络的监控工具。根据官方网站的说法,"它的设计目标包括:尽可能多地收集有关设备的历史数据、尽可能少地在检测工作中要求人力介入,并且软件界面非常直观。"
Observium
是一个可自动发现网络中的思科设备和Linux系统的网络监控工具,包括了主要的网络硬件和操作系统的广泛支持。
OneOrZero AIMS
是一款管理工具,其中囊括了帮助台、知识库、时间管理器以及报告系统。
Zenoss
Zenoss Core是开源企业级IT网络管理软件-是智能监控软件,它允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。
Zenoss堪称我们的首选方案,这主要是由于其直观且专业的管理界面对于用户极具吸引力。另外,其环境配置与报告运作机制也非常简便;当需要帮助时,我们找到的用户指导文档非常翔实清晰--出色的说明资料在开源领域极为难得。但完美永远只是目标却无法真正达成,我们发现Zenoss对资源要求较高,即使只管理少数几台设备、它也需要消耗大量硬件及内存等附加资源。
Zenoss Core是一款开源网络管理工具,可以运行在red hat Linux(简称RHEL)或者社区企业操作系统(简称CentOS)两大Linux版本当中。另有一套虚拟设备版本,能够利用VMware Player运行在最小安装配置下的CentOS当中。Zenoss Core基于GNU GPL2许可。除了开源版本之外,Zenoss还提供多套商业监控解决方案。
Zenoss不需要搭配代理,且使用SNMP、SSH、Telnet以及WMI等现有协议。在识别过程中,Zenoss会收集个别设备的组件信息并归纳其潜在运行依赖关系,通过这种方式创建出的基础架构清单被称为"配置模型",这也正是Zenoss网络管理方案的核心所在。
除了使用自动识别功能之外,管理员还可以手动输入信息并将监控的ZenPack数量调整至200以上,从而拓展单一或多台设备所搭配的配置模型。ZenPack从使用层面看类似于开源免费社区所开发的功能性插件。Core ZenPack被打包在Zenoss Core版本当中,而商业版ZenPack则只会出现在商业版本中。
在解决了一系列硬件需求与依赖关系问题后,我们最终成功在运行着CentOS 6.4最小化版本(无图形用户界面)的虚拟机中安装了Zenoss 4.2。我们发现Zenoss在设计思路上并没有考虑轻量级基础设施的配置现状--事实上最少要6GB内存才能让一台仅安装了操作系统和Zenoss的设备进入正常运行状态。Zenoss资源密集型方案的头衔可谓实至名归,它能够监控多达一千台设备,且建议配置为最少16GB内存与八个CPU核心,存储空间和传输速度也是越强越好。
Zenoss能够监控多种操作系统平台,其中包括网络设备(例如路由器与交换机)、服务器以及特定应用程序。它采用分层式架构:用户层、数据层、处理层与采集层。用户层基本负责提供用户界面,数据层则负责从三个不同的数据库中收集数据,处理层管理采集层与数据层之间的通信工作,采集层利用一系列服务向数据层提供收集到的数据。
可用性监控的实现依赖于一系列手段,例如利用ICMP或者SNMP响应对TCP/IP端口及服务进行测试及查询。Zenoss还能够对Windows及Linux流程及服务进行可用性检测。
Zenoss通过收集SNMP OID值的方式实现性能监控。整个过程需要借助预加载MIB(即管理信息库)、新的本地MIB以及对定制性能插件的内置支持等机制。
安装完成之后,Zenoss就能像物理设备那样接受来自不同设备(包括台式机、笔记本及移动设备)浏览器的访问。其用户界面高效而直观,在默认情况下会显示警示信息以及基础设施地理位置。用户还可以通过配置在浏览器中查看任何URL、内部或外部页面。仪表板中显示的信息可以通过开发者提供的所谓“门户组件”进行调整,各项目的对应显示窗口也可随时添加、删除并在仪表板内部任意拖拽及调整窗口尺寸。这样的开放性让我们能够随心所欲定制出符合需要的选项。“守护进程关闭”、“消息”与“生产状态”等功能也拥有对应的门户组件。
在向监控工具中添加设备时,可以使用自动识别功能或者手动输入设备的IP地址或主机名称。在设备添加完成之后,具体项目会显示在“基础设施”选项卡中、并附带状态基础信息与彩色编码提示。
除了"基础设施"之外、"事件"选项卡中显示的基本属于同类信息,但只按事件进行排序。事件与基础设施两种标签使管理员能够通过输入数列标题对大部分数列加以分类。对于每个事件,可以执行不同的处理操作,包括“只应答事件但不实际执行”及向设备发出“手动ping”或者“snmpwalk”指令以检索更多信息等。事件一旦处理完成,Zenoss会将其关闭并进行归档。
Zenoss Core提供强大的报告功能,从基础的准备就绪报告到定制报告功能应有尽有。除了标准的事件、设备及性能报告之外,Zenoss还提供完善的图形化报告,包括在同一份报告中包含多份汇总自多台设备的图形化报告。这些报告可在屏幕中显示、打印在纸面上或者被保存为PDF文件。
目前已经有大量第三方ZenPack可供下载,其中一些甚至允许用户实现Zenoss与移动Android设备间的交互需求,我们也可以利用由Zenoss提供的API说明文档创建属于自己的ZenPack。
虽然Zenoss Core对于系统配置的要求颇为严苛,但这也使得整套监控环境在性能上极为强大、足以处理规模化设备与数据流量。Zenoss的用户界面灵活而富于现代气息,丰富的选项与定制化仪表板令人印象深刻。无论是显示在屏幕上还是打印成PDF形式,其统计报告都极具综合性且信息排布井井有条。另外,我们还要再次掌握Zenoss那超过两百页的PDF用户手册,面面俱到的内容与清晰明了的指导在开源领域极为难得。
Collectd
collectd是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制,比如以RRD 文件形式。当系统运行和存储信息的时候,Collectd会周期性统计系统的相关统计信息,那些信息可以用来找到当前系统性能瓶颈(如作为性能分析performance analysis)和预测系统未来的load(如能力部署capacity planning)。如果你需要美观的图形来显示您的数据,并且已经厌烦了内部解决方案,恭喜您,你找到了正确的地方。
Argus
是一个网络连接监控器,可以利用它来定制监控网络中符合某种条件的计算机,例如网络空闲、断开等。
Big Brother
诞生于1990年代中期,主要用来监控联入网络的系统。自其问世以来,该工具的作者就同时推出了对应的商业化版本,如今被称为Big Brother专业版,该项目于2001年被Quest软件公司收购。本工具的开源版本仍然适用于学生或是非商业类用户。
Big Sister
根据这款软件作者的说法,他是由于对Big Brother印象深刻但又希望在其基础上做出一些改变而产生了制作Big Sister的念头。在该软件的自述文件中,作者谈到他在开发时始终抱持提高性能、减少发生问题时的报警数量并对其它细节进行强化的宗旨。
Xymon
此工具原本名为Hobbit,如今已经以Xymon的名头在服务器、应用程序以及网络监控领域打拼出了一片天地。它能够通过网页为用户列出上述各项入网组件的健康状况。根据官方网站的说法,其设计灵感源自Big Brother,并与Big Sister相类似,Xymon走的也是进一步完善Big Brother的路线(例如在性能方面)。Xymon的部署较为简便,并且完全免费。
GroundWork Monitor
GroundWork是一款用于监控网络、应用程序以及云的平台。该软件具备开源社区版本,但出品公司目前主打的是所谓Flex版本,按每台设备每年计费--此外另有名为Quickstart的版本,尽管在技术支持上存在诸多限制,但49美元每年、可用于50台设备的设定还是让注重成本的用户对其青睐有加。
OpenQRM
作为管理型软件,主要服务于拥有大量虚拟机系统的数据中心。其所支持的虚拟化技术虽然不多,但KVM、VMware以及Xen等主流产品都能处理。它甚至能够利用自身信息对Nagios加以配置。
Opsi
Opsi(开放式PC服务器集合)是一款专为Windows客户端设计的客户端管理系统。该系统自身运行于Linux服务器之上,能够实现操作系统、应用程序以及各类补丁的安装。它还能够对软、硬件库存以及授权许可信息进行管理。
OTRS
OTRS (开放式技术实体服务)提供了帮助台及IT服务管理。OTRS集团还针对该工具推出了咨询、技术支持、定制以及托管等服务。在按需定制的版本中,帮助台功能以软件即服务的形式呈现。
Pandora FMS
Pandora FMS的主要功能在于监控系统及应用程序,并及时检测包括内存泄漏、站点损坏以及网络接口故障在内的各类问题。
RANCID
RANCID本义为令人厌恶之物,不过大家可千万别被它的名字所吓倒,因为它的功能相当惊人:能够实实在在地替代思科最新推出的配置异化工具。也就是说,它能够监控以路由器为代表的各类设备的配置并详细记录下其上所发生的任何变动。此外,与RANCID这一名称相反,该工具能够支持大部分厂商的设备,包括Juniper路由器、惠普交换机、Redback网络存储器等等。
TclMon
TclMon是一款利用独立平台Tcl所编写而成的网络监控软件。其服务器端会从网络设备上收集信息,而客户端则负责数据的可视化处理。它会自动生成软、硬件配置清单以及网络拓扑结构图。
Wireshark
这款工具本来名为Ethereal,其成为"世界上最重要的网络协议分析工具"的最初目标,如今已经得到了众多IT专业人士的认可。它能够采集网络流量信息,执行深度数据包检测并允许在离线的情况下进行全面的分析工作。
Net-SNMP
Net-SNMP源自1992年卡耐基梅农大学Steve Waldbusser领导的网络组开发的snmp实现,是一款应用程序套件,作用在于使得SNMP从1到3的各个版本能够在IPv4及IPv6协议之上正常生效。它能够从支持SNMP的设备上收集信息、接收SNMP通知,并具备其它一些相关功能。
SmithSNMP
是SmartSNMP的一个fork。SmartSNMP由笔者当时所在的景略半导体(上海)团队开发,SmithSNMP是笔者现在出户后基于前者单独维护的项目,目前在feature上领先于前者。
解释一下为何另起炉灶。最近接到前东家通知,他们考虑在未来有可能将SmartSNMP注册为商标,而且由于笔者目前不再受聘于贵司,不便再向SmartSNMP上游仓库提交重大变更。
特此声明,笔者与前东家已经达成协议,双方一致同意今后笔者不再以SmartSNMP的名义推广该项目,一致同意笔者基于GPL发布新版本,即现在的SmithSNMP。
同时SmithSNMP和SmartSNMP之间不存在技术对立,SmithSNMP会密切关注上家仓库的动向,并适当同步代码,也不排除未来上家仓库合并SmithSNMP代码的可能性。只要基于GPL共识,我们会彼此尊重对方。
今后凡是称SmartSNMP,特指:https://github.com/credosemi/smartsnmp
今后凡是称SmithSNMP,特指:https://github.com/begeekmyfriend/smithsnmp,以及在git@osc上导入的仓库。
下面介绍一下SmithSNMP从上家继承的特性:
使用C99和Lua5.1写成。
支持用户使用Lua写私有mib,代码支持GPL例外,配置和开发极其简单。
支持SNMPv1/v2c/v3,兼容Net-SNMP(可以做sub-agent)。
可以运行在Linux、BSD以及OpenWRT系统,同时支持32位和64位。
核心模块编译为core.so可由Lua虚拟机动态加载,体积小,可嵌入其它模块。
自带丰富的MIB例子和单元测试。
以下是SmithSNMP单独开发的新特性:
移除对libevent以及libubox的依赖,使用自家写的事件驱动。
支持SNMPv2 trap,可自定义实现,兼容Net-SNMP的trapd。(注:此特性最初来自OSC用户反馈,是笔者开发SmithSNMP的原动力)
利用SNMPv3增强安全性,基于OpenSSL的MD5和SHA认证,AES对称加密。
二次开发中文文档:http://git.oschina.net/begeekmyfriend/smithsnmp/wikis/home
SNMP的MIB浏览器 SnmpB
SnmpB is an SNMP MIB browser. It supports SNMPv1, SNMPv2c, and SNMPv3. SnmpB can browse, edit, load, and add MIB files and can query SNMP agents. It also supports agent discovery, trap events, and graph plotting.
Android平台移植Net-Snmp小记 http://blog.csdn.net/qqbling/article/details/50865983
android--snmp移植 下面的代码用来在机顶盒中获取cable moden Mac地址 http://blog.csdn.net/new_abc/article/details/8610203
smnp-android移植与简洁使用 http://my.oschina.net/zhoulc/blog/111430
zhoulc 发布时间: 2013/03/03 17:20 阅读: 729 收藏: 1 点赞: 1 评论: 0
移植snmp到Android获取CM mac地址
1.linux 网络命令 dhcp使用
Netcfg:通过串口获取IP地址,android自带的命令,system/core
Udhcpc:动态获取ip,系统内核自带。
Netcfg eth0 dhcp:动态分配ip,给eth0传递参数。
2.Snmp源码移植和测试case
1)把Snmp源码编译成动态库
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_C_INCLUDES := external/net-snmp/inc
LOCAL_SRC_FILES:= src/snmp_client.c \
src/mib.c \
src/parse.c \
src/snmp_api.c \
src/snmp.c \
src/large_fd_set.c \
src/cert_util.c \
src/snmp_auth.c \
src/asn1.c \
src/md5.c \
src/snmp_parse_args.c \
src/system.c \
src/vacm.c \
src/int64.c \
src/read_config.c \
src/pkcs.c \
src/snmp_debug.c \
src/tools.c \
src/snmp_logging.c \
src/text_utils.c \
src/snmpv3.c \
src/lcd_time.c \
src/keytools.c \
src/file_utils.c \
src/dir_utils.c \
src/scapi.c \
src/callback.c \
src/default_store.c \
src/snmp_alarm.c \
src/data_list.c \
src/oid_stash.c \
src/fd_event_manager.c \
src/mt_support.c \
src/snmp_enum.c \
src/snmp-tc.c \
src/snmp_service.c \
src/snprintf.c \
src/snmp_transport.c \
src/transports/snmpUDPBaseDomain.c \
src/transports/snmpUDPIPv4BaseDomain.c \
src/transports/snmpTCPBaseDomain.c \
src/transports/snmpSocketBaseDomain.c \
src/transports/snmpIPv4BaseDomain.c \
src/transports/snmpUDPDomain.c \
src/transports/snmpTCPDomain.c \
src/transports/snmpAliasDomain.c \
src/transports/snmpUnixDomain.c \
src/transports/snmpCallbackDomain.c \
src/snmp_secmod.c \
src/snmpusm.c \
src/snmp_version.c \
src/check_varbind.c \
src/container.c \
src/container_binary_array.c \
src/container_null.c \
src/container_list_ssll.c \
src/container_iterator.c \
src/cmu_compat.c \
src/ucd_compat.c \
src/snmp_openssl.c \
src/openssl/openssl_md5.c \
src/openssl/openssl_sha1.c \
src/openssl/openssl_set_key.c \
src/openssl/openssl_des_enc.c \
src/openssl/openssl_cbc_enc.c \
src/openssl/openssl_aes_cfb.c \
src/openssl/openssl_aes_core.c \
src/openssl/openssl_cfb128.c \
src/strlcpy.c \
src/strlcat.c
LOCAL_SHARED_LIBRARIES := \
libcutils
LOCAL_MODULE_TAGS := eng
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE:= libnetsnmp
include $(BUILD_SHARED_LIBRARY)
生成libnetsnmp.so动态库,然后push到system/lib下面
2)snmp依赖的资源文件夹mibs
把mibs cp到系统system/etc下面(路径可以通过改源码配置)
#define NETSNMP_DEFAULT_MIBDIRS "$HOME/ .snmp/mibs:usr/local/net-snmp/share/snmp/mibs;./mibs"
只需在后面添加一个路径即可即添加 system/etc/mibs;
3)测试case编译成可执行文件
获取cable modle mac地址的方法
int get_mac(char *mac)
{
printf("get_mac in------------------------------------\n");
char snmpdata[32];
char *ptmac;
if (0 != snmp_session_init(CM_MAC, ip, community_string, snmpdata))
{
printf("(err) snmp_session_init failed\n");
return -1;
}
ptmac = strstr(snmpdata, " ");
strcpy(mac, ptmac+1);
return 0;
}
Main函数
strcpy(ip, "192.168.100.1");
strcpy(cmts_ip, "192.168.10.68");
strcpy(community_string, "public");
strcpy(cmts_community_string, "private");
get_mac(mac);
100.1 和 10.68两个参数基本是固定的
获取mac详细代码请看:http://blog.csdn.net/new_abc/article/details/8610203
Android.mk文件 编译成可执行文件
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
#LOCAL_MODULE_PATH := $(TARGET_OUT)/bin
LOCAL_MODULE := cmdiag
LOCAL_SRC_FILES := cmdiag.c
LOCAL_C_INCLUDES += \
external/net-snmp_useful_libsnmp/inc \
LOCAL_SHARED_LIBRARIES := \
libnetsnmp \
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_TAGS := eng
include $(BUILD_EXECUTABLE)
3.开机启动脚本的学习
1)Init.godbox.sh
启动盒子执行脚本,主要功能
1加载hisi驱动到内核中
2后台执行一些可执行文件,启动服务
3执行logcat命令,抓取日志存放到android.log中
2)mk-all.sh
主要是用在在线编译时,制作镜像和制作升级包时执行。
指定用户编译线程数
1生成mkbootimg 以及 mkyaffs2image.301
2编译kernel。如果.config不存在,则认为是第一次编译
3临时添加的device部分库 与 bin文件
4编译froyo
5海思的一些文件与一些配置文件
6将rootdir编入kernel
7生成并拷贝目标文件到out目录
8 STB 镜像文件制作
9编译recovery,生成recovery.img以及升级包
4.显示mac地址的两种方式
1)通过设置系统属性-共享内存的学习
设置属性:property_set("DEVICEINFO_CM_MAC", mac);
获取属性:property_get("DEVICEINFO_CM_MAC",my_mac,"");第三个参数为默认值
重现步骤:1生成可执行文件
2在启动盒子执行的脚本里面init.godbox.sh添加后台执行可执行文件脚本命令
Chmod 777 system/bin/cmdiag
/system/bin/cmdiag $
3通过串口把snmp用到的资源文件mibs cp到相应的路径下面(参考2.2)
4在对应要显示到页面的代码里添加property_get函数,实现CM mac地址的显示。
2)通过集成到jni的实现方式,头文件引用的学习,c字符串分割
不需要通过设置获取属性来读取共享空间的数据,直接在每次调用显示CM mac地址的时候,去调用snmp获取CM mac。
重现步骤:1把测试case获取CM mac集成到jni里面。
2在Android.mk里面添加导入的头文件以及连接的动态库
$(ANDROID_INCLUDE_TOP)external/net-snmp/inc \
LOCAL_SHARED_LIBRARIES := \
libnetsnmp
3字符串分割,格式化CM mac地址的显示方式(C字符串转变成大写,去掉特殊符号)
#include <stdio.h
#include <string.h
char * my_strupr(char *str)
{
char *p = str;
while (*p != '\0')
{
if(*p = 'a' && *p <= 'z')
*p -= 0x20;
p++;
}
return str;
}
char* get_mac()
{
char str[] = "0:e:b7:23:1f:75";
char my_str[32];
char delims[] = ":";
char *result = NULL;
result = strtok( str, delims );
printf( "result zhoulc is \"%s\"\n", result );
memset(my_str, 0, sizeof(my_str));
while( result != NULL ) {
// printf( "result is \"%s\"\n", result );
if(strlen(result)<=1){
printf("aaaaaaaaa\n");
strcat(my_str,"0");
strcat(my_str,result);
}
else{
strcat(my_str,result);
}
printf( "result zhoulc is \"%s\"\n", result );
result = strtok( NULL, delims );
}
my_strupr(my_str);
printf( "my_str zhoulc is \"%s\"\n", my_str );
return NULL;
}
main()
{
get_mac();
}
字符串改变之前:0:e:b7:23:1f:75
字符串改变之后:000EB7231F75
snmp移植到单片机
SNMPv1 and SNMPv3 on contiki 2.5 https://github.com/schoenw/contiki-snmp
The focus of this project is implementation and evaluation of the SNMP
protocol for devices supporting IEEE 802.15.4 Radios and the Contiki
Embedded Operating System. The targeted platform is AVR Raven.
The current implementation supports the GET, GETNEXT and SET
operations, the SNMPv1 and SNMPv3 message processing models and the
User-based Security Model with the HMAC-MD5-96 authentication and
CFB128-AES-128 symmetric encryption protocols.
The Contiki SNMP agent has been tested working with the Contiki 2.5
version. As such, it is provided here already integrated into a
working Contiki 2.5 source tree.
http://www.snmplink.org/newproducts/
Light-weight SNMP agent on telosb and contiki http://www.ietf.org/mail-archive/web/lwip/current/msg00120.html
On Wed, Dec 21, 2011 at 10:26 PM, Brinda M. C <brinda at ece.iisc.ernet.in>
Our implementation occupies a memory footprint of just 4KB of text program memory on TelosB motes. Our performance test results showed that our implementation also brings down computational overheads substantially. We tested our SNMPv1 agent implementation on both TinyOS-2.x and Contiki OS running 6LoWPAN/RPL protocol stack. We also encountered this issue on the mote. Given the fact of the existing protocol stacks, have you managed to fix both your uSNMP codes and the existing BLIP inside of the node?
基于W500+STM32的SNMP协议应用 http://www.amobbs.com/thread-5607833-1-1.html
基于简单网管协议(SNMP)的单片机实现方法 http://wenku.baidu.com/link?url= ... tyJEPDCnCtxjez7X2Ka
网管SNMP Agent的快速开发 http://wenku.baidu.com/view/ddb2c20102020740be1e9b94.html
嵌入式SNMP Agent在微波通信网管的实现 http://wenku.baidu.com/view/16241deefab069dc5022015b.html?re=view
SNMP V2c Agent for Microchip TCP/IP Stack http://ww1.microchip.com/downloads/en/AppNotes/00870b.pdf
Microchip TCP/IP Stack supports two versions of SNMP:
• SNMP Version 1 (SNMP V1)
• SNMP Version 2 Community-Based (SNMP V2c)
Most of the features are common to both versions.SNMP V2c offers additional protocol operations, such as Get_Bulk , a rich set of error indications,community-based access, etc.The SNMP Agent described here is designed to run on Microchip’s PIC
® microcontrollers and is implemented using services provided by the free Microchip TCP/IP Stack. The following main features are included:
• Portable across all PIC18, PIC24, PIC32 MCUs and dsPIC® DSC families of microcontrollers
• Functions independently of RTOS or application
• SNMP ‘C’ source code is supported on
Microchip’s MPLAB® IDE and can be compiled with PIC18, PIC24, PIC32 MCUs and dsPIC DSC compilers ‘out of the box’
• Supports SNMP Version V1 and V2c over User Datagram Protocol (UDP)
• Supports Get, Get_Bulk , Get_Next,Set and Trap Protocol Data Units (PDUs)
• Supports up to 255 dynamic OIDs and unlimited constant OIDs
• Supports sequence variables with a 7-bit index
• Supports enterprise-specific Trap (s) with one variable information
• Handles access to constant OIDs automatically
• Utilizes a MIB that can be stored internally or externally on EEPROM
• Includes PC-based Microchip customized MIB script compiler
Ducter
是集设备管理,产品管理,服务上线,服务器操作等于一体的运维管理系统。该系统分为dcuter-server/ducter-web两个部分。下载:Ducter 介绍.PPT
Ducter 可以帮你实现:
如何实时的登记各个服务分布在哪些服务器?
如何快速在几十、几百甚至几千台服务器上发布产品?
如何快速的完成已发布产品的退回?
如何不让开发人员登录线上服务器又能收集服务信息?
如何解决产品在不同服务器上配置不同的问题?
如何实现不同类型产品能够按照统一模式进行发布?
如何解决产品的测试、预发布、线上环境的平滑发布问题?
如何实现产品发布的过程中不影响线上业务的可用性?
如何能够解决各种从服务器上收集信息的需求?
如何实现线上服务进程的守护?
如何当产品服务器布局改了,能自动反映到监控上?
freeipmi
1.简介 http://www.ibm.com/developerworks/cn/linux/l-ipmi/
IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准。用户可以利用 IPMI 监视服务器的物理特征,如温度、电压、电扇工作状态、电源供应以及机箱入侵等。Ipmi 最大的优势在于它是独立于 CPU BIOS 和 OS 的,所以用户无论在开机还是关机的状态下,只要接通电源就可以实现对服务器的监控。Ipmi 是一种规范的标准,其中最重要的物理部件就是BMC(Baseboard Management Controller 如图1),一种嵌入式管理微控制器,它相当于整个平台管理的“大脑”,通过它 ipmi 可以监控各个传感器的数据并记录各种事件的日志。管理ipmi的工具有freeipmi、openipmi、ipmitool等。
ipmitool 是一种可用在 linux 系统下的命令行方式的 ipmi 平台管理工具,它支持 ipmi 1.5 规范(最新的规范为 ipmi 2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。Ipmitool 有两种使用方式(如 表1)
2. 使用 ipmi 的先决条件
想要实现对服务器的 ipmi 管理,必须在硬件、OS、管理工具等几个方面都满足:
2.1 服务器硬件本身提供对 ipmi 的支持
目前惠普、戴尔和 NEC 等大多数厂商的服务器都支持 IPMI 1.5,但并不是所有服务器都支持,所以应该先通过产品手册或在 BIOS 中确定服务器是否支持 ipmi,也就是说服务器在主板上要具有 BMC 等嵌入式的管理微控制器。
2.2 操作系统提供相应的 ipmi 驱动
通过操作系统监控服务器自身的 ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对 OpenIPMI(ipmi 驱动)的支持来提供对 ipmi 的系统接口。
2.3 ipmi 管理工具
本文选择的是 Linux 下的命令行方式的 ipmi 平台管理工具 ipmitool。
3. 实现对 Linux 服务器的 ipmi 管理
利用 ipmitool 实现对服务器的 ipmi 管理有两种方式:①通过 OS 监控本地服务器;②通过网络监控远程服务器。本文针对这两种监控方式分别给出了利用 ipmi 本地获取 cpu温度和远程控制电源的例子。
openSCADA
是一个开源的监控和数据采集系统。它是独立于平台和一个现代化的系统设计,同时提供安全性和灵活性的基础上。http://oscada.org/news/single-pa ... d-on-the-openscada/
ecoSCADA
是一个基于web的节能服务,用于监控能源消耗和识别能源浪费。ecoscada用于建立多个建筑物的能源基准,并根据这些基准监视建筑物的能源性能。服务记录气体,电力和水的消耗的数据,以及其他相关因素。这些数据保存在ecoscada的在线数据库,它可以通过用户直接或通过API存取。
http://www.programmableweb.com/api/ecoscada
EcoSCADA is a web-based energy savings service that is used to monitor energy consumption and identify wasteful energy use. EcoSCADA is useful for establishing benchmarks for energy usage across multiple buildings and monitoring their performance against those benchmarks. The service records data on gas, electricity, and water consumption as well as other relevant factors. This data is stored in EcoSCADA's online database where it can be accessed by users directly or via API.
OpenAPC http://www.openapc.com/
现在,有不只一种病毒操作工业控制系统包括连接PLC,是时候改变到另一种解决方案了,不依赖于操作系统。所以要保持Stuxnet蠕虫和其他缓冲区溢出风险远离SCADA和PLC控制系统:
openapc是一个开源的APC(先进过程控制)解决方案,具有高度的灵活性和可配置的、涵盖范围广泛的自动化、可视化和过程控制任务从家到工业自动化控制。它包括几个专门用于不同任务的子组件。这里的控制软件包,包括可视化和过程的openapc包控制部分。
cnconstruct是CAD工具,可用于创建用于控制如XY表运动和处理数据和连接工具材料加工。
beamconstruct是一个高度专业化的CAD应用工业激光打标的目的,它可以用于二维和三维激光扫描系统创建数据。更多详细信息beamconstruct激光打标软件,请点击这里。
控制应用程序的创建与集成控制室编辑的可视化界面可以执行一些任务,依赖应用程序是如何配置和使用:
可视化
HMI人机界面(或MMI /人机界面)
可编程控制器/过程控制
SCADA /监控、数据采集与处理
家庭自动化和专业自动化
不需要编写程序的用户界面设计和编程
Now that there is not only one virus out there that manipulates industrial control systems including connected PLCs it is time to change to an alternative solution that does not depend on one operating system only. So keep the Stuxnet worm and other, buffer-overflow dependent risks way from your SCADA and PLC system:
OpenAPC is an Open Source APC (Advanced Process Control) solution that is highly flexible and configurable and covers a wide range of automation, visualization and process control tasks from home control up to industrial automation. It consists of several sub-components that are specialised for different tasks. Here the ControlRoom software package covers the visualisation and process control part of the OpenAPC package.
CNConstruct is a CAD-tool that can be used to create motion and processing data for controlling e.g. XY-tables and connected tools for material processing.
BeamConstruct is a highly specialised CAD-application for industrial laser marking purposes, it can be used to create data for 2D and 3D laser scanner systems. For more and detailled information about BeamConstruct laser marking software please click here.
Control applications created with the integrated ControlRoom editors visual interface can perform several tasks - dependent on how the application is configured and used:
Visualisation
HMI / Human Machine Interface (or MMI / Man Machine Interface)
PLC / process control
SCADA / supervisory control, data acquisition and processing
Home automation and professional automation
User interface design and programming without the need to write programs
开源citect
开源wonderware
UnrealIRCd http://www.oschina.net/p/unrealircd/similar_projects
是一个开源的IRC 服务器。于1999年5月开始开发,UnrealIRCd 的前身是用于DALnet IRC 网络的Dreamforge IRCd,经过多年的发展,许多令人兴奋的新功能已经添加到UnrealIRCd,比较显著的特点如下:
Channel Half-ops (+h)
Channel Owners (+q) and Channel Admins (+a)
Advanced anti-flood and anti-spam systems (such as Spamfilter)
Advanced banning through 'extended bans'
Swear filtering (+G)
Channel linking (+L)
Hostname cloaking (+x)
Color blocking and stripping (+c/+S)
Vhosts
WebTV Support
DCCDeny
SSL encrypted client and server connections
Ziplinks
Advanced and highly configurable configuration file
Module support
Extensive documentation in several languages (in HTML and on IRC through /HELPOP)
And much more... see also the Features section in the official documentation
UnrealIRCd 可以在多种操作系统上,适用于大多数 *nix 操作系统,包括Linux、BSD、MacOS X、Solaris和HP-UX,也适用于Windows(NT4/2K/XP/2003/Vista/7)。
UnrealIRCd 是一个设计高深的IRCd,因此它可能不是初学者的最佳选择。
Pidgin http://www.oschina.net/p/pidgin/
原名 Gaim,是一款采用 GTK 开发的跨平台即时聊天客户端软件,支持包括 Aim、ICQ (基于Oscar协议)、MSN Messenger、Yahoo、IRC、Jabber、Gadu-Gadu、SILC、Groupwise Messenger和Zephyr等即时通信软件。你可以同时用不同的账号在多个即时通信网络中登录。这意味着你可以一边与AOL Instant Messenger上的朋友聊天,一边向Yahoo Messenger上的同事发送文件,同时还能在某个IRC频道中聊天。
Pidgin(Gaim)对这些即时通信网络的支持相当全面,除了一般的聊天之外,可以支持文件传输、离开提示、键入提示等等。此外,它还拥有不少独特的功能。最流行的要算是好友提醒功能了,当某个特定的好友离开或者脱机,它会用某种方式对你进行提醒,比如发送消息、播放声音甚至运行某个程序。 |
|