宝塔下安装Crawlab教程
- Crawlab 是强大的 网络爬虫管理平台(WCMP),它能够运行多种编程语言(包括 Python、Go、Node.js、Java、C#)或爬虫框架(包括 Scrapy、Colly、Selenium、Puppeteer)开发的网路爬虫。它能够用来运行、管理和监控网络爬虫,特别是对可溯性、可扩展性以及稳定性要求较高的生产环境。
- Crawlab 项目自 2019 年 3 月开始一直在不断迭代,并且经历了多次大的更新。它最初是用来解决调度和运行大量爬虫时出现的管理问题。随着大量的优化和新功能加入,Crawlab 越来越受到开发者社区的欢迎,尤其是网路爬虫工程师。
准备安装
- 安装宝塔,然后在宝塔下安装MongoDB和Redis(0.6.x版本无需安装)
- 配置MongoDB和Redis可以远程访问,并设置密码,配置完毕记得重载配置
- 在安全组或防火墙中放行需要使用的端口,如:
6379、27017、8080
-
安装 Docker
宝塔用户,可以直接在 软件商店 里搜索 Docker管理器 来安装Docker。
宝塔新版本自带 Docker ,无需手动安装,可以直接使用!✨ -
下载 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
新版本宝塔默认已经安装,无需手动安装!🎉
-
配置并启动 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
20
21
22
23
24
25
26# 外部 MongoDB 的主节点
version: '3.3'
services:
master:
image: crawlabteam/crawlab
container_name: crawlab_master
restart: always
environment:
CRAWLAB_NODE_MASTER: "Y" # Y: 主节点
CRAWLAB_MONGO_URI: "<mongo_uri>" # mongo uri (单独设置)
CRAWLAB_MONGO_HOST: "<mongo_host>" # mongo host address
CRAWLAB_MONGO_PORT: "<mongo_port>" # mongo port
CRAWLAB_MONGO_DB: "<mongo_db>" # mongo database
CRAWLAB_MONGO_USERNAME: "<mongo_username>" # mongo username
CRAWLAB_MONGO_PASSWORD: "<mongo_password>" # mongo password
CRAWLAB_MONGO_AUTHSOURCE: "<mongo_auth_source>" # mongo auth source
CRAWLAB_MONGO_AUTHMECHANISM: "<mongo_auth_mechanism>" # mongo auth mechanism
CRAWLAB_MONGO_AUTHMECHANISMPROPERTIES: "<mongo_auth_mechanism_properties>" # mongo auth mechanism properties
volumes:
- "/opt/.crawlab/master:/root/.crawlab" # 持久化 crawlab 元数据
- "/opt/crawlab/master:/data" # 持久化 crawlab 数据
- "/var/crawlab/log:/var/log/crawlab" # 持久化 crawlab 任务日志
ports:
- "8080:8080" # 开放 api 端口
- "9666:9666" # 开放 grpc 端口 - 工作节点
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 工作节点
version: '3.3'
services:
worker:
image: crawlabteam/crawlab
container_name: crawlab_worker
restart: always
environment:
CRAWLAB_NODE_MASTER: "N" # N: 工作节点
CRAWLAB_GRPC_ADDRESS: "<master_node_ip>:9666" # grpc address
CRAWLAB_FS_FILER_URL: "http://<master_node_ip>:8080/api/filer" # seaweedfs api
volumes:
- "/opt/.crawlab/worker:/root/.crawlab" # 持久化 crawlab 元数据
- "/opt/crawlab/worker:/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),记得把这个自动生成的内容删除!已修复!