Giter Site home page Giter Site logo

asgard's Introduction

Asgard

简介

Asgard是设计用于综合解决常驻进程应用、计划任务、定时任务的分布式作业管理系统。

架构设计

架构设计图

  • Asgard系统由web节点、master节点、agent节点组成。
  • web节点主要功能包括实例管理、分组管理、作业配置、作业运行状态控制、作业运行状态查看、日志查询
  • master节点负责agent节点的状态监测,同时接收并转存agent节点上报的运行时数据
  • agent节点接收web节点的指令在相应的服务器中运作相关作业
  • master节点和agent节点之间通过grpc协议交换数据

Web界面预览

首页控制台

实例管理

任务管理

监控信息

指令作用

Asgard guard

启动为管理单机系统常驻进程应用守护服务,类似supervisor

Asgard guard status

查看单机常驻进程应用列表

Asgard guard show xxxxxx

查看单机常驻进程应用xxxxxx信息

Asgard cron

启动为管理单机系统的计划任务守护服务,类似crontab

Asgard cron status

查看单机计划任务列表

Asgard cron show xxxxxx

查看单机计划任务xxxxxx信息

Asgard web

启动为web节点

Asgard msater

启动为master节点

Asgard agent

启动为agent节点

Asgard agent status

查看agent节点运行的常驻进程应用、计划任务、定时任务综合信息

部署及配置说明

运行scripts/Asgard.sql初始化mysql数据表。monitors数据表按月分表,格式"monitors_202006",需要提前创建。

web节点、master节点、agent节点都需要一个名为app.yaml的配置文件。

默认读取运行目录下名为conf的目录,如果需要指向配置文件的目录可以在启动命令中通过conf参数指定。

启动web节点需要用到web目录中的assetsviews两部分静态资源

web节点配置项示例及说明

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节点配置项示例及说明

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节点配置项示例及说明

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节点配置项示例及说明

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节点配置项示例及说明

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/"                 #日志存放根目录

asgard's People

Contributors

dalonghahaha avatar shawnvan84 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.