前后端分离已完成(
web-admin/+/api/v1)。旧的 goview HTML 路由在过渡期保留,新部署请走纯 API + 独立前端模式。详见 doc/API.md 与 web-admin/README.md。
Asgard是设计用于综合解决常驻进程应用、计划任务、定时任务的分布式作业管理系统。
go build -o Asgard .
./Asgard master -c conf
./Asgard agent -c conf
./Asgard web -c conf # 仅 JSON API,不再提供 HTML
cd web-admin
npm install
npm run build
产物 web-admin/dist/ 由 Nginx 托管。完整的 Nginx 示例见 deploy/nginx.conf。
也可以用 Docker 一键构建:
docker build -t asgard-web-admin web-admin/
/api/* → 后端 Asgard web(默认 :12345)
proxy_buffering off)+ 长超时(proxy_read_timeout 3600s)以支持 SSEtry_files ... /index.html)scripts/Asgard-{web,master,agent} 仍假设 WORKDIR/web/views/ 与 WORKDIR/web/assets/ 存在。 完成 Phase 5 后这些目录会被删除,请改用上面的纯 API + 独立前端模式。
启动为管理单机系统常驻进程应用守护服务,类似supervisor
查看单机常驻进程应用列表
查看单机常驻进程应用xxxxxx信息
启动为管理单机系统的计划任务守护服务,类似crontab
查看单机计划任务列表
查看单机计划任务xxxxxx信息
启动为web节点
启动为master节点
启动为agent节点
查看agent节点运行的常驻进程应用、计划任务、定时任务综合信息
运行scripts/Asgard.sql初始化mysql数据表。monitors数据表按月分表,格式"monitors_202006",需要提前创建。
初始登录名:admin,初始密码:123456
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/" #日志存放根目录