Skip to main content

JEAP 5 - JBoss 的 JMX 與 SNMP - JVM 監控

每次出門巡回表演的時候,只要講到JON的話題,
有些人就會問我有關是否可以將監控的資料匯出?
最近還有一些詢問如何直接Access MBean,


對於Java 程式來說,因為我們像C語言需要自己去handle 記憶體裡的locate,
所以就非常依賴各家的JVM 上的所謂 Garbage Collection. (簡稱GC,我都叫它掃垃圾的)
因為所有的程式都經過JVM,所以它上面就充滿了我們Java 再 runtime執行時候的資料拉~
像是, Thread, 掃垃圾的狀況等等。。。

講到JBoss 的 JVM 監控就不得不提到兩個比較主要監控方式 JMX 與 SNMP。

JMX


說到JMX 就一定要提到MBean,
先把JBoss看成一個充滿資源的盒子,MBean 就是來不同資源使用的物件
那要如何操作這些MBean呢?

JMX  簡單來說就是一個Interface, 這個interface 讓MBean 可以被操縱,
不管是直接的API還是RMI Call.
(詳細的以後再來寫好了。。。)



所以,當你在打開JBoss 的時候,會發現除了Admin console 之外,
還會有一個JMX-Console,


沒錯~那就是JBoss 身上掛的所有MBean,
這個JMX介面可以讓你直接操作JBoss 的MBean



SNMP

SNMP 是 Simple Network Management Protocol 的簡寫
簡單來說是一個共同的通訊協定,統一的訊息format讓管理比較方便。
而JBoss 也提供了這種協定的傳送方式,

要如何使用 JBoss SNMP?
首先,要先到all profile, 因為default 是開發專用的profile, 所以通常不會有這些監控的外掛。
到了 $JBoss_SERVER_INSTALL_PATH/server/all/deploy之下,
可以看到JBoss 專用的 snmp-adapter.sar
這個SNMP Adapter 會將MBean 的資料抓出來,轉成SNMP Traps 然後送到SNMP Manager 那邊。



主要可以設定的xml 有兩個 ..

managers.xml  - 設定誰要去接收SNMP訊息

<manager>
    <address>localhost</address>  <!--接收SNMP訊息Manager的IP位置-->
    <port>1162</port>             <!--接收SNMP訊息Manager的Port-->
    <version>1</version>          <!--SNMP的版本-->
 </manager>

notifications.xml - SNMP 的format 設定(這個。。有興趣自己Study吧!)
另外,
$JBoss_SERVER_INSTALL_PATH/server/all/deploy/snmp-adaptor.sar/META-INF/下的jboss-service.xml也是可以設定的


HeartBeatPeriod : 幾秒發送一次
ManagersResName : 指定 managers.xml 的resource name
NotificationMapResName : 指定notifications.xml 的resource name
SubscriptionList : 指定要聽哪一個MBean 跟notification用.

感謝Gary 提醒,我要記得把這段加上來,
其實JBoss 內建MIB 提供的還真的很基本,可以從另一個attributes.xml看,
目前提供像是,

server 層的ActiveThreadCount, FreeMemory, 跟MaxMemory
8080 port 的 requestCount
交易用的TransactionManager 其中的 CommitCount, RollbackCount 和 TransactionCount
還有個default connection 的設定(這個可以自己改) 如 InUseConnectionCount 和 MaxConnectionsInUseCount

呵~希望下次巡迴演出的時候問題可以少一點拉 ^^

Comments

APM Guy said…
XD~ 講到SNMP就一定要提供你有哪些MIB可以用噢~ by Gary
Christina said…
說得好~
等下加!
yu vincent said…
請問只要把那個snmp-adaptor.sar 丟進去然後重新啟動就好??另外還有其他要設定的地方嗎??

Popular posts from this blog

Fuse Integration Service - Setup JBDS and create first quickstart application

Before we go and start creating our first application, I want to show you how to setup your JBoss Developer Studio, create a small application from the quickstart example and then running it on Fuse Integration Service.

I am using JBoss Developer Studio version 9, you can find it here.
After download the

jboss-devstudio-9.0.0.GA-installer-eap.jar
double-click it, and start installing with default values.

After successful installation, we will need install the plugins for Fuse, on JBoss Central view, select software update, select enable early access.


And select JBoss Fuse Development for the plugin,


Click on install, and we are all set to go!

First thing first, we want to create a Fuse project to deploy on the base of Fuse Integration Service, which is OpenShift. If you have not installed it, please go back to my previous post for instructions. So on your JBDS, right click and start creating the project. Select new, maven project, if you have installed the plugin correctly, you should …

Red Hat JBoss Fuse/A-MQ - Fuse and A-MQ Version 6.3 GA is released!

Fuse and A-MQ 6.3 GA has just went out. Maybe, you would think this is just only a minor version release why should I care? Hold your thoughts on that! Because they have done a lot of improvements and also added many new features into this release.

Besides various bug fixes and making sure Fuse Fabric is much more stable. There are two major change in this version update:

New Tooling in JBoss Developer Studio (JBDS) 9.1 GA. Newer Apache Camel version – Camel v2.17. I was really impressed by the work put in to make developing Camel application much simpler. First is the installation of tooling itself. Now it has a all-in-one installer so you don't need to worry about which plugins you need to check. See the videos below to see the new "Getting Started" of Fuse 6.3.



And If you notice from the above video, the presentation of camel route in JBDS has also updated. It fixed some of the miss representation of logic and making it easier to read.

Old Camel Route
New Camel Route
On …

RHTE - Supercharge your integration services

Red Hat Tech Exchange has taken place in Vietnam, Ho Chi Minh city two weeks ago, it is a great event held by Red Hat in Asia Pacific Region. It is open to all Red Hat partners who are interested in learning what Red Hat is doing recently, see what the trend of the open source world, basically it is a great event to share your knowledge and experience, to meet other enthusiastic people.

I am very fortunate to talk in this great event, to talk about the things I have been working on and even discuss it with many. Also got lots of great ideas too. So here are the slide.

My first talk was with Thomas Qvarnström about how to handle large size data in JBoss Fuse and how JBoss Data Grid can help in the situation.

Here is the agenda of the talk, we will be talk about this in the up coming webinar on 24th Sept.

Integration often involves storing, retrieving, and transforming data. Using a traditional database in your integration is likely to becomes a bottleneck that is expensive and hard to …