1. 前言
本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 Grafana 将爬虫抓取数据情况通过酷炫的图形化界面展示出来。
在开始之前,先对 Grafana 和 InfluxDB 做一下简要的介绍:
Grafana:是一个开源的分析和监控系统,拥有精美的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. 监控脚本
考虑到可能要增加爬虫到监控中,因此这里使用了热更新对监控进行动态配置。
配置文件 influx_settings.conf 主要用于热更新相关设置。
如何动态读取这个配置文件的设置呢?需要写一个脚本来监控。代码如下:
来试着运行一下
python3influx_monitor.py
运行,得到下图内容,表示监控脚本运行成功。
另建窗口,修改配置文件 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 配置
设置监控的数据对象
在监控脚本中,写入influxDB的代码如下,其中 "measurement" 对应 表名,"fields" 对应写入的字段;
7. 运行爬虫文件
启动 MongoDB 数据库服务。
brew services mongodb start
新建一个 terminal 窗口,运行爬虫文件。
爬虫文件运行成功
我们可以在刚刚打开的控制台里查看效果展示:
怎么样?学会了吗?