20.4. AAS-APM的安装配置

20.4.1. AAS-APMServer的安装

在windows/linux环境下,解压AAS-APMServer-V9.0.zip后,进入到mydomain域目录,启动Apusic应用服务器即可。

启动成功后,访问http://IP:PORT/,使用用户名/密码,admin/admin登陆后即表示成功安装并启动APMServer。

[注意]注意

第一次启动的时候,需要进行初始化工作,会需要大约5分钟的系统初始化时间,请耐心等候。

20.4.2. AAS-APMAgent的安装

20.4.2.1. Windows下的安装

1.获取AAS-with-APMAgent-V9.0.zip后,拷贝并解压到windows目录下。如果获取的是AAS-APMAgent-V9.0.zip,则需要将压缩包解压至Apusic应用服务器主目录下,并修改名称为apm。

2.设置系统环境变量,设置正确的JAVA_HOME与PATH环境变量。

3.进入到apm目录下,打开setup.bat文件进行配置。主要配置项如下:


set AGENT_DOMAIN=mydomain //需要监控的Apusic应用服务器的域 
set AGENT_CONF_NAME=w30 //监控配置文件,必须3个字符,第一个必须是字符,最好是如下形式。同一个server端的后置节点配置文件名称必须唯一
set SERVER_UDP_HOST=192.168.102.11 //APMServer端的IP地址
set AGENT_TCP_PORT=7750 //同一台机器监控两个后置节点这个端口必须不同
set SERVER_UDP_RUNTIME_PORT=6901
set SERVER_UDP_LISTENT_PORT=6902
set SERVER_UDP_LWST_CALLSTACK_PORT=6703
set AGENT_LICENCE_FILE=apmagent-licence.txt //同一台电脑上所有要监控域都指向同一个licence,一定确保没有中文路径,jennifer不支持中文路径
set AGENT_LOG_FILE=apmagent.log

4.进入到cmd命令下,运行setup.bat脚本。

脚本运行完毕如果显示“apusic-apmagent install finished!”则表示AAS-APMAgent安装成功,失败则检查以上操作是否正确。

5.进入到$APMAGENT_HOME$\domains\mydomain\bin目录下,执行startapusic.cmd命令启动被监控的apusic应用服务器。

6.打开APMServer端访问地址,查看APMAgent端是否已经加入到server端监控中;在配置管理-密钥管理下输入license KEY后可以使用全部监控功能。

20.4.2.2. Linux下的安装

1.获取AAS-with-APMAgent-V9.0.zip后,拷贝并解压到linux目录下。如果获取的是AAS-APMAgent-V9.0.zip,则需要将压缩包解压至Apusic应用服务器主目录下,并修改名称为apm。

2.设置系统环境变量,设置正确的JAVA_HOME与PATH环境变量,具体如下:

vi /root/.bash_profile
加入如下内容
EXPORT JAVA_HOME=/jennifer/jdk    #jdk目录以实际情况为准
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin
重新登录root,验证环境变量是否生效
#echo $JAVA_HOME
#java –version

3.进入到AAS-with-APMAgent-V9.0下apm目录下,打开setup.sh文件进行配置.


set AGENT_DOMAIN=mydomain //需要监控的Apusic应用服务器的域 
set AGENT_CONF_NAME=w30 //监控配置文件,必须3个字符,第一个必须是字符,最好是如下形式。同一个server端的后置节点配置文件名称必须唯一
set SERVER_UDP_HOST=192.168.102.11 //APMServer端的IP地址
set AGENT_TCP_PORT=7750 //同一台机器监控两个后置节点这个端口必须不同
set SERVER_UDP_RUNTIME_PORT=6901
set SERVER_UDP_LISTENT_PORT=6902
set SERVER_UDP_LWST_CALLSTACK_PORT=6703
set AGENT_LICENCE_FILE=apmagent-licence.txt //同一台电脑上所有要监控域都指向同一个licence,一定确保没有中文路径,jennifer不支持中文路径
set AGENT_LOG_FILE=apmagent.log

4.在shell下运行setup.sh进行APMAgent的初始化,脚本运行完毕如果显示“apusic-apmagent install finished!”则表示AAS-APMAgent安装成功,否则初始化失败。

5.进入到$APMAGENT_HOME$\domains\mydomain\bin目录下,执行startapusic命令启动被监控的apusic应用服务器。

6.打开APMServer端访问地址,查看APMAgent端是否已经加入到server端监控中;在配置管理-密钥管理下输入license KEY后可以使用全部监控功能。

20.4.3. AAS-APMAgent的配置

APM参数配置文件默认放在domains/xxdomain/config/w11.conf(或者其他w12.conf),活动服务是APM监控的最主要性能指标。一个服务是指组成一个业务的最基本动作。用户如果想监控服务,就必须设置监控点,也就是服务的入口点,jennifer内置了基于servlet的框架的监控点,用户不需要任何配置就能监控到jsp,servlet的服务数据。

APM可以用来监控应用的基本数据,除了显示应用的Active Serive和其平均响应时间之外,jennifer还提供了很多监控参数供用户查看和分析,具体种类有以下几点:

实时吞吐速度表

每台服务器的Active Serive数量

当前Active Serive总量

Active Serive平均响应时间

Active Serive到达率

今日Active Serive到达率

每台服务器Active Serive到达率

每台服务器思考时间

实时DB活动连接数

最新DB活动连接数

堆内存使用量

当前cpu使用率

实时cpu使用率

系统内存使用率

当前并非用户总量

当前每台服务器的并发用户量

今日访问用户数

今日每小时点击量

下面以监控Struts和SpringMVC为例介绍如何配置AAS-APM来对应用进行监控。

20.4.3.1. 监控struts2

Struts2是基于拦截器框架,如果按jennifer默认则只能监控基于servlet的jsp页面服务情况。想要监控业务逻辑action,必须找出action总的入口点;假设程序里所有action都继承自com.opensymphony.xwork2.ActionSupport,

则可以进行如下设置:

tx_server_super=com.opensymphony.xwork2.ActionSupport
tx_server_ntype=FULL(服务名是类路径)

这样就可以简单的来监控Struts2的action,可以查看其响应时间以及CPU经过时间等。具体如下图所示:

从上图可以明显看出一个struts2的服务分成2个部分,一个是action,一个是jsp。如果一个系统是分层结构(view-control-service-dao)我们可以设置多个层次监控入口,这样就能看到各个层次具体处理时间了。

如果只想监控其中几个业务方法,而不是全部监控整个业务流程,则需要修改APM配置文件,例如w11.conf文件,添加如下配置

tx_server_class=com.apusic.monitor.action.CompanyManageAction
tx_server_target_method=list//这样就会监控CompanyManageAction里的list方法

如果所有业务类都是以Action结尾的可以设置:

tx_server_postfix=Action

如果想监控全部,但是没有继承ActionSupport或者其他统一入口,则只能把stuts2容器里开始执行拦截器的那个类当做监控入口了,只有直接继承ActionSupport才能够被监控。

如果入口类是实现特定接口则可以参考如下设置:

tx_server_interface=javax.ejb.SessionBean

请注意,同样只有直接实现的类才被监控。

20.4.3.2. 监控SpringMVC

SpringMVC是基于Servlet的,基本上Jennifer的默认配置就能监控Servlet服务,但是默认服务名就是请求的URL名称.为了让服务更清晰,可以做以下配置:

tx_naming_postfix=Controller
tx_naming_ntype=FULL

对于结尾是Controller的后台bean(url后台服务),监控服务名显示这个类全名。如果(http get)参数里有name这个参数,显示这个参数名字,示例配置如下:

url_additional_request_keys = name
如果不想监控某些服务可以参考如下设置,这个url下所有路径不会被监控到:
ignore_url_prefix=/admin/XX/
[注意]注意

更多APM监控配置项请参考APM安装文件下HelpDocument中的用户手册。