`

爬虫系列之自动化运维(一)服务器节点详细设计

阅读更多

爬虫系列之自动化运维(一)服务器节点详细设计

十点数据 10小时前 ⋅ 16 阅读 ⋅ 0 积分
 

相关阅读:

网络爬虫的实现原理与技术

Python,开发爬虫的不二选择

我们能用Python做什么?学Python有前途吗?

3人团队,如何管理10万采集网站?(最全、最细解读)

运维系列之FastAPI自动化运维接口服务

运维系列之远程部署神器 Fabric介绍

自动化运维之Fabric系列(一)小试牛刀

如何爬虫微信公众号中的所有疫情信息呢?

Python爬虫中requests下载插件常用方法汇总(一)

服务器.jpg

一、引言

1.1.背景

对于互联网企业来说,随着业务的不断拓展,公司所运行的项目越来越多,项目业务逻辑也越来越复杂,需要定制化开发的内容也越来越多。

大数据背景下的舆情公司,由于业务需求数据范围广,无法通过一种统一的方式,来解决所有类型数据的采集。随之而来的,就是定制化开发的采集器越来越多,这些采集器的运维越来越繁琐,逐渐影响项目的进度,成为了限制业务发展的瓶颈。

那么,如何解决呢?自动化运维便是正解。

1.2.业务痛点

① 管理分散在各开发人员,解决问题的效率低下;
② 项目越来越复杂,定制开发增多,部署、更新等运维难度骤增;
③ 脚本运行情况、采集数据量等监控难度加大;
④ 由于管理分散,人员流动导致运维难度系数增加;
⑤ 人为操作失误频发,导致

1.3.目标

① 实现部门内容所有服务的自动化部署与监控,不只是采集。初期以采集为主;
② 实现各服务/脚本的统一管理,实时监控异常;

1.4.技术

① 系统使用语言:Java + Python
② 管理后台使用技术:Spring Boot2.X + FreeMarker + X-Admin2.X
③ 运维端:FastAPI +Fabric(2.0版本升级为:Ansible)

1.5.使用范围

① 本版本暂时只支持Linux操作系统的运维;
② Windows系统在后续2.0版本中提供支持;

二、系统概述

1.1.系统描述

开发该系统主要是为了实现采集器、脚本及其他服务的自动化运维管理,包括服务的部署/上传、启动、关闭、参数修改、简单的服务文件的修改等。 同时,实现对服务器、采集器、脚本等服务进行监控,实时发现问题,解决问题。 1.2.结构描述 当前系统主要包括服务器节点管理、项目管理、爬虫管理和任务管理等四个模块,每个模块的具体功能细节如下表所示: 一级功能 二级功能 三级操作 备注 节点管理

节点列表	-	实现对服务器信息的管理

节点环境 开发语言 管理并显示服务器上安装的语言环境 环境依赖 管理服务器上各语言环境插件 节点监控 - 主要监控各服务器的硬盘、CPU、内存等使用情况 拓补图 - 主要用于展示采集相关的所有软硬件关系、结构 项目管理 项目列表 - 主要展示项目信息

爬虫管理

爬虫列表	-	主要展示已经开发或部署的爬虫信息
部署情况	-	显示每个爬虫部署的服务器节点情况
任务列表	-	显示每个爬虫已经或正在处理的任务列表
爬虫文件	-	主要用于在线修改爬虫文件,并同步到所部署节点
运行环境	-	用于管理爬虫运行所需环境,包括安装、卸载等
采集分析	-	展示爬虫采集数据相关的统计信息,用于监控

任务管理 任务列表 - 主要用于查看当前所有爬虫的采集任务信息

1.3.运维接口描述

当部署爬虫时,我们需要把爬虫脚本,上传到相关的服务器节点上。所以,就需要一个能与服务器进行交互的服务接口。

目前采用Fabric来实现,2.0版本时再考虑基于容器的相关技术,如docker等技术。

三、功能模块

1.1.节点管理

该模块主要包括服务器、服务器配置、语言环境,以及各语言环境相关参数等信息的查看、管理等功能。

1.1.1.数据字典设计

数据字典.png

数据库字典说明:

① td_idop_servers:服务器节点信息表;
② td_idop_serv_info:服务器节点配置信息表;
③ td_idop_serv_lang_rel:服务器与编程语言关联表;
④ td_idop_serv_lang:编程语言信息表;
⑤ td_idop_serv_lang_plugs:编程语言相关插件表;
⑥ td_idop_serv_monitor_cpu:CPU使用情况监控信息表;
⑦ td_idop_serv_monitor_memory:内存使用情况监控信息表;
⑧ td_idop_serv_monitor_disk:硬盘使用情况监控信息表;
⑨ td_idop_serv_monitor_network:网络收发数据包情况监控表;

1.1.2.功能描述

1.1.2.1.节点列表

主要展示当前所有的服务器节点信息。如:服务器IP、登录信息等。

当监控服务发现服务器异常时,列表中节点名称颜色变为红色,以示预警。

可以查看服务器的基本配置信息包括:内存、CPU、操作系统等信息。

亦可以查看当前服务器上已经安装的开发语言,及执行命令信息.

系统原型如下图所示:

节点列表.png

操作说明:

⑩ 查询:根据服务器名称和Ip进行查询;
⑪ 批量删除:可以批量删除服务器节点信息。同时删除服务器节点所属语言、插件等信息;服务器CPU、硬盘、内存及网络等监控信息;删除当前服务器上部署的记录;删除与之相关联任务信息;
⑫ 添加:新增或编辑服务器信息;

1.1.2.2.节点语言环境

该模块主要用于管理服务器上语言环境,以及该语言环境下,已安装的相关插件。如Python环境下已安装的第三方爬虫库。

1.1.2.2.1.开发语言

主要用于管理服务器上的语言环境管理,实现管理界面的一键安装、卸载等。 系统原型如下图所示:

开发语言.png

说明:

“√”表示当前服务器已经安装该语言;
“×”表示当前服务器未安装该语言

操作说明:

① 查询:根据服务器Ip进行查询;
② 添加:指添加语言。添加后刷新列表,列表中新增一列信息;
③ 表头“+”:表示对列表中所有的服务器节点进行安装。如果已经安装,则跳过;
④ 行单元格中“+”:表示安装当前服务器安装的当前列语言;
⑤ 行单元格中“×”:表示卸载当前服务器安装的当前列语言;

1.1.2.2.2.环境依赖

该模块主要实现对各服务器节点上,已安装的语言的插件进行管理,以便在管理系统中统一管理。如安装、卸载等。 系统原型如下图所示:

环境依赖.png

中部树结构说明:

该树形结构中数据来源于服务器信息表,以及其对应的语言表。

操作说明:

① 批量删除:实现对插件的批量删除。同时,服务器上需要卸载该插件;
② 添加:必须先选择中部的树节点下的语言节点,否则不可添加;
③ 编辑:编辑插件信息;如安装、卸载命令等;
④ 安装:在当前选中树节点,所在服务器上安装该插件;
⑤ 卸载:卸载当前选中树节点,所在服务器上的该插件;

1.1.2.3.节点监控

该模块主要用于近实时的监控服务器的内存、CPU、硬盘等信息,以便运维人员实时调整采集策略。

系统原型如下图所示:

控制1.png 控制2.png

中部树结构说明: 该树形结构中数据来源于服务器信息表。

统计图说明:

后台服务每个五分钟获取一次服务器的内存、CPU、硬盘等使用率;以及网络的收发包信息。

1.1.2.4.网络拓扑

该模块主要用于显示当前爬虫全流程中的网络结构。包括:服务器分布、Redis队列部署情况、数据存储情况等。

系统原型如下图所示:

拓扑图.png

0
0
分享到:
评论

相关推荐

    2018服务器批量管理软件

    5. **自动化脚本**:允许用户编写和执行自定义脚本,实现批量自动化任务,如系统升级、备份、数据迁移等。 二、站群管理 1. **域名解析与绑定**:一键设置多台服务器上的域名解析与绑定,确保站群服务的稳定运行。...

    Python-Crawlab基于Celery的爬虫分布式爬虫管理平台支持多种编程语言以及多种爬虫框架

    Crawlab是一个高效、灵活的爬虫管理平台,它利用Celery作为其核心的分布式任务调度系统,旨在为数据采集提供一个集中的控制台,支持多种编程语言和多种爬虫框架,极大地提高了爬虫项目的管理和执行效率。 ### ...

    常用的Python爬虫技巧.pdf

    Python是一种功能丰富的编程语言,尤其在Web快速开发、爬虫和自动化运维领域应用广泛。本文将详细介绍一些常见的Python爬虫技巧。 1. **基本抓取网页** - **GET方法**:GET是最常见的HTTP请求方法,用于获取网页...

    201809网络爬虫系统-项目建设方案

    - **增强系统灵活性**:系统能够自动根据爬虫节点的负载情况进行负载均衡,同时具备故障自恢复能力。 ##### 1.3 应用感知目标 - 实现快速的数据响应与内容加载。 - 提升用户体验,简化使用流程。 - 确保系统运行的...

    对Python各种框架Django、Flask、Scrapy、Selenium、Ansible、Locust等的深入.zip

    5. Ansible:Ansible是自动化运维的利器,它通过SSH连接管理目标节点,无需在目标机器上安装额外代理。Ansible使用YAML语言编写配置剧本,实现服务器配置、应用部署、任务自动化等操作。其易用性、幂等性和模块化...

    大型门户网站站架构心得-腾讯-百度-新浪-谷歌网站

    总结起来,大型门户网站的架构设计是一个涉及分层、分布式、负载均衡、可扩展性、数据库优化以及自动化运维等多个方面的复杂工程。通过学习腾讯、百度、新浪和谷歌等公司的实践,我们可以汲取精华,构建出更高效、更...

    网络爬虫系统项目建设方案.docx

    - **自动化运维**:实现自动化监控、报警和日志记录等功能,降低运维成本。 #### 三、详尽建设方案 **3.1 一站式大数据采集、储存、清洗、训练、导出** - **一站式解决方案**:提供从数据采集、存储、清洗到分析和...

    PyPI 官网下载 | scrapy-scrapingbee-0.0.4.tar.gz

    - **云原生(Cloud Native)**:云原生是一种构建和运行应用的方式,它充分利用云计算的优势,包括弹性伸缩、自动化运维、微服务架构等。Scrapy-ScrapingBee 结合了云服务,可以视为云原生的一个实践。 - **Python...

    Python库 | pybotnet-0.20.5.tar.gz

    - **自动化运维**:自动执行服务器维护任务,如监控、日志分析、故障检测和恢复。 - **物联网(IoT)**:连接和控制多个设备,实现设备间的数据交换和智能操作。 ### 安装与使用 安装`pybotnet-0.20.5`可以通过...

    网络游戏-CDN网络的监控系统及方法.zip

    4. 自动化响应:当检测到异常时,系统可以自动触发预设的恢复策略,如负载均衡调整、切换备用节点等。 四、优化策略 1. 动态调度:根据网络状况和用户需求,动态调整CDN节点的资源分配,例如在高峰时段增加热门...

    分布式系统的技术原理.pdf

    - **智能运维**: 利用机器学习等技术自动监控系统状态,预测潜在故障,减少人工干预。 - **边缘计算**: 边缘计算结合分布式系统可以在数据产生的源头进行处理,降低中心服务器的压力。 总之,分布式系统作为一...

    数据抓取中gerapy的安装,超详细的教程。包括gerapy,scrapy,scrapyd,nginx配置等等。

    本文将详细介绍如何安装和配置这些工具,以便实现高效、集群化的爬虫管理。 首先,让我们从创建Python虚拟环境开始。在命令行中,使用`conda create --name crawl python=3.7`创建一个名为`crawl`的虚拟环境,然后...

    大厂 Go 工程师面试题集锦.docx

    - **解释**:Micro服务架构通过将应用程序分解为一系列小型、可独立部署的服务,提高系统的可扩展性和灵活性。 6. **服务发现机制** - **知识点**:掌握服务发现的基本原理及其在Micro服务架构中的作用。 - **...

    AFRICA-GDG-Event-Search-Engine:非洲 GDG 活动搜索引擎

    8. **持续集成/持续部署(CI/CD)**:为了确保代码质量和快速迭代,项目应采用Git进行版本控制,并结合Jenkins、Travis CI或GitHub Actions实现自动化测试和部署。 9. **安全性**:保护用户隐私和防止恶意攻击是任何...

    大数据学习路线+知识点大梳理.pdf

    - **基本Shell命令**: 提供了一系列命令来进行数据操作。 - **状态/版本/帮助命令**: 获取系统状态信息。 - **表操作**: 对表进行增删改查。 - **对应的API编程接口** - **重要机制和原理** - **存储原理**: ...

Global site tag (gtag.js) - Google Analytics