爬蟲系列之自動化運維(一):服務器管理(年中紅包派送中...)

年  中  福  利  大  派  送

派送規則:

    1:即日起三天內,關注本號的第25,50,75,100位網友;

    2:已關注公衆號,歷史分享前三名

    3:已關注公衆號,歷史留言前兩名;

符合以上三種規則任意一個,則將獲得號主發送的50元微信紅包。
第250名關注者,將獲得88.88的超級大紅包。

一、引言

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. 數據字典設計

 

數據庫字典說明:

① 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_cpuCPU使用情況監控信息表;

⑦ td_idop_serv_monitor_memory:內存使用情況監控信息表;

⑧ td_idop_serv_monitor_disk:硬盤使用情況監控信息表;

⑨ td_idop_serv_monitor_network:網絡收發數據包情況監控表;

1.1.2. 功能描述

1.1.2.1. 節點列表

主要展示當前所有的服務器節點信息。如:服務器IP、登錄信息等。

當監控服務發現服務器異常時,列表中節點名稱顏色變爲紅色,以示預警。

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

亦可以查看當前服務器上已經安裝的開發語言,及執行命令信息.

系統原型如下圖所示:

操作說明:

⑩ 查詢:根據服務器名稱和Ip進行查詢;

⑪ 批量刪除:可以批量刪除服務器節點信息。同時刪除服務器節點所屬語言、插件等信息;服務器CPU、硬盤、內存及網絡等監控信息;刪除當前服務器上部署的記錄;刪除與之相關聯任務信息;

⑫ 添加:新增或編輯服務器信息;

1.1.2.2. 節點語言環境

該模塊主要用於管理服務器上語言環境,以及該語言環境下,已安裝的相關插件。如Python環境下已安裝的第三方爬蟲庫。

1.1.2.2.1. 開發語言

主要用於管理服務器上的語言環境管理,實現管理界面的一鍵安裝、卸載等。

系統原型如下圖所示:

說明:

”表示當前服務器已經安裝該語言;

×”表示當前服務器未安裝該語言

操作說明:

① 查詢:根據服務器Ip進行查詢;

② 添加:指添加語言。添加後刷新列表,列表中新增一列信息;

③ 表頭+”:表示對列表中所有的服務器節點進行安裝。如果已經安裝,則跳過;

④ 行單元格中+”:表示安裝當前服務器安裝的當前列語言;

⑤ 行單元格中×”:表示卸載當前服務器安裝的當前列語言;

1.1.2.2.2. 環境依賴

該模塊主要實現對各服務器節點上,已安裝的語言的插件進行管理,以便在管理系統中統一管理。如安裝、卸載等。

系統原型如下圖所示:

中部樹結構說明:

該樹形結構中數據來源於服務器信息表,以及其對應的語言表。

操作說明:

① 批量刪除:實現對插件的批量刪除。同時,服務器上需要卸載該插件;

② 添加:必須先選擇中部的樹節點下的語言節點,否則不可添加;

③ 編輯:編輯插件信息;如安裝、卸載命令等;

④ 安裝:在當前選中樹節點,所在服務器上安裝該插件;

⑤ 卸載:卸載當前選中樹節點,所在服務器上的該插件;

1.1.2.3. 節點監控

該模塊主要用於近實時的監控服務器的內存、CPU、硬盤等信息,以便運維人員實時調整採集策略。

系統原型如下圖所示: 

中部樹結構說明:

該樹形結構中數據來源於服務器信息表。

統計圖說明:

後臺服務每隔五分鐘獲取一次服務器的內存、CPU、硬盤等使用率;以及網絡的收發包信息。

1.1.2.4. 網絡拓撲

該模塊主要用於顯示當前爬蟲全流程中的網絡結構。包括:服務器分佈、Redis隊列部署情況、數據存儲情況等。

系統原型如下圖所示:

後續會逐漸把整個設計方案分享給各位大佬參考,也希望各位大佬多提建議。


同時,有願意一起開發的大佬,也可以聯繫號主,如果合適,可以組隊哦!

本文分享自微信公衆號 - 十點數據(crawler-small-gun)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章