<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 156,  comments - 601,  trackbacks - 0
    前一陣因看到一位同事正在開發一個監控軟件,就搭建了這組件化的監控平臺 http://m.tkk7.com/xmatthew/articles/185673.html。
    看到有很多朋友的支持,在些表示非常感謝。即然平臺已經搭建完成,接下就讓需要一起來完善這些真正在應用的組件開發,所以我利用業余時間,開發了一個Tomcat服務監控組件和一個郵件通知服務組件。

    下載地址
    二進制程序
    第三方類庫下載,第三方類庫下載2 放到lib目錄下。
    api-docs 
    源代碼

    先來介紹Tomcat服務監控組件的實現,該監控組件目前實現了以下方面信息的監控:
    1. Jvm堆內存和非堆內存的監控(可以設置使用的百分比或是具體使用的內存大小)
    2. 當前操作文件打開的IO文件個數監控。 一般操作默認設置的最大值是1024,如果超過這個服務會導致Tomcat所有服務的停止。
    3. 數據庫連接池的監控(可以設置使用的百分比或是具體使用的連接數大小)
    4. Tomcat服務模塊(Web Module)的運行狀態的監控(監控其狀態是否為運行狀態)

    監控的方式通過Jmx取得當前Tomcat的服務狀態,需要tomcat開始jmx服務。
    方法如下:在startup.sh命令行中(linux)加入以下命令
     export JAVA_OPTS=" -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8060 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

    windows下使用:
      set JAVA_OPTS=" -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8060 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"

    下面我們來看一下該監控組件的實現類圖




    下面我們來操作一下如何使用Spring注冊該組件(spy2servers.xml),使用其監控平臺工作起來。

     1     <bean class="org.xmatthew.spy2servers.component.spy.jmx.TomcatJmxSpyComponent">
     2         <!-- 監控的Jmx服務IP -->
     3         <property name="host" value="x.x.x.x"></property>
     4         <!-- 監控的Jmx服務端口 -->
     5         <property name="port" value="8060"></property>
     6         <!-- 監控時間間隔 單秒是 毫秒 -->
     7         <property name="detectInterval" value="5000"></property>
     8         
     9         <property name="heapMemorySpy"> <!-- 堆內存 監控方案 -->
    10             <bean class="org.xmatthew.spy2servers.component.spy.jmx.MemorySpy">
    11                 <!-- 設置臨界值 內存使用的百分比 使用的內存值 / 最大內存值。 注如果該值設置, memoryUsedToAlert自動失效-->
    12                 <property name="memoryUsedPercentToAlert" value="5"></property>
    13                 <!-- 設置臨界值 內存超過一定值后觸發 單位 Mb -->
    14                 <!-- <property name="memoryUsedToAlert" value="100"></property> -->
    15                 <!-- 設置臨界值保持多久后,開始報警 單位秒。 注該值沒有默認值,如果不認置則不會觸發報警操作 -->
    16                 <property name="alertAfterKeepTimeLive" value="10"></property>
    17             </bean>
    18         </property>
    19         <property name="nonHeatMemorySpy"><!-- 非堆內存 監控方案 -->
    20             <bean class="org.xmatthew.spy2servers.component.spy.jmx.MemorySpy">
    21                 <property name="memoryUsedToAlert" value="100"></property>
    22                 <property name="alertAfterKeepTimeLive" value="10"></property>
    23             </bean>
    24         </property>
    25         <property name="fileSpy">
    26             <bean class="org.xmatthew.spy2servers.component.spy.jmx.FileSpy">
    27                 <!-- 設置臨界值 文件打開數百分比 開始的文件數 / 最大的文件數。  注如果該值設置, filesOpenedToAlert自動失效 -->
    28                 <property name="filesOpenedPercentToAlert" value="90"></property>
    29                 <!-- 設置臨界值 文件打開數 -->
    30                 <!-- <property name="filesOpenedToAlert" value="1000"></property> -->
    31                 <!-- 設置臨界值保持多久后,開始報警 單位秒。 注該值沒有默認值,如果不認置則不會觸發報警操作 -->
    32                 <property name="alertAfterKeepTimeLive" value="2"></property>
    33             </bean>
    34         </property>
    35         
    36         <property name="dataSourcesSpy"><!-- 文件IO打開數 監控方案 -->
    37             <bean class="org.xmatthew.spy2servers.component.spy.jmx.DataSourcesSpy">
    38                 <property name="dataSourceSpys">
    39                     <set>
    40                         <bean class="org.xmatthew.spy2servers.component.spy.jmx.DataSourceSpy">
    41                             <!-- 設置臨界值 連接池連接數占用比例 使用的連接數 / 最大的連接數。  注如果該值設置, numActiveToAlert自動失效 -->
    42                             <property name="numActivePercentToAlert" value="90"></property>
    43                             <!-- 設置臨界值  連接池連目前使用的連接數 -->
    44                             <!-- <property name="numActiveToAlert" value="20"></property> -->
    45                             <property name="dataSourceName" value="jdbc/opendb"></property>
    46                         </bean>
    47                     </set>
    48                 </property>
    49             </bean>
    50         </property>    
    51         
    52         <property name="webModuleSpy"><!-- Web Module 監控方案 -->
    53             <bean class="org.xmatthew.spy2servers.component.spy.jmx.WebModuleSpy">
    54                 <property name="webModules"> <!-- 監控的web module列表,如果模塊狀態為stop或undeploy則會報觸發報警 -->
    55                     <set>
    56                         <value>/</value>
    57                         <value>/jsp-examples</value>
    58                         <value>/servlets-examples</value>
    59                     </set>
    60                 </property>
    61             </bean>
    62         </property>
    63     </bean>


    這樣該組件就可以工作,下面是如何配置郵件通知組件。該組對當簡單一些
    實現類圖如下:


    配置好需要通知的郵件列表和登錄的郵件服務器就可以了

     1     <bean class="org.xmatthew.spy2servers.component.alert.EmailAlertComponent">
     2         <property name="emails" ref="emails"/>
     3         <property name="emailAccount">
     4             <bean class="org.xmatthew.spy2servers.component.alert.EmailAccount">
     5                 <property name="server" value="smtp.163.com"></property>
     6                 <property name="serverPort" value="25"></property>
     7                 <property name="loginName" value="ant_miracle"></property>
     8                 <property name="loginPwd" value="xxx"></property>
     9                 <property name="sender" value="ant_miracle@163.com"></property>
    10                 <property name="sendNick" value="EmailAlertComponent"></property>
    11             </bean>
    12         </property>
    13     </bean>
    14 
    15     <util:list id="emails">
    16         <value>ant_miracle@163.com</value>
    17     </util:list>

    最后我們再配置一下通知服務的規則。
    下面的規則表示,TomcatJmxSpyComponent(組件名)的消息都會調度到EmailAlertComponent(組件名)。

     1     <bean id="simpleAlertRule" class="org.xmatthew.spy2servers.rule.SimpleAlertRule">
     2         <property name="channles">
     3             <set>
     4                 <ref bean="channel1" />
     5             </set>
     6         </property>
     7     </bean>
     8     
     9     <bean id="channel1" class="org.xmatthew.spy2servers.rule.Channel">
    10         <property name="from">
    11             <set>
    12                 <value>TomcatJmxSpyComponent</value>
                       <!-- more components -->
    13             </set>
    14         </property>
    15         <property name="to">
    16             <set>
    17                 <value>EmailAlertComponent</value>
    18             </set>
    19         </property>
    20     </bean>


    好了,基本的配置最是這些,應用程序和源代碼已經上傳大家可以自寫閱覽。大家如有任何問題請回復給我。

    Good luck!
    Yours Matthew!


    posted on 2008-03-24 08:22 x.matthew 閱讀(4302) 評論(9)  編輯  收藏 所屬分類: Spy2Servers
    主站蜘蛛池模板: 在线观看亚洲AV日韩AV| 亚洲激情中文字幕| 美女羞羞视频免费网站| 日韩免费视频播播| 精品一区二区三区免费毛片| 青青草国产免费久久久下载| 成人婷婷网色偷偷亚洲男人的天堂| 国产一卡2卡3卡4卡无卡免费视频| 在线观看免费视频资源| 亚洲高清无在码在线无弹窗| 最近2022中文字幕免费视频| 亚洲午夜精品国产电影在线观看| 日韩不卡免费视频| 亚洲av无码偷拍在线观看| 99精品视频在线观看免费专区 | 四虎永久在线精品免费影视| 亚洲AV成人片无码网站| 亚洲国产精品成人网址天堂 | 免费高清国产视频| 777亚洲精品乱码久久久久久| 国产精品1024永久免费视频| 亚洲欧美成人一区二区三区| 亚洲毛片网址在线观看中文字幕 | 人妻在线日韩免费视频| 亚洲精品视频在线免费| 国产乱码免费卡1卡二卡3卡| 老牛精品亚洲成av人片| 国产亚洲精品无码成人| 黄瓜视频影院在线观看免费| 国产亚洲精品欧洲在线观看| 亚洲国产精品嫩草影院在线观看| 67194熟妇在线永久免费观看| AV激情亚洲男人的天堂国语| 亚洲国产精品无码久久一区二区| 五月婷婷综合免费| 亚洲一区二区三区免费| 亚洲AV无码精品蜜桃| 国产亚洲成人久久| 99re热免费精品视频观看| 国产精品高清免费网站 | 久久久无码精品亚洲日韩京东传媒|