1. 前言
本文并不是講解爬蟲的相關(guān)技術(shù)實現(xiàn)的,而是從實用性的角度,將抓取并存入 MongoDB 的數(shù)據(jù) 用 InfluxDB 進(jìn)行處理,而后又通過 Grafana 將爬蟲抓取數(shù)據(jù)情況通過酷炫的圖形化界面展示出來。
在開始之前,先對 Grafana 和 InfluxDB 做一下簡要的介紹:
- Grafana:是一個開源的分析和監(jiān)控系統(tǒng),擁有精美的web UI,支持多種圖表,可以展示influxdb中存儲的數(shù)據(jù),并且有報警的功能。
- **Influxdb **:是一款開源的時間序列數(shù)據(jù)庫,專門用來存儲和時間相關(guān)的數(shù)據(jù)(比如我用它存儲某個時間點爬蟲抓取信息的數(shù)量)。
最終能實現(xiàn)的效果是這樣的:
請注意以下操作,都是 Mac 下實現(xiàn)的。但是原理是相似的,你可以在自己的 PC 上進(jìn)行試驗。
2. 安裝配置 InfluxDB
安裝 InfluxDB
修改配置文件/usr/local/etc/influxdb.conf,如果原文件中沒有對應(yīng)配置項,需自己添加。
3. 安裝配置 Grafana
安裝 Grafana
并修改 Grafana 配置文件 /usr/local/etc/grafana/grafana.ini,內(nèi)容如下:
4. 爬蟲代碼
由于這里主是要介紹如何將 Grafana 和 InfluxDB 與爬蟲進(jìn)行結(jié)合的方案,而不是主講爬蟲原理,而且代碼也比較多,影響可讀性,所以就不貼出爬取的代碼。
5. 監(jiān)控腳本
考慮到可能要增加爬蟲到監(jiān)控中,因此這里使用了熱更新對監(jiān)控進(jìn)行動態(tài)配置。
配置文件 influx_settings.conf 主要用于熱更新相關(guān)設(shè)置。
如何動態(tài)讀取這個配置文件的設(shè)置呢?需要寫一個腳本來監(jiān)控。代碼如下:
來試著運行一下
python3 influx_monitor.py
運行,得到下圖內(nèi)容,表示監(jiān)控腳本運行成功。
另建窗口,修改配置文件 influx_settings.conf
# 修改間隔時間為8秒
interval = 8
切換至第一次運行 influxDB 的窗口,會提示配置更新,說明配置熱更新生效。
6. 配置 Grafana
首先打開 Chrome 瀏覽器,輸入 http://127.0.0.1:3000 登錄 grafana 頁面。
連接本地 influxDB 數(shù)據(jù)庫,操作如下圖。
在紅色方框內(nèi)選擇 Type 類型為 InfluxDB,并輸入URL:http://localhost:8086
在紅框內(nèi)輸入influxDB數(shù)據(jù)庫名稱
新建 dashboard
新建 graph 類型 dashboard
修改 dashboard 設(shè)置
點擊紅色方框修改設(shè)定
修改 dashboard 配置
設(shè)置監(jiān)控的數(shù)據(jù)對象
在監(jiān)控腳本中,寫入influxDB的代碼如下,其中 "measurement" 對應(yīng) 表名,"fields" 對應(yīng)寫入的字段;
7. 運行爬蟲文件
啟動 MongoDB 數(shù)據(jù)庫服務(wù)。
brew services mongodb start
新建一個 terminal 窗口,運行爬蟲文件。
爬蟲文件運行成功
我們可以在剛剛打開的控制臺里查看效果展示:
怎么樣?學(xué)會了嗎?