阿里云及Ubuntu系统下直接部署Crawlab

本文详细介绍了如何在Docker环境下安装和配置Crawlab,包括下载Crawlab镜像、安装Docker-Compose、创建docker-compose.yml文件以启动和管理Crawlab服务。同时,文章还提到了如何根据需求调整配置,如连接本地Redis和MongoDB,以及设置远程访问。最后,安全提示强调了修改默认登录信息和注意安全组配置以确保服务器访问安全。
摘要由CSDN通过智能技术生成
  1. 下载 Crawlab 镜像

    执行命令将 Crawlab 的镜像下载下来。镜像大小大概在几百MB,因此下载需要几分钟时间。

    docker pull tikazyq/crawlab:latest
    
  2. 安装 Docker-Compose

    安装 docker-compose ,在安装了 pip 的情况下 (Python 3),执行以下命令。

    pip install docker-compose
    

    为了方便起见,我们用 docker-compose 的方式来部署。docker-compose 是一个集群管理方式,可以利用名为 docker-compose.ymlyaml 文件来定义需要启动的容器,可以是单个,也可以(通常)是多个的。

  3. 安装并启动 Crawlab

    在你的网站站点根目录下新建 docker-compose.yml,并填入以下内容:

    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: "mongo"  # MongoDB host address MongoDB 的地址,在 docker compose 网络中,直接引用服务名称
          # CRAWLAB_MONGO_PORT: "27017"  # MongoDB port MongoDB 的端口
          # CRAWLAB_MONGO_DB: "crawlab_test"  # MongoDB database MongoDB 的数据库
          # CRAWLAB_MONGO_USERNAME: "username"  # MongoDB username MongoDB 的用户名
          # CRAWLAB_MONGO_PASSWORD: "password"  # MongoDB password MongoDB 的密码
          # CRAWLAB_MONGO_AUTHSOURCE: "admin"  # MongoDB auth source MongoDB 的验证源
          CRAWLAB_REDIS_ADDRESS: "redis"  # Redis host address Redis 的地址,在 docker compose 网络中,直接引用服务名称
          # CRAWLAB_REDIS_PORT: "6379"  # Redis port Redis 的端口
          # CRAWLAB_REDIS_DATABASE: "1"  # Redis database Redis 的数据库
          # CRAWLAB_REDIS_PASSWORD: "password"  # Redis password Redis 的密码
          # CRAWLAB_LOG_LEVEL: "info"  # log level 日志级别. 默认为 info
          # CRAWLAB_LOG_ISDELETEPERIODICALLY: "N"  # whether to periodically delete log files 是否周期性删除日志文件. 默认不删除
          # CRAWLAB_LOG_DELETEFREQUENCY: "@hourly"  # frequency of deleting log files 删除日志文件的频率. 默认为每小时
          # CRAWLAB_SERVER_REGISTER_TYPE: "mac"  # node register type 节点注册方式. 默认为 mac 地址,也可设置为 ip(防止 mac 地址冲突)
          # CRAWLAB_SERVER_REGISTER_IP: "127.0.0.1"  # node register ip 节点注册IP. 节点唯一识别号,只有当 CRAWLAB_SERVER_REGISTER_TYPE 为 "ip" 时才生效
          # CRAWLAB_TASK_WORKERS: 8  # number of task executors 任务执行器个数(并行执行任务数)
          # CRAWLAB_RPC_WORKERS: 16  # number of RPC workers RPC 工作协程个数
          # CRAWLAB_SERVER_LANG_NODE: "Y"  # whether to pre-install Node.js 预安装 Node.js 语言环境
          # CRAWLAB_SERVER_LANG_JAVA: "Y"  # whether to pre-install Java 预安装 Java 语言环境
          # CRAWLAB_SETTING_ALLOWREGISTER: "N"  # whether to allow user registration 是否允许用户注册
          # CRAWLAB_SETTING_ENABLETUTORIAL: "N"  # whether to enable tutorial 是否启用教程
          # CRAWLAB_NOTIFICATION_MAIL_SERVER: smtp.exmaple.com  # STMP server address STMP 服务器地址
          # CRAWLAB_NOTIFICATION_MAIL_PORT: 465  # STMP server port STMP 服务器端口
          # CRAWLAB_NOTIFICATION_MAIL_SENDEREMAIL: admin@exmaple.com  # sender email 发送者邮箱
          # CRAWLAB_NOTIFICATION_MAIL_SENDERIDENTITY: admin@exmaple.com  # sender ID 发送者 ID
          # CRAWLAB_NOTIFICATION_MAIL_SMTP_USER: username  # SMTP username SMTP 用户名
          # CRAWLAB_NOTIFICATION_MAIL_SMTP_PASSWORD: password  # SMTP password SMTP 密码
        ports:    
          - "8080:8080" # frontend port mapping 前端端口映射
        depends_on:
          - mongo
          - redis
        # volumes:
        #   - "/var/crawlab/log:/var/logs/crawlab" # log persistent 日志持久化
      worker:
        image: tikazyq/crawlab:latest
        container_name: worker
        environment:
          CRAWLAB_SERVER_MASTER: "N"
          CRAWLAB_MONGO_HOST: "mongo"
          CRAWLAB_REDIS_ADDRESS: "redis"
        depends_on:
          - mongo
          - redis
        # environment:
        #   MONGO_INITDB_ROOT_USERNAME: username
        #   MONGO_INITDB_ROOT_PASSWORD: password
        # volumes:
        #   - "/var/crawlab/log:/var/logs/crawlab" # log persistent 日志持久化
      mongo:
        image: mongo:latest
        restart: always
        # volumes:
        #   - "/opt/crawlab/mongo/data/db:/data/db"  # make data persistent 持久化
        # ports:
        #   - "27017:27017"  # expose port to host machine 暴露接口到宿主机
      redis:
        image: redis:latest
        restart: always
        # command: redis-server --requirepass "password" # set redis password 设置 Redis 密码
        # volumes:
        #   - "/opt/crawlab/redis/data:/data"  # make data persistent 持久化
        # ports:
        #   - "6379:6379"  # expose port to host machine 暴露接口到宿主机
      # splash:  # use Splash to run spiders on dynamic pages
      #   image: scrapinghub/splash
      #   container_name: splash
      #   ports:
      #     - "8050:8050"
    
    • 如果你已经安装了 Redis 和 MongoDB,想要将数据写入自己本地的Redis 和 MongoDB,你需要:

    • host 替换为你的主机 IP 地址,如:127.0.0.1;将 password 替换为你的 Redis 密码

    • CRAWLAB_SERVER_REGISTER_TYPECRAWLAB_SERVER_REGISTER_IP 两个参数可以不用修改,使用默认值也行

    • 除了 mongo 和 redis 下边的 ports 参数不要取消注释外,其他都可以根据自己的需求调整

      注意事项

      注意事项

    配置完 docker-compose.yml 后,可以运行 docker-compose ps 来测试是否安装正常。正常的应该是显示如下内容:

    如果输入 docker-compose ps报错,需要执行以下命令:

    sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 
    

    安装完成之后再运行docker-compose up安装

    Name   Command   State   Ports
    ------------------------------
    

    这是没有 Docker 容器在运行的情况,也就是空列表。如果有容器在运行,可以看到其对应的信息。

    安装完 docker-compose 和定义好 docker-compose.yml 后,只需要运行以下命令就可以启动 Crawlab。

    docker-compose up -d
    

    启动 Crawlab 后,在浏览器中输入 http://localhost:8080 就可以看到界面。
    停止容器:docker-compose stop

  4. 更新 / 重启 Crawlab

    如果您需要更新最新的版本的镜像,只需要执行以下代码。

    # 关闭并删除 Docker 容器
    docker-compose down
    
    # 拉取最新镜像
    docker pull tikazyq/crawlab:latest
    
    # 启动 Docker 容器
    docker-compose up -d
    

    当 Crawlab 有更新时,我们会将新的变更构建更新到新的镜像中。最新的镜像名称都是 tikazyq/crawlab:latest。而一个指定版本号的镜像名称为 tikazyq/crawlab:<version>,例如 tikazyq/crawlab:0.4.7 为 v0.4.7 版本对应的镜像。

  5. 配置服务器远程访问crawlab管理系统

    使用阿里云服务器,你永远要记住还有安全组这么个东西。想要开放8080端口,需要配置安全组。

    1、进入ECS云服务器控制台
    2、先找到需要操作的目标实例,点击“更多”–“网络和安全组”–“安全组配置”
    如下图所示:
    在这里插入图片描述

    3、点击“配置规则”
    4、点击“添加安全组规则”,添加8080号端口,如下图:
    在这里插入图片描述

    端口范围填:8080/8080
    授权对象填:0.0.0.0/0

    至此,安全组开放8080号端口教程完毕,也可以参考阿里云配置安全组的官方文档

  6. 标题使用域名访问站点

  7. 温馨提示:

    为了安全在登录 Crawlab 后台后记得修改原始登录密码,用户名可以在 MongoDB 数据库中的 users 集合里修改。

  8. Bug 提示:

    如果在 MongoDB 数据库修改了用户名,那么数据库里过一会儿会自动重新生成最原始的账户和密码 (用户:admin;密码:admin),记得把这个自动生成的内容删除!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值