Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1) - 编程入门网
集监控,就一定要调用一个 shell。它可以是 bash、csh、ksh 或其他任何允许调用目标脚本或命令并可以检索输出的、受支持的 shell。最通常的选择包括:
本地 shell:如果目标主机上运行着 JVM 的话,那么线程可以通过调用 java.lang.Process 来访问这种 shell。 远程 Telnet 或 rsh :这两个服务都允许调用 shell 和 shell 命令,但由于它们的安全性相对较低,所以很少使用它们。它们在大多数现代发行版上的默认状态为禁用。 安全 Shell(SSH):SSH 是最为常用的远程 shell。它提供了对 Linux shell 的完全访问,而且被公认是安全的。在文中基于 Shell 的例子里,我将主要使用该机制。大多数 OS 都提供 SSH 服务,包括所有 UNIX 系列、Microsoft® Windows®、OS/400 及 z/OS。 Java运行时监控,第3部分: 监控应用程序生态系统的性能与可用性(1)(3)时间:2011-02-13 IBM Nicholas Whitehead图 1 展示了本地 shell 与远程 shell 的基本差异: 图 1. 本地 shell 与远程 shell 要用服务器启动一个无人值守的对话需要进行一些设置。首先必须要创建一个由私钥和公钥组成的 SSH 密匙对。然后将公钥置于目标服务器,私钥置于远程监控服务器 —— 数据收集器可以在此获取该私钥。完成上述操作之后,数据收集器便能够提供私钥及其密码短语(passphrase),并能够访问目标服务器上的安全远程 shell 了。使用了密匙对之后,目标帐户的密码就是多余的了,根本不需要它。具体设置步骤如下: 确保目标主机在本地的已知主机的文件中有入口。这个文件列出了已知 IP 地址或名称以及为每一个已知 IP 地址或名称验证的相关 SSH 公钥。在用户级别,该文件通常为用户主目录中的 ~/.ssh/known_hosts 文件。 用监控帐户(例如,monitoruser)连接到目标服务器。 在主目录中创建一个名为 .ssh 的子目录。 将目录改为 e .ssh 目录并发布 ssh-keygen -t dsa 命令。该命令提示密钥名和密码短语。然后会生成两个叫做 monitoruser_dsa(私钥)和 monitoruser._dsa.pub(公钥)的文件。 将私钥复制到一个安全的可访问的位置,数据收集器将从这个位置运行。 用 cat monitoruser_dsa.pub >> authorized_keys 命令将私钥内容追加到 .ssh 目录中名为 authorized_keys 的文件中。 清单 1 展示了我刚才所描述的过程: 清单 1. 创建一个 SSH 密匙对
现在数据收集器已经能够使用 SSH 连接到目标 Linux 主机,该 SSH 连接名为 whitehen-desktop,它运行着 Ubuntu Linux。 这个例子的数据收集器将使用一个名为 org.runtimemonitoring.spring.collectors.shell.ShellCollector 的通用收集器类来实现。该类的一个实例将以 UbuntuDesktopRemoteShellCollector 这个名称部署在一个 Spring 上下文中。但要完成整个过程还需要一些其他的依赖项: 需要有一个调度器来每分钟调用一次收集器。该调度器由 java.util.concurrent.ScheduledThreadPoolExeut |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |