Monitoring Infinispan with Jopr_CN(使用JOPR对Infinispan进行监控)

http://www.jboss.org/dms/jopr/images/managedbyjopr_badge_v2.png

序言

管理分散在不同服务器的多个Infinispan实例的首选方法是使用JBoss的管理解决方案,也就是JOPR 。由于JOPR的代理机制和自动发现特性, 监控缓存管理器和缓存实例都变得相当简单。通过JOPR,管理者能够通过图形化的视图来查看关键运行参数或者统计,并且当某些值超过或者低于一定限制值时能获取通知。

入门

  1. 按照 Jopr - Installation中的说明, 安装一个中心JOPR服务器并且分别在Infinispan实例运行的每个节点上安装代理。
  2. 下载部分 下载最新的Infinispan二进制版本(*-bin.zip 或者*-all.zip ) 然后找到 jopr的jar格式插件文件. 这些文件位于modules/jopr-plugin目录中。
  3. 打开JOPR主页面(i.e. http://localhost:7080/Dashboard.do) ,选择顶级菜单的Administration->System Configuration->Plugins
  4. 跳转到页面底部并且点击Upload Plugin->Add ,然后选择上一步骤找到的jopr插件。 点击Scan For Updates 按钮来检验 Infinispan的JOPR 插件是否已经加载。
    • 如果你要更新Infinispan JOPR 插件, 操作与上述步骤相同。
  5. 安装或者更新完成后你需要对插件进行发布,以便代理能够使用Infinispan JOPR插件。你可以通过以下两种方式:
    • 转到 Resources->Servers, 然后针对每个"<host-name> RHQ Agent" 实例, 执行Update All Plugins 操作.
    • 或者在每个代理的命名行提示窗口执行"plugins update"。
    • 或者重启每个代理。

 

现在, JOPR 已经能够监控Infinispan实例了。更多内容见下一小节。

监视Infinispan 实例

目前(Infinispan 4.0.0.CR1 版本), 运行Infinispan JOPR插件的JOPR代理只能自动发现和该代理运行在相同机器上的Infinispan实例,并且需要开放端口6996以便远程JMX 监控和管理。所以, Infinispan 实例启动时需要设置如下系统属性:

 

-Dcom.sun.management.jmxremote.port=6996 -Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

 

你可能会选择将有多个Infinispan运行在同一台机器上,这就需要使用不同的端口并且需要 手动的将Infinispan实例导入到JOPR 服务器.。如果要手动添加Infinispan实例, 可以转向 Resources > Platforms > localhost ,然后点击 Inventory. 在页面的底部,有一个部分显示"Manually Add" 并且它的旁边显示一个下拉列表。 打开这个列表,选择"Infinispan Cache Manager" 并点击 "Ok"。 在下一个页面, 选择"default" 然后会转向一个新的页面,在新页面中会要求您输入您要监控的新的Infinispan实例的JMX链接地址以及Cache Manager MBean的对象名。 例如:

 

链接地址:

service:jmx:rmi://127.0.0.1/jndi/rmi://127.0.0.1:7997/jmxrmi

 

对象名:

 infinispan:cache-name=[global],jmx-resource=CacheManager

 

对象名一般都是相同的,但是链接地址会根据新实例监听的主机和特有的JMX端口的不同而不同。这样的话,新实例启动时需要制定以下参数:

 

-Dcom.sun.management.jmxremote.port=7997 -Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false

 

一个如何监控多个Infinispan实例的简单例子 随后就会发布

小技巧

最后, 在本小节讲述了一些开发Infinispan JOPR插件的经验教训,这些经验教训可能会对使用Jopr的人很有用。

 

默认情况下, 至少是在JOPR 2.3.1版本中, JOPR 代理每隔五分钟会发送一个关于被管理资源的可用性报告。 可是随之而来的问题是如果你想要测试你的Infinispan实例是否能够被JOPR服务器自动发现,每次测试都需要花费五分钟。 同样,  JOPR 服务器也需要花费五分钟来确认你是否关闭了Infinispan实例。

你可以通过设置rhq-agent/conf/agent-configuration.xml中包含的下列属性(默认值是300秒)来改变这种设置。例如, 如果你想每隔一分钟就发送可用性报告, 只需要简单地把值设置为60:

 

<entry key="rhq.agent.plugins.availability-scan.period-secs" value="60"/>

 

一定要十分注意 JOPR 代理配置文档 给出的的说明,尤其要注意下面这段关于改变agent-configuration.xml文件中的属性的文字:

一旦代理被配置完成, 他就会将他的配置持久化到
Java Preferences 后备存储中。 一旦持久化,
agent-configuration.xml 就没有任何作用了。这时编辑
agent-configuration.xml文件将不会对代理产生任何影响,

即使是重启代理。 如果你希望代理能够感知到你在agent-configuration.xml

中作出的修改,你需要使用"--cleanconfig"命令行参数来重启代理。

或者使用 "config--import" 代理提示命令

屏幕录像

Infinispan's youtube channel,你能够找到一个关于使用Jopr控制台监控Infinispan的屏幕录像。 这个视频是一个关于如何使用Jopr监控Infinispan的很好的总体概述。

Flash视频

我们还录制了一些关于flash视频,这些视频包含了上述屏幕录像简要展示主题的更多详细信息。下面是这些flash视频的链接以及关于他们所包含内容的概述: