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