Crawlab多節點部署流程


Why,為什么需要爬蟲管理平台?

以下摘自官方文檔:

  Crawlab主要解決的是大量爬蟲管理困難的問題,例如需要監控上百個網站的參雜scrapyselenium的項目不容易做到同時管理,而且命令行管理的成本非常高,還容易出錯。

Crawlab支持任何語言和任何框架,配合任務調度、任務監控,很容易做到對成規模的爬蟲項目進行有效監控管理。

  項目自 2019 年 3 月份上線以來受到爬蟲愛好者們和開發者們的好評,超過一半的使用者表示已經在用 Crawlab 作為公司的爬蟲管理平台。

經過近數月的迭代,陸續上線了 定時任務、數據分析、可配置爬蟲、SDK、消息通知、Scrapy 支持、Git 同步等功能,

將Crawlab打造得更加實用,更加全面,能夠真正幫助用戶解決爬蟲管理困難的問題。

 

  需要用到的環境:mongodb、redis、docker。這里就不一一介紹了。由於這里說的是多節點部署,mongodb一定要是3.6版本或者3.6版本以下(這里是大坑)要不然會因為認證機制連接不上mongodb。當然你用docker起mongo和redis映射出來也是一樣的。生產環境上我們不希望僅僅是簡單部署,我們可以在多台服務器上分別部署Crawlab然后連接公共的MongoDB及Redis。這時候就需要讓Mongo及Redis獨立出來,避免耦合啟動。

 

部署流程:

一、拉取鏡像

docker pull tikazyq/crawlab:latest

 

二、編寫docker-compose.yml文件

自己touch一個或者從git上clone一份這里是我的配置。

master節點

version: '3.3'
services:
master:
image: tikazyq/crawlab:latest
container_name: master
environment:
# CRAWLAB_API_ADDRESS: "https://<your_api_ip>:<your_api_port>" # backend API address 后端 API 地址. 適用於 https 或者源碼部署
CRAWLAB_SERVER_MASTER: "Y" # whether to be master node 是否為主節點,主節點為 Y,工作節點為 N
CRAWLAB_MONGO_HOST: "" # MongoDB host address MongoDB 的地址,在 docker compose 網絡中,直接引用服務名稱
CRAWLAB_MONGO_PORT: "27017" # MongoDB port MongoDB 的端口
CRAWLAB_MONGO_DB: "dbname" # MongoDB database MongoDB 的數據庫
CRAWLAB_MONGO_USERNAME: "dbusername" # MongoDB username MongoDB 的用戶名
CRAWLAB_MONGO_PASSWORD: "dbpwd" # MongoDB password MongoDB 的密碼
CRAWLAB_MONGO_AUTHSOURCE: "admin" # MongoDB auth source MongoDB 的驗證源
CRAWLAB_REDIS_ADDRESS: "" # Redis host address Redis 的地址,在 docker compose 網絡中,直接引用服務名稱
CRAWLAB_REDIS_PORT: "6379" # Redis port Redis 的端口
CRAWLAB_REDIS_DATABASE: "1" # Redis database Redis 的數據庫
CRAWLAB_REDIS_PASSWORD: "dbpwd" # Redis password Redis 的密碼
CRAWLAB_LOG_LEVEL: "info" # log level 日志級別. 默認為 info
ports:
- "8080:8080" # frontend port mapping 前端端口映射
depends_on:
- mongo
- redis
mongo:
image: mongo:latest
restart: always

redis:
image: redis:latest
restart: always

 

worker節點

version: '3.3'
services:
  worker:
    image: tikazyq/crawlab:latest
    container_name: worker
    environment:
      # CRAWLAB_API_ADDRESS: "https://<your_api_ip>:<your_api_port>"  # backend API address 后端 API 地址. 適用於 https 或者源碼部署
      CRAWLAB_SERVER_MASTER: "N"  # whether to be master node 是否為主節點,主節點為 Y,工作節點為 N
      CRAWLAB_MONGO_HOST: ""  # MongoDB host address MongoDB 的地址,在 docker compose 網絡中,直接引用服務名稱
      CRAWLAB_MONGO_PORT: "27017"  # MongoDB port MongoDB 的端口
      CRAWLAB_MONGO_DB: "dbname"  # MongoDB database MongoDB 的數據庫
      CRAWLAB_MONGO_USERNAME: "dbusername"  # MongoDB username MongoDB 的用戶名
      CRAWLAB_MONGO_PASSWORD: "dbpwd"  # MongoDB password MongoDB 的密碼
      CRAWLAB_MONGO_AUTHSOURCE: "admin"  # MongoDB auth source MongoDB 的驗證源
      CRAWLAB_REDIS_ADDRESS: ""  # Redis host address Redis 的地址,在 docker compose 網絡中,直接引用服務名稱
      CRAWLAB_REDIS_PORT: "6379"  # Redis port Redis 的端口
      CRAWLAB_REDIS_DATABASE: "1"  # Redis database Redis 的數據庫
      CRAWLAB_REDIS_PASSWORD: "dbpwd"  # Redis password Redis 的密碼
      CRAWLAB_LOG_LEVEL: "info"  # log level 日志級別. 默認為 info
    ports:
      - "8080:8080" # frontend port mapping 前端端口映射
    depends_on:
      - mongo
      - redis
  mongo:
    image: mongo:latest
    restart: always

  redis:
    image: redis:latest
    restart: always

 

三、docker-compose up啟動

master端和worker端啟動:

docker-compose up -d #-d就是后台啟動

 

啟動成功圖:

 

 

 

這時可以打開localhost:8080查看節點信息。默認賬號密碼都是admin:

 

 

然后就可以部署你的爬蟲了。看起來很簡單當初踩了好多坑。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM