安装
您不需要任何 root/admin 权限。您可以在服务器上的某处解压缩 ServerAgent-X.X.X.zip。然后使用 Unix 上的 startAgent.sh 脚本或 Windows 上的 startAgent.bat 脚本启动代理。
该代理是用 Java 编写的,您需要 JRE 1.5 或更高版本才能运行它。请注意,您可以自己创建包含自己的 JRE 的代理包,因此您不必在服务器上安装 java(我们在 windows 平台上对其进行了测试)。为此,只需在代理文件夹中创建一个 JRE 文件夹并在其中复制一个已安装的 JRE。将 .bat 文件中的 java 命令更改为 java 可执行文件的路径,它将起作用。
用法
要启动代理,只需运行 startAgent.bat/sh 文件。它将打开客户端可以连接和查询指标的 UDP/TCP 服务器端口。一些信息将打印到标准输出,通知您收集指标的问题(记录详细程度由 --loglevel 参数调节)。
您可以将侦听端口指定为参数(0 禁用侦听),默认为 4444:
$ ./startAgent.sh --udp-port 0 --tcp-port 3450
INFO 2011-11-25 19:02:14.315 [kg.apc.p] (): 将 TCP 绑定到 3450
您可以在启动代理时使用 --auto-shutdown 选项,以便在最后一个客户端断开连接后自动停止它。建议仅将此功能用于 TCP 连接:
$ undera@undera-HP:/tmp/serverAgent$ ./startAgent.sh --udp-port 0 --auto-shutdown
INFO 2011-11-25 19:48:59.321 [kg.apc.p] ():当所有客户端断开连接时,代理将关闭
INFO 2011-11-25 19:48:59.424 [kg.apc.p] (): 将 TCP 绑定到 4444
您可以使用 --sysinfo 选项查看可用的系统对象:
$ ./startAgent.sh --sysinfo
INFO 2011-11-25 19:51:25.517 [kg.apc.p] (): *** 记录可用进程 ***
INFO 2011-11-25 19:51:25.542 [kg.apc.p] (): 进程:pid=24244 name=bash args=-bash
INFO 2011-11-25 19:51:25.543 [kg.apc.p] (): 进程: pid=25086 name=dash args=/bin/sh ./startAgent.sh --sysinfo
INFO 2011-11-25 19:51:25.543 [kg.apc.p] (): 进程: pid=25088 name=java args=java -jar ./CMDRunner.jar --tool PerfMonAgent --sysinfo
信息 2011-11-25 19:51:25.549 [kg.apc.p] (): *** 记录可用文件系统 ***
信息 2011-11-25 19:51:25.551 [kg.apc.p] (): 文件系统: fs=/dev type=devtmpfs
信息 2011-11-25 19:51:25.551 [kg.apc.p] (): 文件系统: fs=/ type=ext4
信息 2011-11-25 19:51:25.551 [kg.apc.p] (): 文件系统: fs=/var/run type=tmpfs
信息 2011-11-25 19:51:25.551 [kg.apc.p] (): 文件系统: fs=/home type=ext4
信息 2011-11-25 19:51:25.552 [kg.apc.p] (): 文件系统: fs=/var/lock type=tmpfs
信息 2011-11-25 19:51:25.552 [kg.apc.p] (): 文件系统: fs=/proc type=proc
INFO 2011-11-25 19:51:25.553 [kg.apc.p] (): *** 记录可用的网络接口 ***
INFO 2011-11-25 19:51:25.554 [kg.apc.p] (): 网络接口: iface=lo addr=127.0.0.1 type=Local Loopback
INFO 2011-11-25 19:51:25.554 [kg.apc.p] (): 网络接口: iface=eth0 addr=192.168.0.1 type=Ethernet
信息 2011-11-25 19:51:25.555 [kg.apc.p] (): *** 完成记录 sysinfo ***
信息 2011-11-25 19:51:25.555 [kg.apc.p] (): 将 UDP 绑定到 4444
INFO 2011-11-25 19:51:26.560 [kg.apc.p] (): 将 TCP 绑定到 4444
--interval <seconds> 参数可用于更改指标收集频率。
将服务器代理与其他应用程序一起使用
服务器代理使用简单的纯文本协议,任何人都可以使用代理的能力实现客户端,基于 kg.apc.perfmon.client.Transport 接口。如果有人感兴趣,请在支持论坛上启动主题,我将描述如何将第三方客户端应用程序连接到代理。
ServerAgent 具有简单的文本协议,可以处理 UDP 和 TCP 传输。大多数情况将使用 TCP。
要与代理进行第一次交谈,请在本地开始。然后使用 telnet 实用程序连接到它:
用户@ubuntu:~$ telnet localhost 4444
正在尝试 127.0.0.1...
连接到本地主机。
转义字符是 '^]'。
如果连接成功,您应该在 ServerAgent 控制台日志中看到“接受新的 TCP 连接”消息。键入“test”并在 telnet 聊天中按 Enter,服务器应以简短的“Yep”回答:
测试
是的
输入“退出”:
出口
外部主机关闭连接。
而已。您发送命令行,服务器应答。命令行由命令组成,有时带有参数。参数与命令用冒号分隔。
可能的命令是:
exit - 终止当前客户端会话并关闭与代理的连接,无参数
test - 测试服务器是否存活,无参数
shutdown - 终止所有客户端连接并关闭代理进程,无参数
interval - 'metrics' 命令中使用的更改指标报告间隔,单个参数是以秒为单位的整数值。可以在指标报告的中间更改间隔。示例:间隔:5
指标 - 启动自动指标收集,参数是要收集的指标列表,如下所述。示例:指标:cpu
metrics-single - 调用单个指标集合迭代。示例:metrics-single:mem