Crawlab爬虫管理平台部署
     分类:环境搭建     有: 0 条评论

Crawlab爬虫管理平台部署

     分类:环境搭建     有: 0 条评论

官方文档随着版本迭代有些地方更新不及时,安装过程中遇到一些麻烦,这里记录


直接安装

考虑到方便二开及IO性能问题(如果你的大量的数据共用数据库,建议Mongo不要使用Docker方式部署)。

官方文档部署教程:https://docs.crawlab.cn/Installation/Direct.html

# 安装Mongo、Redis、Nginx
在我的环境中已经安装了宝塔面板了,Mongo、redis等也是使用宝塔面板安装的。简单配置一下并设定密码
Mongo设定密码可以查看:https://www.leolan.top/index.php/posts/306.html

############################################
# 环境准备
# 安装Node
# 如果使用了宝塔安装的Node这里要先确认一下版本,符合要求可跳过此步。

cd ~
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
nvm use 8.12

node -v

# 安装Go环境
https://www.leolan.top/index.php/posts/337.html

# 开始安装crawlab
cd /opt
git clone https://github.com/crawlab-team/crawlab
# 修改后的源:https://github.com/MyLeoLan/crawlab.git

############################################
# 编译前端
cd crawlab/frontend

修改后端API地址
vim .env.production

VUE_APP_BASE_URL='http://abc.xxxx.com:8000' # 外网能访问的,这里也可以指定端口,到时修改后端端口
如果这里没有设置(删除此项),会使用src/api/request.js中的默认值

# 编译静态文件
npm install -g yarn && yarn install
npm run build:prod

此时frontend目录下会有一个dist静态文件目录
宝塔面板新建站点、配置域名,将dist设置为网站根目录,纯静态。前端部署完成。

下次修改了配置再次执行npm run build:prod 即可

############################################
# 构建后端
cd ../backend
go install ./...

# 配置数据库账户
mongo
use admin
# 如果从没设置过管理员账户,或者忘记密码可以执行以下步骤
db.createUser(
    {
        user:'root',
        pwd:'密码',
        roles:[
                {role:'dbAdminAnyDatabase',db:'admin'},
                {role:'userAdminAnyDatabase',db:'admin'}
            ]
    }
)

# 验证刚刚创建的用户
db.auth('root','密码')   # 返回1表示成功

# 创建crawlab的数据库
use crawlab
db.createUser(
  {
    user: "crawlab",
    pwd: "crawlab123456",
    roles: [ { role: "dbAdmin", db: "crawlab" },
             { role: "readWrite", db: "crawlab" }
           ]
  }
)

# 退出
exit


# 修改配置
vim conf/config.yml
一般修改mongo、redis、spider、邮件配置即可,这里监听的8000端口要和前端设置的一样。


--------------------------------------------------------
这里进行一点修改!!!
Centos环境 + 宝塔面板,宝塔使用系统自带的python2,目前爬虫开发基本使用的是python3
为了避免修改系统自带的python导致的一系列问题,这里修改一下源码;

首先Centos系统要安装python3(crawlab使用的是系统命令搜索路径的版本;如果想用虚拟环境请自己做软链)
yum install python3 python3-pip -y

一般情况下是可以正常使用python3 和pip3 的,如果安装了子版本,自行链接到这两个即可。


# 修改3个文件,将pip修改为pip3(大约行数已标出)
vim ./services/rpc/get_installed_deps.go:61:    cmd := exec.Command("pip3","freeze")                                                                                      
vim ./services/rpc/install_dep.go:61:       cmd := exec.Command("pip3", "install", depName, "-i", url)                                                                         
vim ./services/rpc/uninstall_dep.go:59:     cmd := exec.Command("pip3", "uninstall", "-y", depName)   


# 加速pip,使用豆瓣源
mkdir -p $HOME/.pip/
vim $HOME/.pip/pip.conf

[global]
timeout = 60
index-url = https://pypi.doubanio.com/simple


# 安装包,避免crawlab添加爬虫报错
pip3 install scrapy pymongo redis
记得爬虫代码中要使用python3

修改完成,继续以下步骤,其他修改请关注(实际中遇到的麻烦问题才会去改):
https://github.com/MyLeoLan/crawlab.git

--------------------------------------------------------
# 编译二进制文件
go clean -i  # 如果之前已编译过一次,可以清理一下;有其他go项目时慎用
go build  # 下次修改了配置再次执行此句即可
此时backend目录下会生成一个crawlab二进制文件

# 测试一下
cd /opt/crawlab/backend && ./crawlab
登录后台简单测试是否正常

# 配置Supervisord
如果上一步正常,就停止程序,这里通过Supervisord来管理程序
宝塔安装Supervisord插件

新增守护进程,注意:
root用户执行
运行目录:/opt/crawlab/backend
启动命令:/opt/crawlab/backend/crawlab  # 绝对路径

部署完成!


Kubernetes 部署

用 Kubernetes 部署 Crawlab 爬虫管理节点集群:https://mp.weixin.qq.com/s/POpY6IsNCgosmmgpGva24A


更多部署方式及相关文档请查看:https://docs.crawlab.cn/Installation/Direct.html

(●゚ω゚●)