Agent接入(脚本或HTTP任务)

Agent接入后,您可以直接在SchedulerX控制台通过白屏化的方式编写定时任务、重跑任务、查看历史执行记录、查看运行日志等。本文介绍如何使用Agent(tar包或者镜像)将非Java应用接入SchedulerX。

前提条件

应用场景

Agent接入SchedulerX的主要应用场景如下:

  • 通过Shell脚本定时清理所有机器的日志或定时拉起某个服务。

  • 通过Python脚本定时清理数据库历史数据。

  • 通过HTTP接口定时扫描订单。

环境要求

运行环境要求为JRE 1.8及以上版本。

手动部署Agent

  1. 下载Agent,并解压缩。

    如果您的机器开通了公网IP,可以直接执行如下命令下载:

    说明

    X.X.X为版本号,您可以替换为自己需要的版本号,例如1.10.13。

    wget https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-X.X.X.tar

    版本

    下载地址

    版本说明

    Agent 1.11.5

    https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-1.11.5.tar

    问题修复:

    • 修复Netty和Logback的安全漏洞。

    • 修复K8s任务too old resource version问题。

    Agent 1.10.13

    https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-1.10.13.tar

    新增特性:

    • 支持一个机器同时部署多个Agent。

    • HTTP Agent任务支持Response超过1000字节。

    • 优化日志,减少历史日志存储。

    Agent 1.10.5

    https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-1.10.5.tar

    新增特性:

    • 支持优雅下线。

    • 日志服务支持应用分组隔离。

    Agent 1.9.8

    https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-1.9.8.tar

    新增特性:

    • 支持Agent模式的HTTP任务。

    • 支持脚本任务执行失败后,返回最后一行日志。

    • 支持K8s任务。

    Agent 1.7.10

    https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-1.7.10.tar.gz

    问题修复:

    • 修复秒级别任务运行缓慢的问题。

    • 修复日志服务可能导致OOM的问题。

    Agent 1.4.2

    https://schedulerx2.oss-cn-hangzhou.aliyuncs.com/agent/schedulerxAgent-1.4.2.tar.gz

    新增特性:支持日志服务。

    重要

    使用wget指令下载Agent,若连接网站超时,请开启公网IP或参见上传或下载文件(Linux)

  2. 进入schedulerxAgent/conf目录,配置agent.properties文件。

    配置信息如下:

    endpoint=addr-hz-internal.edas.aliyun.com
    namespace=fd2965c4-****-****-af52-bb62aa4*****
    groupId=hxm.test
    appKey=1234*****
    • Endpoint为终端地址,请参见Endpoint列表

    • namespace为命名空间ID,你可以在命名空间 页面获取。

    • 应用ID应用key为应用的唯一标识和账号,您可以在应用管理页面获取。

  3. 进入schedulerxAgent/bin目录,执行start.sh命令启动部署。

    说明

    如果要设置启动Agent的内存,可以执行start-200m.shstart-500m.shstart-1g.sh

    启动过程中,您可以根据需要执行以下操作:

    • 停止Agent命令:进入schedulerxAgent/bin目录,执行stop.sh

    • 查看日志:日志路径为${user.home}/logs/schedulerx/worker.log

      user.home可以通过执行ps aux | grep java命令查看。如果是admin用户启动的进程,日志路径为/home/admin/logs/schedulerx/worker.log;如果是root用户启动的进程,日志路径为/root/logs/schedulerx/worker.log

    回显信息包含Schedulerx Worker started时,表示部署成功。

    说明

    运行环境要求为 JDK 1.8 至 14 版本。若使用 JDK 版本超过 14,则需在 agent 安装目录的 schedulerxAgent/bin/start.sh 文件中去除-XX:+UseConcMarkSweepGC部分。

    image

通过Docker镜像部署Agent

  1. 根据您的网络环境和CPU架构选择镜像。

    网络

    x86_64

    arm64

    公网

    registry.cn-hangzhou.aliyuncs.com/schedulerx/agent:1.11.6-amd64

    registry.cn-hangzhou.aliyuncs.com/schedulerx/agent:1.11.6-arm64

    华东1(杭州)VPC

    registry-vpc.cn-hangzhou.aliyuncs.com/schedulerx/agent:1.11.6-amd64

    registry-vpc.cn-hangzhou.aliyuncs.com/schedulerx/agent:1.11.6-arm64

    其他地域VPC

    registry-vpc.{regionId}.aliyuncs.com/schedulerx/agent:1.11.6-amd64

    registry-vpc.{regionId}.aliyuncs.com/schedulerx/agent:1.11.6-arm64

  2. 部署Agent。

    参数说明:

    docker run  --env SCHEDULERX_ENDPOINT="addr-hz-internal.edas.aliyun.com" \
       --env SCHEDULERX_NAMESPACE="fd2965c4-****-****-af52-bb62aa4*****" \
       --env SCHEDULERX_GROUPID="hxm.test" \
       --env SCHEDULERX_APPKEY="1234*****" \
       -d {image id}
    • SCHEDULERX_ENDPOINT即Endpoint。

    • SCHEDULERX_NAMESPACE为命名空间ID,可以在控制台的命名空间 页面获取。

    • SCHEDULERX_GROUPID为应用ID,SCHEDULERX_APPKEY为应用Key,可以在控制台的应用管理 页面获取。

    启动部署任务后,您可以通过docker logs命令查看日志。