热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

获取当前被选中的树节点ztree_爬虫系列之自动化运维(一)服务器节点详细设计...

一、引言1.1.背景对于互联网企业来说,随着业务的不断拓展,公司所运行的项目越来越多,项目业务逻辑也越来越复杂,需要定制化开
376ec7c29b7cbc323435524e032d2ead.png

一、引言

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.数据字典设计

1d79aae28742cb59ffb23482b1b4e598.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、操作系统等信息。

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

系统原型如下图所示:

49ba094d7d7c96934132a04a47c0165f.png

操作说明:

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

1.1.2.2.节点语言环境

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

1.1.2.2.1.开发语言

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

718acd240a73d8befb2e951cd9389d1d.png

说明:

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

操作说明:

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

1.1.2.2.2.环境依赖

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

163b4cce0b1aa6cbf0e1ed76a0756442.png

中部树结构说明:

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

操作说明:

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

1.1.2.3.节点监控

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

系统原型如下图所示:

d902a9213cf2fa5e0926426d44394fe7.png
a606097eb509c25e852213021d9d3812.png

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

统计图说明:

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

1.1.2.4.网络拓扑

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

系统原型如下图所示:

5aae65b8cae7bfb088239b2410149647.png



推荐阅读
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Python如何调用类里面的方法
    本文介绍了在Python中调用同一个类中的方法需要加上self参数,并且规范写法要求每个函数的第一个参数都为self。同时还介绍了如何调用另一个类中的方法。详细内容请阅读剩余部分。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
author-avatar
咕噜噜噜lu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有