Ubuntu系统虚拟机搭建Crawlab分布式爬虫管理平台
文章目录
前言
本文主要介绍了如何在Ubuntu-20.04.3系统的虚拟机中,使用docker的方式简单部署Crawlab爬虫管理平台、如何配置和管理平台的一些功能的使用方法
一、链接地址
github地址:https://github.com/crawlab-team/crawlab
中文文档地址:https://docs.crawlab.cn/zh/
docker学习文档:https://yeasy.gitbook.io/docker_practice/
二、使用步骤
1.搭建Ubuntu系统
下载VMware Workstation虚拟机、Ubuntu-20.04.3系统镜像文件
2.安装Docker
Ubuntu系统安装Docker教程:https://docs.docker.com/engine/install/ubuntu/
打开命令行模式,输入sudo apt-get update ,注意这里会先要求输入管理员账号的密码,比较坑的是输入的时候看不到光标移动,其实已经输入了,输完密码按回车就可以了
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
输入以下命令,列出可下载的仓库版本,选择其中一个版本进行安装即可
apt-cache madison docker-ce
例如
sudo apt-get install docker-ce=5:20.10.12~3-0~ubuntu-focal docker-ce-cli=5:20.10.12~3-0~ubuntu-focal containerd.io
用hello-world测试docker是否安装成
sudo docker run hello-world
3.安装Docker-Compose
sudo apt install python3-pip
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
测试docker-compose的版本,上图中显示docker-compose的版本为1.29.2
在/etc/docker/daemon.json中,输入以下内容并保存
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
输入完内容后,按:wq!
保存退出
version: '3.3'
services:
master:
image: tikazyq/crawlab:latest
container_name: crawlab-master
environment:
CRAWLAB_API_ADDRESS: "http://localhost:8000"
CRAWLAB_SERVER_MASTER: "Y"
CRAWLAB_MONGO_HOST: "mongo"
CRAWLAB_REDIS_ADDRESS: "redis"
ports:
- "8080:8080" # frontend
- "8000:8000" # backend
depends_on:
- mongo
- redis
worker:
image: tikazyq/crawlab:latest
container_name: crawlab-worker
environment:
CRAWLAB_SERVER_MASTER: "N"
CRAWLAB_MONGO_HOST: "mongo"
CRAWLAB_REDIS_ADDRESS: "redis"
depends_on:
- mongo
- redis
mongo:
image: mongo:4.2
restart: always
ports:
- "27017:27017"
redis:
image: redis:latest
restart: always
ports:
- "6379:6379"
输入完内容后,按:wq!
保存退出
保存后在当前目录输入
sudo docker-compse up -d
然后等待下载完成
下载完成后,输入 sudo docker ps 可以看到已经启动的四个容器,只有当这四个容器都开启的状态,才能正常打开
成功登录后,出现如图所示,显示docker已经成功部署了Crawlab
4.重启虚拟机后
重启虚拟机后,直接打开网页会无法运行,如上图所示先运行docker ps后,会发现只有部分(图中只有mongodb、redis容器启动),所以需要启动crawlab主节点和工作节点后,才能正常打开网页。
sudo docker ps -a #查看所有容器,包括没有运行的
找到这两个容器的ID,并如上图所示用docker start 语句去启动容器
此时再运行 docker ps 语句,发现出现4个容器,说明都已经启动成功,就可以成功开启网页了
5.Crawlab使用方法
5.1 普通任务
执行命令按上面例子所示,保存后就可以运行python程序
5.2 定时任务
5.2.1 修改时区
要使用Crawlab实现定时爬虫任务,就要先修改系统的时区
命令行模式输入sudo dpkg-reconfigure tzdata
,选择Asia/Shanghai 即可
5.3 添加依赖包
具体方法参考这篇文章 https://blog.glemon.cn/post/在Docker里给Crawlab安装Python依赖
5.4 消息通知
钉钉机器人
在钉钉群里新建机器人,并复制Webhook参数
安全设置可简单定义,包含“任务”这个词的消息通知,这样就能接收到相应的消息了
在Crawlab中粘贴钉钉机器人的Webhook并设置好消息通知除法时机,就可以发送消息了