TOMCAT監控助手 實現監控tomcat發送郵件功能

   最近公司windows服務器剛作完Nginx+tomcat的負載均衡處理,下一步想實現對後臺服務軟件tomcat和nginx服務的監控。此處咱們想實現的不是對性能等各項指標的監控,而是服務可否正常訪問,若出現異常但願能重啓服務,重啓後最好能再向指定郵箱發一郵件(若該郵箱開通了來往郵件通知服務,則能夠實現實時短信通知了)。臨近年底不是特別忙,有些閒暇時間,計劃把本身實現該需求的過程記錄下來,給同行們一個參考。 html

       本篇先對選擇的監控工具作下簡要介紹,後續會逐步實現其它需求。在選定使用的軟件前從網上查了很多資料像JMX等,也沒少嘗試使用相關軟件,但最終選定了第三方用戶編寫的一個監控工具——TomcatMoni(TOMCAT監控助手)。這款小軟件是從一個軟件站下載到的,下載地址:http://www.crsky.com/soft/26486.html  nginx

或者去我上傳的地址下載了:http://download.csdn.net/detail/a443453087/8403203 windows

下載的軟件包名是TomcatMoni-v0.1beta.zip,解壓後以下圖: tomcat

其中有軟件的使用說明,每一個文件功能想必你們一看就明白了,下面對特殊功能點作下說明吧。 服務器

在conf.properties文件中有幾項配置,能夠配置定時訪問的地址,以及出現異常後啓動的命令。還能夠設置時訪問時間間隔,日誌保存等。各參數以下: 負載均衡

[html]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. ##############################################################################  
  2. #監視服務器配置  
  3. ##############################################################################  
  4. #服務器一 測試地址  
  5. url1 = http://localhost:8080/login.jsp  
  6. #服務器一 啓動命令(能夠調用一個批處理,在這個批處理中,您寫上重啓的命令)  
  7. exec1 = cmd.exe /c E:\\restartServer.bat  
  8.   
  9. #服務器二 測試地址  
  10. #url2 =   
  11. #服務器二 啓動命令  
  12. #exec2 =   
  13.   
  14. #服務器三 測試地址  
  15. #url3 =   
  16. #服務器三 啓動命令  
  17. #exec3 =   
  18.   
  19. ##############################################################################  
  20. #其餘配置<span style="white-space:pre">       </span>  
  21. ##############################################################################  
  22. #時間間隔(單位分鐘)  
  23. times = 1  
  24.   
  25.   
  26. #日誌記錄地址  
  27. log = log.txt  

配置之比後能夠運行TomcatMoni.exe開始執行監控,能夠嘗試手動中止下服務,看它是否能監控到異常並執行指定命令。實際測試的結果該軟件最多能夠實現三路地址監控。之因此選擇這個軟件是由於它比較簡單易用,而且能夠在restartServer.bat中添加本身想要執行的命令,如:重啓系統服務,發郵件等。如:restartServer.bat文件中示例代碼所示,若想實現tomcat服務的中止與重啓功能須要把tomcat做爲服務來安裝才能夠 jsp


1、實現blat發送郵件 工具

下載blat能夠去官網:http://www.blat.net/  固然你也能夠去網上百度下,也會有大把下載資源。 性能

下載以後解壓找到以下圖幾個文件,把它們放到C:\WINDOWS\system32下面,這樣作爲了方便經過命令行直接調用。 測試

放到指定路徑後打開一個命令行窗口,輸入blat會輸出以下信息,說明blat可使用了。

下面就使用blat來發郵件了,首先是一個批處理:

sendmail.bat:

[html]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. @echo off  
  2. :::::::::::::: 參數設置::::::::::::::  
  3. set from=test@163.com【發送方地址】  
  4. set user=test【發送方帳號】  
  5. set pass=testpwd【發送方密碼】  
  6. set tf=mail_list.txt【收件人列表】  
  7. set subj=這是郵件標題哈【郵件標題】  
  8. set mail=mail_body.txt【郵件內容】  
  9. set attach=c:\sendmail\fj.txt【郵件附件】  
  10. set server=smtp.163.com【發送服務器】  
  11. set debug=-debug -log blat.log -timestamp【日誌】  
  12. ::::::::::::::: 執行blat :::::::::::::::  
  13. blat %mail% -tf %tf% -base64 -charset UTF8 -subject %subj% -attach "%attach%" -server %  
  14. server% -f %from% -u %user% -pw %pass% %debug%  
mail_list.txt:

[html]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. 2831000205@qq.com  
  2. 88888@qq.com  

mail_body.txt:

[html]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. This email come from test@163.com,Congratulations!  


fj.txt:
[html]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. i am fj!  測試中文  


注意事項:一、使用的郵箱要支持smtp,像163默認是沒有開啓smtp的,須要去配置中開啓下。

二、發送方地址和發送方帳號注意區分開來,發送方帳號必定不要帶形如:「@163.com「的後綴,不然將報登陸失敗的錯誤。

三、上面的郵箱地址密碼都是我隨意寫的,實際使用時請使用正確的郵箱和密碼等信息。


完成以上信息的配置後雙擊sendmail.bat,若是沒有報出錯誤信息,那就能夠看下你的收件箱了,應該已收到剛纔發送的郵件了。

2、用VBS腳本發送郵件

如今經過blat發郵件是沒問題的,但測試時發現經過上文介紹的Tomcatmoni監控助手沒法調用sendmail.bat這個文件,調用後不能正常執行,但若是把這個bat文件換成其它命令就能夠正常執行。後來嘗試了很久仍是沒能實現經過TomcatMoni監控助手調用sendmail.bat正常發送郵件。但本身手動雙擊sendmail.bat確實能夠發送郵件。因而又找到了接下來要介紹的第二種發送郵件的方式,經過vbs腳原本發送,樣例以下:

sendmail.vbs

[html]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. NameSpace = "http://schemas.microsoft.com/cdo/configuration/"  
  2. set Email = CreateObject("CDO.Message")  
  3. Email.From = "sendtest@163.com" 【發送方地址】  
  4. Email.To = "receive@163.com" 【接收方地址】  
  5. Email.Subject = "這是郵件標題"【郵件標題】  
  6. x="C:\TomcatMonitor\sendmail\mail_body.txt" 【郵件正文】  
  7. y="C:\TomcatMonitor\sendmail\fj.txt"【附件】  
  8. Set fso=CreateObject("Scripting.FileSystemObject")  
  9. Set myfile=fso.OpenTextFile(x,1,Ture)  
  10. c=myfile.readall  
  11. myfile.Close  
  12. Email.Textbody = c  
  13. Email.AddAttachment y  
  14. with Email.Configuration.Fields  
  15. .Item(NameSpace&"sendusing") = 2  
  16. .Item(NameSpace&"smtpserver") = "smtp.163.com"【郵件服務器地址】  
  17. .Item(NameSpace&"smtpserverport") = 25  
  18. .Item(NameSpace&"smtpauthenticate") = 1  
  19. .Item(NameSpace&"sendusername") = "sendtest" 【發送方帳號】  
  20. .Item(NameSpace&"sendpassword") = ""sendtestpwd" 【密碼】  
  21. .Update  
  22. end with  
  23. Email.Send  
  24. Set Email=Nothing  


雙擊該vbs腳本能夠直接發送郵件,在批處理中調用的樣例以下:

restartServer.bat:

[html]  view plain copy 在CODE上查看代碼片 派生到個人代碼片
  1. @rem 這裏能夠寫您本身須要執行的命令  
  2.   
  3. @rem 重啓tomcat的命令  
  4.   
  5. @rem 發出郵件通知  
  6. wscript C:\TomcatMonitor\sendmail\sendmail.vbs  
相關文章
相關標籤/搜索