zoukankan      html  css  js  c++  java
  • 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:

    然后就可以部署你的爬虫了。看起来很简单当初踩了好多坑。

  • 相关阅读:
    Max History CodeForces
    Buy a Ticket CodeForces
    AC日记——字符串的展开 openjudge 1.7 35
    AC日记——回文子串 openjudge 1.7 34
    AC日记——判断字符串是否为回文 openjudge 1.7 33
    AC日记——行程长度编码 openjudge 1.7 32
    AC日记——字符串P型编码 openjudge 1.7 31
    AC日记——字符环 openjudge 1.7 30
    AC日记——ISBN号码 openjudge 1.7 29
    AC日记——单词倒排 1.7 28
  • 原文地址:https://www.cnblogs.com/Pynu/p/15250596.html
Copyright © 2011-2022 走看看