宝塔下安装Crawlab教程
简介:
- Crawlab 是基于Golang的分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架。
- 项目自 2019 年 3 月份上线以来受到爬虫爱好者们和开发者们的好评,超过一半的使用者表示已经在用 Crawlab 作为公司的爬虫管理平台。经过近数月的迭代,我们陆续上线了 定时任务、数据分析、可配置爬虫、SDK、消息通知、Scrapy 支持、Git 同步 等功能,将 Crawlab 打造得更加实用,更加全面,能够真正帮助用户解决爬虫管理困难的问题。
- Crawlab 主要解决的是大量爬虫管理困难的问题,例如需要监控上百个网站的参杂scrapy和selenium的项目不容易做到同时管理,而且命令行管理的成本非常高,还容易出错。Crawlab 支持任何语言和任何框架,配合任务调度、任务监控,很容易做到对成规模的爬虫项目进行有效监控管理。
准备安装
- 安装宝塔,然后在宝塔下安装MongoDB和Redis(0.6.x版本无需安装)
- 配置MongoDB和Redis可以远程访问,并设置密码,配置完毕记得重载配置
- 在安全组或防火墙中放行需要使用的端口,如:
6379、27017、8080
安装方法有很多,比如Docker 安装部署、Kubernetes 部署、直接部署、开发模式、多节点部署、专业版部署,这里我只讲Docker 安装部署,因为这应该是部署应用的最方便也是最节省时间的方式了。
-
安装 Docker
宝塔用户,可以直接在 软件商店 里搜索 Docker管理器 来安装Docker。
-
配置Docker源
- 我们已经在 DockerHub 上构建了Crawlab的镜像,开发者只需要将其 pull 下来使用。在 pull 镜像之前,我们需要配置一下镜像源。因为我们在墙内,使用原有的镜像源速度非常感人,因此将使用 DockerHub 在国内的加速器。
- 宝塔用户可以直接在 Docker管理器 里找到 镜像管理,然后点击 镜像加速,最后将以下内容任选其一填入 加速地址 里保存即可!
1
2
3# 镜像加速
https://hub-mirror.c.163.com
https://mirror.baidubce.com - 云服务商
- 简介
某些云服务商提供了 仅供内部 访问的镜像服务,当您的 Docker 运行在云平台时可以选择它们。 - Azure 中国镜像
https://dockerhub.azk8s.cn - 腾讯云
https://mirror.ccs.tencentyun.com
- 简介
- 不再提供服务的镜像
1
2
3https://dockerhub.azk8s.cn 已转为私有
https://reg-mirror.qiniu.com
https://registry.docker-cn.com
-
下载Crawlab镜像
- Crawlab v0.5.x
1
docker pull tikazyq/crawlab:latest
- Crawlab v0.6.x
1
docker pull crawlabteam/crawlab
- 执行以上命令将 Crawlab 的镜像下载下来。镜像比较大,因此下载需要几分钟时间。
- Crawlab v0.5.x
-
安装 Docker-Compose
安装 docker-compose 其实比较简单,在安装了 pip 的情况下(Python 3),执行以下命令。
1
pip install docker-compose
为了方便起见,我们用
docker-compose
的方式来部署。docker-compose
是一个集群管理方式,可以利用名为docker-compose.yml
的yaml
文件来定义需要启动的容器,可以是单个,也可以(通常)是多个的。 -
配置并启动Crawlab
在你的网站站点根目录下新建 docker-compose.yml,并填入以下内容:
-
Crawlab v0.5.x
- 主节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26version: '3.3'
services:
master:
image: tikazyq/crawlab:latest
container_name: crawlab_master
environment:
CRAWLAB_SERVER_MASTER: "Y"
# MongoDB配置
CRAWLAB_MONGO_HOST: "host"
CRAWLAB_MONGO_PORT: "27017"
CRAWLAB_MONGO_DB: "crawlab_master"
CRAWLAB_MONGO_USERNAME: "username"
CRAWLAB_MONGO_PASSWORD: "password"
CRAWLAB_MONGO_AUTHSOURCE: "admin"
# Redis配置
CRAWLAB_REDIS_ADDRESS: "host"
CRAWLAB_REDIS_PORT: "6379"
CRAWLAB_REDIS_DATABASE: "15"
CRAWLAB_REDIS_PASSWORD: "password"
# 节点注册方式
CRAWLAB_SERVER_REGISTER_TYPE: "ip"
CRAWLAB_SERVER_REGISTER_IP: "host"
ports:
- "8080:8080" # frontend
volumes:
- "/var/crawlab/log:/var/logs/crawlab" # 日志持久化 - 工作节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24version: '3.3'
services:
master:
image: tikazyq/crawlab:latest
container_name: crawlab_worker
environment:
CRAWLAB_SERVER_MASTER: "N"
# MongoDB配置
CRAWLAB_MONGO_HOST: "主节点host"
CRAWLAB_MONGO_PORT: "27017"
CRAWLAB_MONGO_DB: "crawlab_worker"
CRAWLAB_MONGO_USERNAME: "username"
CRAWLAB_MONGO_PASSWORD: "password"
CRAWLAB_MONGO_AUTHSOURCE: "admin"
# Redis配置
CRAWLAB_REDIS_ADDRESS: "主节点host"
CRAWLAB_REDIS_PORT: "6379"
CRAWLAB_REDIS_DATABASE: "15"
CRAWLAB_REDIS_PASSWORD: "password"
# 节点注册方式
CRAWLAB_SERVER_REGISTER_TYPE: "ip"
CRAWLAB_SERVER_REGISTER_IP: "工作节点host"
volumes:
- "/var/crawlab/log:/var/logs/crawlab" # 日志持久化如果没有额外的服务器用作工作节点可以只写 主节点
- 主节点
-
Crawlab v0.6.x
- 主节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20version: '3.3'
services:
master:
image: crawlabteam/crawlab
container_name: crawlab_master
restart: always
environment:
CRAWLAB_NODE_MASTER: "Y"
# MongoDB配置
CRAWLAB_MONGO_HOST: "host"
CRAWLAB_MONGO_PORT: "27017"
CRAWLAB_MONGO_DB: "crawlab"
CRAWLAB_MONGO_USERNAME: "username"
CRAWLAB_MONGO_PASSWORD: "password"
CRAWLAB_MONGO_AUTHSOURCE: "admin"
volumes:
- "/opt/crawlab/master:/data" # 持久化 crawlab 数据
ports:
- "8080:8080" # 开放 api 端口
- "9666:9666" # 开放 grpc 端口 - 工作节点
1
2
3
4
5
6
7
8
9
10
11
12version: '3.3'
services:
worker:
image: crawlabteam/crawlab
container_name: crawlab_worker
restart: always
environment:
CRAWLAB_NODE_MASTER: "N"
CRAWLAB_GRPC_ADDRESS: "主节点host:9666"
CRAWLAB_FS_FILER_URL: "http://主节点host:8080/api/filer"
volumes:
- "/opt/crawlab/master:/data" # 持久化 crawlab 数据如果没有额外的服务器用作工作节点可以只写 主节点
- 主节点
-
注意事项
- 安装宝塔的时候需要同时安装了 MongoDB 和 Redis(0.5.x需要)
- 将
host
替换为你的主机IP地址,如:127.0.0.1
- 将
password
替换为你的数据库密码 - 如果仅有一台服务器可以只配置主节点,如有多台服务器时可以在非主节点的服务器上配置工作节点
-
验证docker-compose
配置完 docker-compose.yml 后,可以运行 docker-compose ps 来测试是否安装正常。正常的应该是显示如下内容:
1
2Name Command State Ports
------------------------------这是没有 Docker 容器在运行的情况,也就是空列表。如果有容器在运行,可以看到其对应的信息。
-
启动Crawlab
安装完
docker-compose
和配置好 docker-compose.yml 后,只需要运行以下命令就可以启动Crawlab。1
docker-compose up -d
启动Crawlab后,在浏览器中输入
http://localhost:8080
就可以看到界面。
停止容器:docker-compose stop
-
-
常用命令
1
2
3
4
5
6
7
8# 停止容器
docker-compose stop
# 关闭并删除 Docker 容器
docker-compose down
# 启动 Docker 容器
docker-compose up -d -
配置SSL
对于宝塔用户可以通过配置反向代理的方式实现通过
https://+域名
的方式访问Crawlab,具体步骤如下:- 使用你的域名在宝塔上添加站点
- 然后在站点目录下创建并配置 docker-compose.yml 文件
- 启动站点
docker-compose up -d
- 配置反向代理
- 使用域名访问站点
- 温馨提示:为了安全在登录Crawlab后台后记得修改原始登录密码,用户名可以在MongoDB数据库中的
users
集合里修改。 - Bug提示:如果在MongoDB数据库修改了用户名,那么数据库里过一会儿会自动重新生成最原始的账户和密码(用户:admin;密码:admin),记得把这个自动生成的内容删除!