跳过正文
  1. 博客文章/

Gocron 实践安装,实现统一定时任务管理平台

·225 字·2 分钟·
Centos Linux Gocron Docker
Zayn
作者
Zayn
专注 Kubernetes、CI/CD、可观测性等云原生技术栈,记录生产环境中的实战经验与踩坑复盘。
目录

部署环境说明
#

  • 操作系统: CentOS release 7.8.2003
  • Gocron Version: v1.5.3
  • Mysql Version: 5.5

Gocron 说明
#

gocron 是使用 go 语言开发的轻量级定时任务集中调度和管理系统, 可以用于替代 linux-crontab。

项目 github 地址

manage 端安装配置
#

在 Gocron 中数据的存储是放置在 mysql 数据库中的,我们这里需要配置一下 MySQl 的使用环境及权限。如果数据库已经事先安装,那么就只需要添加对应的库和用户使用权限即可。

手动使用二进制进行安装
#

  • 下载对应版本安装包

    wget https://github.com/ouqiang/gocron/releases/download/v1.5.3/gocron-node-v1.5.3-linux-amd64.tar.gz # 下载对应压缩包
    
    # 解压 复制文件到指定文件夹下 进行使用
    tar xf gocron-v1.5.3-linux-amd64.tar.gz  
    cd gocron-linux-amd64/
    \cp -a gocron /usr/local/bin/
    
    gocron -v
    
  • 配置为服务并设置自启动

    管理端启动后,服务默认监听端口是在 tcp 至上的 5920 端口

    mkdir -p /application/gocron-manage
    cat > /usr/lib/systemd/system/gocron-manage.service << EOF
    [Unit]
    Description=gocron web manage
    Documentation=https://github.com/ouqiang/gocron
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/local/bin/gocron web
    Restart=on-failure
    WorkingDirectory=/application/gocron-manage
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
  • 启动 manage 端并设置开机自启动

    systemctl start gocron-manage.service \
    && systemctl status gocron-manage.service \
    && systemctl enable gocron-manage.service
    

数据库的连接初始化
#

  • 创建程序连接数据库的对应用户使用权限

    CREATE DATABASE `gocron` CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; # 创建 程序连接数据库
    
    grant all on `gocron`.* to cron_app@'%' identified by 'xMPJ8Xkv1'; # 创建程序使用用户,并将对应库权限授予此用户进行使用
    
    flush privileges;
    

image-20201026105133322.png

agent/node 端安装配置
#

手动使用二进制进行安装
#

  • 安装准备

    wget https://github.com/ouqiang/gocron/releases/download/v1.5.3/gocron-node-v1.5.3-linux-amd64.tar.gz # agent
    
    tar xf gocron-node-v1.5.3-linux-amd64.tar.gz \
    && cd gocron-node-linux-amd64 \
    && cp gocron-node /usr/local/bin  # 添加至环境变量中
    
    gocron-node --version # 测试效果
    
  • 配置为服务并设置开机自启动

    mkdir -p /application/gocron-agent
    cat > /usr/lib/systemd/system/gocron-agent.service << EOF
    [Unit]
    Description=gocron agent/node server
    Documentation=https://github.com/ouqiang/gocron
    After=network.target
    
    [Service]
    Type=simple
    User=root
    ExecStart=/usr/local/bin/gocron-node -allow-root
    WorkingDirectory=/application/gocron-agent
    Restart=on-failure
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
    # 设置开机自启动
    systemctl start gocron-agent.service \
    && systemctl status gocron-agent.service \
    && systemctl enable gocron-agent.service
    

    注意agent端 默认监听在 tcp 协议上的 5921 (–help 查看帮助文档 修改端口)

问题记录
#

日志提示主机名称过长
#

具体日志表现如下所示:

image-20201026142218684

  • 解决方法,就是更改对应 表结构,进行解决。

    ALTER TABLE cron_task_log MODIFY hostname text NOT NULL ;
    

To Do
#

相关文章

企业级 CentOS 7 系统初始化与优化完整指南
·2893 字·14 分钟
Linux Centos Centos7 Linux System-Optimization Server-Hardening Production-Deployment
使用 Docker Compose 部署 OpenConnect VPN 服务器
·213 字·1 分钟
Linux 网络 Openconnect Docker-Compose Openldap
Git 使用问题的记录
·112 字·1 分钟
DevOps Linux Git