最新版本:3.0.3-1

|
概览 |
|
|
目录 |
系统 |
|
类别 |
监控 |
|
用户卷 |
yes |
|
最小 内存 |
288 MB |
|
操作系统 |
Linux |
|
约束 |
no |
MON 是一个应用监控组件,可从应用中的其他组件收集性能和资源使用统计信息(即计数器)。 组件通过 mon 终端将其计数器报告给 MON。
MON 提供了一个可视界面,使用户可以通过 Web 浏览器访问和查看组件计数器。 通过该可视界面,用户可以创建包含一个或多个图表的视图。 每个图表都显示了一个或多个组件计数器。 可通过下列方法访问该可视界面:
有关访问和使用该可视界面的更多详细信息,请参阅《用户界面参考指南》。
MON 还支持对组件计数器进行后台监控。 MON 将在后台监控 alarm_view 属性指定的单个视图中的所有计数器。 每当其中的某一个计数器低于或超过指定的阈值时,MON 都会在 CA 3Tera AppLogic 网格控制器上生成警报(即在显示板上发布消息)。 无需打开 MON 可视界面的浏览器就能使 MON 在后台监控组件计数器。
资源
|
资源 |
最小值 |
最大值 |
默认值 |
|
CPU |
0.05 |
4 |
0.10 |
|
内存 |
288 MB |
2 GB |
288 MB |
|
带宽 |
1 Mbps |
500 Mbps |
100 Mbps |
终端
|
名称 |
目录 |
协议 |
说明 |
|
mon |
in |
CCE |
接收性能和资源使用统计信息的终端。 |
|
web |
in |
HTTP |
用于访问和查看组件计数器的终端。 |
|
aux |
in |
Any |
用于以编程方式收集计数器信息的输入。 |
默认接口已启用。 组件使用默认接口向 CA 3Tera AppLogic 报告它已成功启动。 还可以使用该接口以安全 shell 方式从 CA 3Tera AppLogic 控制器登录到组件(主要是为了诊断和故障排除)。 CA 3Tera AppLogic GUI 使用默认接口来访问 MON 组件的可视界面。
用户卷
|
卷 |
说明 |
|
data |
读/写,为 MON 的持续状态提供存储(例如:视图及图表)。 |
属性
|
属性名 |
类型 |
说明 |
|
title |
字符串 |
要在 MON 的可视界面的浏览器窗口中显示的标题。 如果为空,则使用应用名称。 默认值为空。 |
|
用户 |
字符串 |
进行基于 Web 的身份验证所用的用户名。 只有在通过 web 终端(即通过网关)访问 MON 时,才使用身份验证。 在通过 CA 3Tera AppLogic GUI 访问 MON 的可视界面时没有身份验证。 如果为空,则不进行身份验证。 默认值为空。 |
|
password |
字符串 |
进行基于 Web 的身份验证所用的密码。 如果 user 为空,则不使用该属性。 默认值为空。 |
|
alarm_view |
字符串 |
包含要在后台监控的组件计数器的视图的名称。 只能指定一个视图名称。 如果为空,则禁用后台监控。 默认值为空。 |
错误消息
当组件无法启动时,网格控制器的组件日志文件或系统日志中可能会出现下列消息:
httpd 未启动
为所有组件定义了下列计数器组:
有关如何在组件中创建并监控自定义计数器的信息,请参阅创建自定义计数器。
通过 CA 3Tera AppLogic GUI 监控应用
下图显示将 MON 用于简单应用的典型用法。 在该应用中,只能通过 CA 3Tera AppLogic GUI 访问监控器。

正在使用的组件:
所有组件的 mon 终端都连接到 mon 的 mon 终端。
通过端口 80 上的 CA 3Tera AppLogic GUI 和 IP 地址监控应用
下图显示如何使用 MON 通过 CA 3Tera AppLogic GUI 或 IP 地址来访问 Application 监控器。

正在使用的组件:
所有组件的 mon 终端都连接到 mon 的 mon 终端。
admin 的 out 终端连接到 mon 的 Web 终端,因此用户可以通过在 admin 中的 ip_addr 属性指定的 IP 地址来访问监控器。
通过端口 8080 上的 CA 3Tera AppLogic GUI 和应用 IP 地址监控应用
下图显示如何使用 MON 通过端口 8080 上的 CA 3Tera AppLogic GUI 或通过应用 IP 地址来访问 Application 监控器。

正在使用的组件:
所有组件的 mon 终端都连接到 mon 的 mon 终端。
INSSLR 配置为将 http 流量转发至 WEBx8,将其他所有 TCP 流量转发至 aux 终端。 PS8 配置为通过 out8 将端口 8080 上的所有流量转发至 mon 的 Web 终端。 这样,用户可以通过端口 8080 上的 INSSLR 中的 ip_addr 属性指定的应用 IP 地址来监控应用。
注意:MAIL 组件不随 CA 3Tera AppLogic 一起发布。
后台监控
该用例描述如何使用 MON 在后台监控组件计数器,并在组件计数器超出范围时让其生成警报。
只要组件计数器低于或超过指定的阈值,MON 都会向 CA 3Tera AppLogic 控制器中生成警报。 然后会向显示板记录一条消息,指定哪个组件的哪个计数器超出范围。 对于每个组件,CA 3Tera AppLogic 控制器只将最后一条警报记录到显示板,但如果收到针对该组件的多条警报,则会在显示板消息中指定。 所有警报都会记录到 CA 3Tera AppLogic 控制器上的 /var/log/messages 中。
注:无需打开 Application 监控器的浏览器就能使 MON 在后台监控组件计数器。
停止监控特定组件计数器:
要禁用后台监控,请执行以下操作之一:
清除 MON 上的 alarm_view 属性并重新启动 MON 实例(或重新启动应用)。
数据收集接口
从版本 1.1.3 开始,MON 组件会提供与 REST 服务类似的数据收集 API,它可以 XML、JSON 和 UDL 格式导出计数器配置和值。 有关该 API 的详细信息,请访问 MonDataCollectionInterface。
已知限制
要通过 CA 3Tera AppLogic GUI 监控应用,应用中的 MON 组件名称应是 mon。
组件内所用的开源和第三方软件
|
软件 |
版本 |
已修改 |
许可 |
说明 |
|
CGI.pm |
3.05 |
否 |
免费 |
CPAN 上的主页 |
|
perl-CGI-Session |
4.03 |
是 |
Perl(Artistic 和 GPLv2) |
CPAN 上的主页 |
|
perl-Carp-Assert |
0.18 |
是 |
Perl(Artistic 和 GPLv2) |
N/A |
|
perl-Data-Dumper |
2.121 |
是 |
Perl(Artistic 和 GPLv2) |
N/A |
|
perl-Error |
0.15 |
是 |
Perl(Artistic 和 GPLv2) |
N/A |
|
perl-IPC-Run |
0.80 |
否 |
Perl(Artistic 和 GPLv2) |
N/A |
|
cups-libs |
1.1.22-0.rc1.8.9 |
否 |
带有例外的 LGPL。 阅读源中的 LICENSE.txt 文件。 |
N/A |
|
file |
4.10-2 |
否 |
BSD-like |
N/A |
|
freetype |
2.1.9-8 |
否 |
FreeType 许可和 GPLv2 |
N/A |
|
httpd |
2.0.63 |
否 |
Apache 许可 |
N/A |
|
perl-Error |
0.15-1 |
是 |
Perl(Artistic 和 GPLv2) |
CPAN 上的主页 |
|
samba |
3.0.10-1.fc3 |
否 |
GPLv3 |
N/A |
|
mod_perl |
2.0.2-6.3 |
否 |
GPLv2 |
N/A |
标准组件计数器列表
概览
本文档定义了 CCA 导出的所有标准计数器的列表。 CCA 是在所有 CA 3Tera AppLogic 组件中运行的计数器收集代理。 CCA 用于将计数器报告给 MON 组件公开的监控 GUI。 在某些支持的组件平台上,这些计数器的可用性可能有限制(如下面的计数器表中所述)。 如果组件操作系统支持某个给定的计数器,则当组件的 mon 输出终端连接到 MON 组件时,该计数器应该在 MON GUI 中可见。
CPU 摘要
|
计数器 |
Linux |
Solaris |
Windows |
|
CPU I/O Wait |
yes |
yes |
no |
|
CPU Idle |
yes |
yes |
yes |
|
CPU Irq |
yes |
no |
yes |
|
CPU Nice |
yes |
no |
no |
|
CPU Soft Irq |
yes |
no |
no |
|
CPU System |
yes |
yes |
yes |
|
CPU Total |
yes |
yes |
yes |
|
CPU User |
yes |
yes |
yes |
文件系统
|
计数器 |
Linux |
Solaris |
Windows |
|
Allocated File Handles |
yes |
yes |
no |
|
Block Devices |
yes |
yes |
no |
|
Block Devices Unique |
yes |
yes |
no |
|
Character Devices |
yes |
yes |
no |
|
Character Devices Unique |
yes |
yes |
no |
|
Directories |
yes |
yes |
no |
|
Directories Unique |
yes |
yes |
no |
|
Fifos |
yes |
yes |
no |
|
Fifos Unique |
yes |
yes |
no |
|
Free File Handles |
yes |
yes |
no |
|
Regular Files |
yes |
yes |
no |
|
Regular Files Unique |
yes |
yes |
no |
|
Sockets |
yes |
yes |
no |
|
Sockets Unique |
yes |
yes |
no |
|
Used File Handles |
yes |
yes |
no |
内存统计信息
|
计数器 |
Linux |
Solaris |
Windows |
|
活动 |
yes |
no |
no |
|
Buffers |
yes |
no |
no |
|
Cached |
yes |
no |
yes |
|
可用 |
yes |
yes |
yes |
|
High Free |
yes |
no |
no |
|
High Total |
yes |
no |
no |
|
High Used |
yes |
no |
no |
|
Inactive |
yes |
no |
no |
|
Low Free |
yes |
no |
no |
|
Low Total |
yes |
no |
no |
|
Low Used |
yes |
no |
no |
|
Swap Cached |
yes |
no |
no |
|
Swap Free |
yes |
yes |
no |
|
Swap Pages IN |
yes |
yes |
no |
|
Swap Pages OUT |
yes |
yes |
no |
|
Swap Total |
yes |
yes |
no |
|
Swap Used |
yes |
yes |
no |
|
合计 |
yes |
yes |
no |
|
已使用 |
yes |
yes |
no |
排定程序
|
计数器 |
Linux |
Solaris |
Windows |
|
Context switches |
yes |
yes |
yes |
|
Interrupts |
yes |
yes |
yes |
|
Jobs for 1 min |
yes |
yes |
no |
|
Jobs for 15 min |
yes |
yes |
no |
|
Jobs for 5 min |
yes |
yes |
no |
|
Pages IN |
yes |
yes |
yes |
|
Pages OUT |
yes |
yes |
yes |
|
Process startups |
yes |
yes |
no |
|
Processes blocked |
yes |
no |
yes |
|
Processes running |
yes |
no |
yes |
CPU#X
|
计数器 |
Linux |
Solaris |
Windows |
|
CPU I/O Wait |
yes |
yes |
no |
|
CPU Idle |
yes |
yes |
yes |
|
CPU Irq |
yes |
no |
yes |
|
CPU Nice |
yes |
no |
no |
|
CPU Soft Irq |
yes |
no |
yes |
|
CPU System |
yes |
yes |
yes |
|
CPU Total |
yes |
yes |
yes |
|
CPU User |
yes |
yes |
no |
卷 X
|
计数器 |
Linux |
Solaris |
Windows |
|
Bytes Read |
yes |
yes |
yes |
|
Bytes Written |
yes |
yes |
yes |
|
Disk Reads |
yes |
yes |
yes |
|
Disk Sectors Read |
yes |
yes |
no |
|
Disk Sectors Written |
yes |
yes |
no |
|
Disk Writes |
yes |
yes |
yes |
|
Free Files |
yes |
yes |
no |
|
可用空间 |
yes |
yes |
yes |
|
Time Spent in Reads |
yes |
no |
yes |
|
Time Spent in Writes |
yes |
no |
yes |
|
Total Files |
yes |
yes |
no |
|
Total Space |
yes |
yes |
no |
|
Used Files |
yes |
yes |
no |
|
Used Space |
yes |
yes |
no |
终端 X
|
计数器 |
Linux |
Solaris |
Windows |
|
Recvd bytes |
yes |
yes |
yes |
|
Recvd packets |
yes |
yes |
yes |
|
Sent bytes |
yes |
yes |
yes |
|
Sent packets |
yes |
yes |
yes |
自定义计数器
概览
每个运行 ccad(计数器收集代理)后台进程的组件允许第三方实用工具定义和收集自定义计数器。 此功能称为扩展接口,它使组件创建者可以选择通过标准 MON 用户界面来监控组件特定的计数器数据。
创建自定义计数器
要监控自定义计数器,您需要将计数器定义添加到 ccad 配置,并将实际计数器值馈送到 ccad
添加计数器定义
必须在可选的 /etc/ccad.conf 配置文件中定义自定义计数器(采用 UDL 格式)。 每次更改配置后,必须重新启动 ccad 后台进程,这样才能使更改生效。
下面是一个简单的示例配置:
counters Apache
{
pace = 1000
pipe = /tmp/cca
counter Total_Accesses
{
name = "Total hits"
desc = "Total number of hits"
units = "#"
type = "MAX"
}
counter Total_kBytes
{
name = "Total bytes"
desc = "Total number of bytes"
units = "bytes"
type = "MAX"
}
counter BusyWorkers
{
name = "Active requests"
desc = "Number of active requests"
units = "#"
type = "MAX"
}
counter IdleWorkers
{
name = "Idle servers"
desc = "Number of idle servers"
units = "#"
type = "MAX"
}
}
此示例定义了 4 个计数器。 每个计数器实体都支持以下属性:
稍后在 MON 中显示计数器时,根级计数器实体名称将用作实体名字。 另外,下列属性对此实体有意义:
除上面所述的计数器定义外,ccad.conf 允许对计数器进行统一分组。 可以通过将计数器放置在组实体中更深的一个级别来实现此目的,如下例中所示:
counters Plants
{
pace = 2000
pipe = /my-pipe
counter tree: desc = "Any tree" , units = "#"
group Fruits
{
desc = "Delicious Fruits!!!"
counter pears : desc = "Number of pears" , units = "pears"
counter apples: desc = "Number of apples" , units = "apples"
}
group Vegetables
{
counter potato: desc = "Number of potatoes", units = "potatoes"
counter tomato: desc = "Number of tomatoes", units = "tomatoes"
}
}
此配置在 MON 的 GUI 中生成 3 个自定义计数器实体-Plants、Delicious Fruits!!! 和 Vegetables,以及在它们之间分发的 5 个定义的计数器。 组支持 desc 属性(类似于计数器实体),与约束更强的组实体名称相比,该属性定义的组名称提供更丰富的信息。 计数器名称在配置文件中应当是唯一的,否则无法对重复的计数器名称执行计数器收集。
馈送计数器数据
让 ccad 使用适当的计数器定义运行后,需要馈送实际计数器值。 为此,请将计数器值写入 ccad 创建的命名管道(由 /etc/ccad.conf 中的管道属性指定,默认值为 /tmp/cca)。
正确格式为下列其中一项:
“计数器 = 值”(名称和值用 = 分开)
“计数器 : 值”(名称和值用 : 分开)
对于计数器集,应该通过在命名管道中 独行输出 . 或换页字符 (\f) 刷新(到 MON)。 计数器收集脚本(以 Bash 语言编写)可通过执行下列命令行将计数器馈送到 ccad:
echo "Total_Accesses = 31" > /tmp/cca echo "Total_kBytes = 22241" > /tmp/cca echo "BusyWorkers = 6" > /tmp/cca echo "IdleWorkers = 34" > /tmp/cca echo "." > /tmp/cca
应该按照 /etc/ccad.conf 中指定的每个 pace 毫秒值完成此操作
下面是一个可收集所需数据并将这些数据馈送到 ccad 的简单 bash 循环。 馈送的数据比所需数据要多,因为将所有收集的数据直接馈送到 ccad(这会忽略不是计数器值的行)比分析数据后再馈送到 ccad 要快一些:
while true; do curl -s http://in/server-status?auto | sed "s/^Total\ /Total_/g" > /tmp/cca # this parses the data so it matches out counter definitions sleep 1 || exit 4 echo "." > /tmp/cca
done
示例
Apache
注意:服务器启用“扩展状态”
#!/bin/bash
DEFAULT_PACE=1000
DEFAULT_PIPE=/tmp/cca
CCAD_CONF=/etc/ccad.conf
STATUS_URL='http://in/server-status?auto'
CURL=/usr/bin/curl
SED=/bin/sed
SLEEP=/bin/sleep
function get_value_from_config {
CONF_VALUE=`grep -oE "$1[[:space:]]*=[[:space:]]*[^[:space:]]+" $CCAD_CONF |cut -d"=" -f 2|tr -d " "`
}
get_value_from_config "pace"
PACE=${CONF_VALUE:-$DEFAULT_PACE}
PACE=$(( $PACE / 1000 ))
get_value_from_config "pipe"
PIPE=${CONF_VALUE:-$DEFAULT_PIPE}
test -p $PIPE || exit 3
while true; do
$CURL -s "$STATUS_URL" | $SED "s/^Total\ /Total_/g" > $PIPE
sleep $PACE || exit 4
echo "." > $PIPE
done
Mysql
#!/bin/bash
DEFAULT_PACE=1000
DEFAULT_PIPE=/tmp/cca
CCAD_CONF=/etc/ccad.conf
MYSQL='/usr/bin/mysql'
TR=/usr/bin/tr
SLEEP=/bin/sleep
function get_value_from_config {
CONF_VALUE=`grep -oE "$1[[:space:]]*=[[:space:]]*[^[:space:]]+" $CCAD_CONF |cut -d"=" -f 2|tr -d " "`
}
get_value_from_config "pace"
PACE=${CONF_VALUE:-$DEFAULT_PACE}
PACE=$(( $PACE / 1000 ))
get_value_from_config "pipe"
PIPE=${CONF_VALUE:-$DEFAULT_PIPE}
test -p $PIPE || exit 3
while true; do
$MYSQL -e 'show status'|$TR '[[:blank:]]' '=' > $PIPE
$SLEEP $PACE || exit 4
echo "." > $PIPE
done
计数器收集 Web 服务 API
监控 API 概述
MON 组件会导出在其辅助输出终端上连接的组件中收集的计数器数据和配置。 这是通过自定义的基于 REST 的协议(通过 HTTP 运行)完成的。 此协议定义 3 种资源类型:
每一个类型都嵌入到上一个类型的范围中。 也就是说,实体仅在组件范围中才有意义,而计数器仅在特定实体范围中才有意义。 数据收集 API 允许检索对 MON 已知的所有计数器配置和值。
MON 以下列任一结构化文本格式导出请求的数据配置与值:
JSON(专供支持 JavaScript 的浏览器客户端使用)
监控 API 协议
该协议仅使用 GET HTTP 方法,因为它仅提供读取功能。 因此,每个支持的协议请求类型都可通过 URI 和输出结构来定义。 URI 中被视作特殊的字符应使用标准 % 编码进行转义。 我们按其 XML 模式定义输出(主要输出格式为 XML)。 通过直接使用各自输出格式表示的结构和属性(例如 UDL 实体与 XML 实体、UDL 属性与 XML 属性、JSON 对象与 XML 实体、JSON 对象属性与 XML 属性)方法,可转换为其他输出格式(UDL、JSON)。
所有输出的根节点都包含时间戳属性,提供创建响应时的服务器时间。
遵守所有支持 URL(调用)的描述。
计数器配置调用
/monapi/desc[?fmt=]
以指定的输出格式返回所有可用组件的列表( 为已知输出格式之一,例如 xml)。
输出:
<response timestamp="1194967464"> <appliance name="main.web" /> <appliance name="main.in" /> </response>
计数器值调用
/monapi/val/<apps>/<ents>/<cnts>[?fmt=]
返回指定计数器的值。 如果忽略任何 app、ent 或 cnt 参数,则假定使用通配符值。 因此,例如,/monapi/val/main.web 将意味着“组件 main.web 所有实体的所有计数器的值”。
输出:
<response timestamp="1194967464">
<appliance name="main.web">
<entity name="Terminal in">
<counter name="Sent bytes" value="23234" />
<counter name="Received bytes" value="690432" />
</entity>
</appliance>
</response>
| 版权所有 © 2011 CA。 保留所有权利。 | 就该主题发送电子邮件至 CA Technologies |