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é)會了嗎?