手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

1. 前言

本文并不是讲解爬虫的相关技术实现的,而是从实用性的角度,将抓取并存入 MongoDB 的数据 用 InfluxDB 进行处理,而后又通过 Grafana 将爬虫抓取数据情况通过酷炫的图形化界面展示出来。

在开始之前,先对 Grafana 和 InfluxDB 做一下简要的介绍:

  • Grafana:是一个开源的分析和监控系统,拥有精美的web UI,支持多种图表,可以展示influxdb中存储的数据,并且有报警的功能。
  • Influxdb :是一款开源的时间序列数据库,专门用来存储和时间相关的数据(比如我用它存储某个时间点爬虫抓取信息的数量)。

最终能实现的效果是这样的:

手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

更多Python视频、源码、资料加群960410445免费获取

请注意以下操作,都是 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 主要用于热更新相关设置。

手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

如何动态读取这个配置文件的设置呢?需要写一个脚本来监控。代码如下:

手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

来试着运行一下

python3 influx_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 窗口,运行爬虫文件。

手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

爬虫文件运行成功

我们可以在刚刚打开的控制台里查看效果展示:

手把手教你实现一个可视化爬虫监控系统,酷炫的图形化界面

怎么样?学会了吗?

猜你喜欢

转载自blog.csdn.net/sinat_38682860/article/details/85116137