Ttyutils 终端会话监控软件

程序名称:Ttyutils

授权协议: MIT

操作系统: Linux

开发语言: C/C++

Ttyutils 介绍

Ttyutils 是一套 UNIX/Linux 终端会话监控软件工具包,也是一个可定制和扩展的平台。通过建立一个伪终端来运行一个程序,Ttyutils
能够截获被监控程序全部的输出数据,以及完整的控制被监控程序的标准输入。

在截获程序的输出数据之后,Ttyutils
可以将这些数据录制到一个压缩和加密的文件中,后续可以通过一个播放器回放来重现当时的会话,或者将这些数据发送给网络上的一个监控客户程序来达到实时终端会话监控的目的。终端会话播放器、实时监控程序默认都包含在
Ttyutils 中,不用额外安装,立即可用。

除此之外,Ttyutils 将利用截获到的数据在内存中建立一个虚拟终端,这个终端的内容总是和用户在屏幕上看到的内容保持一致,它类似于 xterm
这样的终端仿真器,但是在内存中,对用户不可见。用户可以通过在这个内存终端仿真器上设置屏幕特征匹配条件来触发定制的动作,例如当屏幕上第一行中第一列到第十列的内容匹配正则表达式
‘[0-9a-z].*’ 时,发送一封邮件到某个邮箱,或者弹出一个对话框,等等。触发的动作是用户自己编写的一个程序,它几乎可以干任何它喜欢的事情。

和 telnet,ssh 等软件不同,Ttyutils 不能帮助你登陆到远程的主机,它只能监控已经登陆的终端会话,您可以将 Ttyutils
理解为运行在终端上的外挂软件包。实际上,Ttyutils 在设计上将其定位为二次开发平台,除了基础的文件录制/播放、实时监控功能之外, Ttyutils
提供的功能都服务于二次开发,这导致 Ttyutils 的很多功能难于使用,却无比灵活。我们总是希望 Ttyutils
能够更好的适应不同的应用场合,事实上也确实如此,看似完全没有干系的两个应用,其基础平台都是采用 Ttyutils。这个特点是 Ttyutils
设计上的一个与众不同之处。

Ttyutils 的用法类似于 shell 内置命令 `exec’,所以,Ttyutils 软件包中的主要程序命名为 ttyexec。

初次接触 Ttyutils 的用户可能对上面的描述不甚理解,可以看看终端监控解决方案,如果您对 Ttyutils 的内部原理好奇,可以看看刊登在 IBM
DeveloperWorks 中国网站上的 使用 Ttyutils 截获 UNIX/Linux 终端。

特征

  • 内置 vt102+xterm 兼容的虚拟终端仿真,支持字符属性,色彩,等等,内部编码使用 Unicode,支持字符集转换。支持国内常用的终端 (包括长城、实达、新大陆、湘计) 辅串口指令序列,可以通过简单的扩展配置来支持更多。
  • 灵活的配置参数允许管理员精确的控制 ttyutils 各个方面的行为。配置文件自身是一个 Lua 脚本文件。对于不熟悉 Lua 的管理员,可以使用和 .ini 文件格式类似的配置文件(这个配置文件最终也是由 Lua 配置文件中调用一个函数来解析)。
  • Ttyutils 的绝大多数代码使用纯 C 语言编写,它应该具有不错的性能和可移植性。
  • 嵌入了 Lua 解释器的最新版本,用户能够用 Lua 语言来定制和扩展 Ttyutils,当然,C 语言总是可用的,但是对于通常的任务,使用 Lua 语言会让事情更加简单,快速,也更稳定。
  • Ttyutils RPC (远程过程调用) 协议允许管理员在远程管理 Ttyuils,或者允许第三方应用程序访问 Ttyutls 提供的服务。Ttyutils 为RPC 协议进行了封装,提供了一组 API 接口,开发人员使用封装后的接口时不用理会协议的细节,基本 API 是 C 语言接口,但也提供了 Lua 和 Python 语言的接口。
  • 基于插件的体系让扩展新功能更加方便容易,可以根据具体的应用场合选择使用或禁用特定的插件,安装新插件不需要升级现有的系统。可以使用 C 和 Python 语言来开发新插件。
  • 功能强大的管理控制台允许管理员方便的从远程管理 Ttyutils,管理控制台支持 Lua 脚本,可以将常用的任务保存到文件中,而不用每次都重新输入。
  • 中心服务器可以管理运行在一台或者多台主机上的多个监控程序实例,当然,也可以在没有中心服务器的情况下运行监控程序,只是缺乏了管理能力。
  • 事件触发机制允许用户精确的控制终端会话,事件触发条件可以匹配热键,当前光标位置,以及用正则表达式去匹配当前屏幕内容。事件动作可以使用 C,C++,以及 Ttyutils RPC 协议支持的邦定语言编写。因为 RPC 协议提供有 C 语言接口,用户如果要邦定到新的语言也不会有太大困难。
  • 可以将程序的输出数据录制到一个加密和压缩的文件中。提供有 GUI 版本的播放器用来播放 Ttyutils 录制的文件。GUI 播放器可以在主流的 UNIX/Linux 平台上运行,也可以在 Windows 平台上运行。当然,Ttyutils 也提供了在终端中运行的播放器。
  • 内置监视服务器,客户端能够连接到这个服务器来实时的查看程序的输出。提供有 GUI 版本的监视器用来连接 Ttyutils 监视服务器来实时查看程序的输出,GUI 监视器可以在流行的 UNIX/Linux 平台上运行,也可以在 Windows 平台上运行。当然,Ttyutils 也提供了在终端中运行的监视器。
  • Ttyutils 基础库提供了丰富的功能, API 接口清晰,用户可以利用 Ttyutils 库提供的功能来实现各种终端监控相关的应用程序。Ttyutils 的辅助工具包就是利用 Ttyutils 库实现的各种功能专一的应用程序,包括文件录制工具,播放工具,等等。
  • 可以在很多 UNIX/Linux 平台上使用,不需要对系统进行特殊的修改或配置。遵循标准,可以和其它标准兼容的软件协作。
  • 支持国际化,Ttyutils 会根据系统当前的语言环境自动选择相应的语言,目前支持中文和英文,可以通过翻译一个独立的文件来支持更多的语言。当 Ttyutils 运行在不支持的语言环境时,将使用英语。
  • 需要少量的磁盘空间来安装,需要少量的内存来运行。Ttyutils 运行时需要 OpenSSL,ZLib,GLib 的支持,通常它们是系统的标准配置。
  • 比较详细的文档,在本站点可以找到关于 Ttyutils 各方面的资料。
  • 基于 MIT 授权协议发布,可以在开放源代码项目中使用,也可以在商业和封闭源代码项目中使用。Ttyutils 内部使用了 OpenSSL,ZLib,GLib 和 Lua 来实现一些特定的功能,它们的授权和 Ttyutils 授权协议没有冲突。

适用性

Ttyutils 主要用于以 UNIX/Linux 终端作为用户接口的环境,这包括:

  • 实时监控 Telnet,SSH,控制台,和终端仿真上的会话
  • 终端会话录制和回放,可用于教学,交流经验,追踪责任
  • 终端任务自动化,可用于自动化日常系统管理,软件自动测试
  • 利用事件触发机制结合编写事件程序来扩展现有程序的能力

Ttyutils 在实现上是小巧的、稳定的。实践证明,用户在一台 Linux 或者 AIX
主机上运行成百上千个进程,连续工作半年以上不会出现任何问题。Ttyutils 非常快,用户在被监控的终端上操作时感觉不到任何明显的延迟。

Ttyutils 官网

http://sourceforge.net/projects/ttyutils/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


IPTraf是一个使用简单的网络状况监视工具。
所谓 rootkit ,是一类入侵者经常使用的工具。这类工具通常非常的隐秘、令用户不易察觉,通过这类工具,入侵者建立了一条能够常时入侵系统,或者说对系统进行实时控制的
系统管理员可以利用Health Monitor 去监控网络中的每一台工作站PC或者服务器,一旦出现问题,它可以用邮件或者短信息的方式通知你。你还可以自行指定让它监控哪些组件和服务,比如CPU利
当服务器遭到黑客攻击时,在多数情况下,黑客可能对系统文件等等一些重要的文件进行修改。对此,我们用Tripwire建立数据完整性监测系统。虽然
Hobbit是一个基于WEB用于监视系统运行状态和网络信息的系统。Hobbit能监视所指定的本地或远程主机以及服务,同时提供异常等通知功能
MX4J是Java管理扩展技术的一个开源实现,支持JSR3 (JMX) 和JSR160 (JMX Remote API).
JFoxMX是国内第一个完整实现SUN JMX 1.2 规范的产品,实现了SUN JMX 最新的 1.2 规范,JMX 1.2 规范。
Snort是美国Sourcefire公司开发的发布在GPL v2下的IDS(Intrusion Detection System)软件
Cerebro 是集群监控工具和库的集合。
Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。
Moodss是一个linux下监控操作系统、数据库、应用服务器等的工具
OpenNMS是一个企业级基于Java/XML的分布式网络和系统监控管理平台。OpenNMS是你管理网络的绝好工具,它能够显示你网络中各中终端和服务器的状态和配置,为你方便地管理网络提供有效的信息。
MRTG (Multi Router Traffic Grapher)是一套可用来绘出网络流量图的软件,由瑞士奥尔滕的Tobias
MemoryManager 是一个Eclipse插件,它提供一个图形界面告诉我们内存的使用情况。可以使用MemoryManager帮助我们分析哪些程序或workbench工具占用内存比较多。
Zenoss Core是开源企业级IT管理软件-是智能监控软件,他允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss
SYSSTAT 是一个软件包,包含监测系统性能及效率的一组工具,这些工具对于我们收集系统性能数据,比如 CPU
Ttyutils 是一套 UNIX/Linux 终端会话监控软件工具包,也是一个可定制和扩展的平台。通过建立一个伪终端来运行一个程序,Ttyutils
Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等
这个软件允许你连接到JMX服务器,并而提供浏览现有managed beans(MBeans)并可以对其时行操作。
Cacti 在英文中的意思是仙人掌的意思,Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据,使用