java爬蟲gecco監控來了,再也不裸奔

#java爬蟲gecco監控來了,再也不裸奔 ##爬蟲爲何要監控 gecco是一個十分簡單易用的java開源爬蟲框架,同時也一個款擁有很好擴展性的框架,目前已經有:html

結合spring的插件gecco-springjava

結合htmlunit的插件gecco-htmlunitgit

結合reids的插件gecco-reidsgithub

在開發爬蟲時,因爲要對不少網站和連接進行抓取,並對抓取下來的網站進行內容的抽取。大量的連接下載和內容抽取若是沒有監控,很難發現問題。特別是對於主題爬蟲,須要抽取頁面的具體內容,若是網站改版務必要能儘快的發現並修正,gecco爬蟲框架在完成了基本的框架和必要的插件的實現後,將重點放在了監控的開發上。redis

對擴展開放,對修改關閉的開閉原則一致是gecco框架的基本設計原則。gecco爬蟲的監控模塊一樣基於該原則,基於jmx協議,使用aop模式。spring

輸入圖片說明

##監控指標 ###爬蟲基本信息安全

  • 刷新基本信息:exec/com.geccocrawler.gecco:name=gecco/monitorapp

  • 讀取基本信息:read/com.geccocrawler.gecco:name=gecco框架

    {
      Interval: 5000,//抓取間隔時間ms
      StartTime: "2016-03-20 20:34:11",//抓取開始時間
      ThreadCount: 1,//爬蟲線程數量
      StarUrlCount: 8//初始url數量
      }

###下載監控網站

  • 獲取當前正在抓取的全部域名:exec/com.geccocrawler.gecco:name=downloader/hosts

  • 獲取某個域名的下載監控信息:exec/com.geccocrawler.gecco:name=downloader/statistics/xx.xx.com

  • 讀取下載監控信息:read/com.geccocrawler.gecco:name=downloader

    Statistics: "{
      	"exception":8,//該域名抓取異常的數量,主要是超時等異常
      	"serverError":0,//該域名返回500,404等錯誤信息的數量
      	"success":3263//成功抓取數量
      }",
      Host: "xx.xx.com"//域名

###內容抽取監控

  • 刷新內容抽取監控信息:exec/com.geccocrawler.gecco:name=render/refresh

  • 獲取內容抽取監控信息:read/com.geccocrawler.gecco:name=render

    Statistics: "{
      	"xx.xx.com":0,//域名xx.xx.com的網站內容抽取的異常數量
      	"yy.yy.com":0//域名yy.yy.com的網站內容抽取的異常數量
      }"

##jmxutils和jolokia ###jmxutils gecco的監控使用了jmxutils這個開源的mbean註解框架。在之前的開發工做中要麼就用原生的動態mbean,要麼是使用spring的jmx註解框架。原生的動態mbean寫起來太繁瑣,spring的jmx註解框架使用起來仍是很方便的,可是如今spring感受有些重。jmxutils這個框架很輕量,使用方法能夠參考https://github.com/martint/jmxutils。 ###jolokia Jolokia是一個利用JSON經過Http實現JMX遠程管理的開源項目。具備快速、簡單等特色。除了支持基本的JMX操做以外,它還提供一些獨特的特性來加強JMX遠程管理如:批量請求,細粒度安全策略等。也就是說jmx的mbean能夠經過http來訪問不須要在啓動java時配置那麼多參數。只須要新增一個servlet:

<servlet>
	<servlet-name>jolokia-agent</servlet-name>
	<servlet-class>org.jolokia.http.AgentServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>jolokia-agent</servlet-name>
	<url-pattern>/jmx/*</url-pattern>
</servlet-mapping>

這樣應用中的mbean就能輕鬆控制和訪問。jolokia還提供了java客戶端和js客戶端來訪問mbean,具體的使用方法和權限控制能夠查看jolokia的官方文檔https://jolokia.org/reference/html/index.html

相關文章
相關標籤/搜索