Asgard是设计用于综合解决常驻进程应用、计划任务、定时任务的分布式作业管理系统。
- Asgard系统由web节点、master节点、agent节点组成。
- web节点主要功能包括实例管理、分组管理、作业配置、作业运行状态控制、作业运行状态查看、日志查询
- master节点负责agent节点的状态监测,同时接收并转存agent节点上报的运行时数据
- agent节点接收web节点的指令在相应的服务器中运作相关作业
- master节点和agent节点之间通过grpc协议交换数据
启动为管理单机系统常驻进程应用守护服务,类似supervisor
查看单机常驻进程应用列表
查看单机常驻进程应用xxxxxx信息
启动为管理单机系统的计划任务守护服务,类似crontab
查看单机计划任务列表
查看单机计划任务xxxxxx信息
启动为web节点
启动为master节点
启动为agent节点
查看agent节点运行的常驻进程应用、计划任务、定时任务综合信息
运行scripts/Asgard.sql初始化mysql数据表。monitors数据表按月分表,格式"monitors_202006",需要提前创建。
web节点、master节点、agent节点都需要一个名为app.yaml的配置文件。
默认读取运行目录下名为conf的目录,如果需要指向配置文件的目录可以在启动命令中通过conf参数指定。
启动web节点需要用到web目录中的assets和views两部分静态资源
web:
port: 12345 #web节点监听端口
domain: "asgard.dalong.me" #web节点域名
cookie_salt: "sdswqeqx" #web节点身份验证加密值(必须为8位字符串)
component:
db:
asgard: #mysql数据库配置
host: "127.0.0.1" #mysql数据库地址
port: 3306 #mysql数据库端口
user: "xxxxxx" #mysql数据库用户名
password: "xxxxxx" #mysql数据库密码
database: "Asgard" #mysql数据库库名
redis: #redis配置
asgard:
host: "127.0.0.1" #redis地址
port: 6379 #redis端口号
password: "" #redis密码
db: 0 #redis库索引
log: #日志配置
console: true #是否输出到控制台
level: "debug" #日志级别
dir: "runtime/" #日志存放根目录
master:
port: 9527 #master节点监听端口
component:
db:
asgard: #mysql数据库配置
host: "127.0.0.1" #mysql数据库地址
port: 3306 #mysql数据库端口
user: "xxxxxx" #mysql数据库用户名
password: "xxxxxx" #mysql数据库密码
database: "Asgard" #mysql数据库库名
redis: #redis配置
asgard:
host: "127.0.0.1" #redis地址
port: 6379 #redis端口号
password: "" #redis密码
db: 0 #redis库索引
log: #日志配置
console: true #是否输出到控制台
level: "debug" #日志级别
dir: "runtime/" #日志存放根目录
agent:
moniter: 10 #监控指标上报周期,单位秒
master:
ip: "127.0.0.1" #master节点地址
port: 9527 #master节点端口
rpc:
ip: "127.0.0.1" #agent节点地址
port: 27149 #agent节点端口
component:
log: #日志配置
console: true #是否输出到控制台
level: "debug" #日志级别
dir: "runtime/" #日志存放根目录
master:
port: 9527 #master节点监听端口
cluster: true #标记启用集群模式
cluster_registry: #etcd集群节点列表
- "127.0.0.1:2379"
cluster_name: "asgard" #集群名称
cluster_id: "master-1" #集群节点ID
cluster_ip: "127.0.0.1" #集群节点IP
component:
db:
asgard: #mysql数据库配置
host: "127.0.0.1" #mysql数据库地址
port: 3306 #mysql数据库端口
user: "xxxxxx" #mysql数据库用户名
password: "xxxxxx" #mysql数据库密码
database: "Asgard" #mysql数据库库名
redis: #redis配置
asgard:
host: "127.0.0.1" #redis地址
port: 6379 #redis端口号
password: "" #redis密码
db: 0 #redis库索引
log: #日志配置
console: true #是否输出到控制台
level: "debug" #日志级别
dir: "runtime/" #日志存放根目录
agent:
moniter: 10 #监控指标上报周期,单位秒
master:
cluster: true #标记启用集群模式
cluster_registry: #etcd集群节点列表
- "127.0.0.1:2379"
cluster_name: "asgard" #集群名称
rpc:
ip: "127.0.0.1" #agent节点地址
port: 27149 #agent节点端口
component:
log: #日志配置
console: true #是否输出到控制台
level: "debug" #日志级别
dir: "runtime/" #日志存放根目录