Cronsun 任务管理器部署
引言
cronsun 是一个分布式任务系统,单个节点和 *nix 机器上的 crontab 近似。支持界面管理机器上的任务,支持任务失败邮件提醒,安装简单,使用方便,是替换 crontab 一个不错的选择。
cronsun 是为了解决多台 *nix 机器上crontab 任务管理不方便的问题,同时提供任务高可用的支持(当某个节点死机的时候可以自动调度到正常的节点执行)。cronsun 和 Azkaban、Chronos、Airflow 这些不是同一类型的。
项目状态
cronsun已经在线上几百台规模的服务器上面稳定运行了一年多了,虽然目前版本不是正式版,但是我们认为是完全可以用于生产环境的。强烈建议你试用下,因为它非常简单易用,同时感受下他的强大,相信你会喜欢上这个工具的。
cronsun特性:
方便对多台服务器上面的定时任务进行集中式管理
任务调度时间粒度支持到秒级别
任务失败自动重试
任务可靠性保障(从N个节点里面挑一个可用节点来执行任务)
简洁易用的管理后台,支持多语言
任务日志查看
任务失败邮件告警(也支持自定义http告警接口)
用户验证与授权
部署对象说明
程序名称
Cronsun任务管理器 MongoDB非关系性数据库 Etcd3键值存储仓库
程序架构
Cronsun的重要组件:Cronsun 主要有 3 个主件,都是通过 etcd 通讯的。cronnode 负责节点的分组及节点的状态,croeweb 是管理任务的、执行结果都可以在上面看
部署位置
服务器别名
用户名
部署目录
VMware测试机
root
/usr/local/cronsun-v0.3.5/
/usr/lib/systemd/system/etcd.service
/usr/local/mongodb
项目开源地址
部署操作
环境准备
单节点安装etcd服务
下载安装包,下载地址:https://github.com/etcd-io/etcd/releases
解压文件
目录下有两个可执行文件etcd 和 etcdctl
配置服务
创建工作文件夹
注意:默认监听地址是127.0.0.1,允许远程连接需要改为0.0.0.0
启动etcd服务
测试etcd服务状态:

单节点mongodb的安装
单节点mongodb的安装

配置文件:


MongoDB 的可执行文件位于 bin 目录下,所以可以将其添加到 PATH 路径中:

<mongodb-install-directory> 为MongoDB 的安装路径,如本文档的 /usr/local/mongodb
部署 cronsun 任务管理器
Cronsun下载地址: https://github.com/shunfei/cronsun/releases
解压后修改 conf 目录下的配置文件:db.json 和 etcd.json,分别修改 MongoDB 和 etcd 的实际地址。
添加节点
cronsun基于etcd实现了自动发现和注册的功能,所以添加节点非常简单,直接将cronnode和conf拷贝到客户端服务器启动之后,就能在前台->节点页面看到该服务器了,当然节点和Etcd以及MongoDB之间的网络必须畅通。

程序启动
启动web
启动web:./cronweb -conf conf/base.json
(若要后台运行则使用 nohup)
启动node
启动 node:./cronnode -conf conf/base.json
(若要后台运行则使用 nohup)
访问web页面
访问之前关闭防火墙
systemctl stop firewalld.service
访问web:http://x.x.x.x:7079/ui/ 默认用户名: admin@admin.com 密码:admin

节点管理

添加了所需的节点服务器之后,我们可以将节点进行分组,从而方便定时任务的添加:
添加任务
节点和分组都搞定之后,就可以开始添加定时任务了。

告警配置
首先要清楚 cronsun 的告警是由 cronweb 发出的,而不是 cronnode(但是 cronnode 的 mail.json 也必须 Enable:true,否则还是无法发出告警)。
编辑 cronweb 和 cronnode 的配置文件:mail.json,如下内容

重新启动 cronweb,然后在 web 上的单向任务界面开启告警,即可实现邮件告警,如下图所示:

最后更新于
这有帮助吗?