Code Monkey home page Code Monkey logo

moon's Introduction

Moon 监控平台

始于prometheus,不止于prometheus

logo prometheus

License Release GitHub pull requests GitHub closed pull requests GitHub issues GitHub closed issues Stars Forks

1. 概述

在漫长黑夜中守护你的一轮明月

项目简介

Moon 是一款集成prometheus系列的监控管理工具,专为简化Prometheus监控系统的运维工作而设计。该工具提供了一站式的解决方案,能够集中管理和配置多个Prometheus实例及其相关的服务发现、规则集和警报通知。

UI展示

  • 系统大盘 系统大盘

  • 实时告警 实时告警

  • 告警策略 告警策略

  • 策略编辑 策略编辑

在线体验

系统架构

moon.svg

2. 快速开始

2.1 系统要求

  • 操作系统:Linux、macOS、Windows
  • Go语言环境:Go 1.20+
  • Docker (可选,用于快速部署)
  • K8s (暂时未尝试)
  • 环境依赖:
    • mysql数据库:8.0+(可选)
    • redis数据库(可选)
    • kafka消息队列(可选)

    注意:

    如果没有这些环境,可以直接进入`./deploy/rely`录下, 执行`docker-compose up -d`启动本地默认依赖, 该依赖包含了mysql,redis,kafka等,你可以选择屏蔽掉redis和kafka, 只启动mysql部分

2.2 安装部署

docker 部署

镜像仓库地址:https://hub.docker.com/repositories/aidemoonio

  • 拉取镜像
# agent
docker pull aidemoonio/moon-agent:latest
# server
docker pull aidemoonio/moon-server:latest
  • 启动服务
# server
docker run -d --name moon-server \
-p 8001:8000 \
-p 8888:8888 \
-p 8000:80 \
-v ./moon/server/db:/app/db \
-v ./moon/server/cache:/app/cache \
-v ./moon/server/log:/app/log \
aidemoonio/moon-server:latest 

# agent
docker run -d --name moon-agent \
-p 8002:8000 \
-v ./moon/agent/cache:/app/cache \
-v ./moon/agent/log:/app/log \
aidemoonio/moon-agent:latest
  • 访问服务

本地访问地址:http://localhost:8000/ 其他IP访问需要配置nginx,参考nginx

docker-compose 部署

    1. 使用默认配置部署
# docker-compose.yaml
version: "3.8"
services:
  moon-server:
    image: aidemoonio/moon-server:latest
    volumes:
      - "./moon/server/db:/app/db"
      - "./moon/server/cache:/app/cache"
      - "./moon/server/log:/app/log"
    ports:
      - "8000:80"
      - "8001:8000"
      - "8888:8888"
  moon-agent:
    image: aidemoonio/moon-agent:latest
    volumes:
      - "./moon/agent/cache:/app/cache"
      - "./moon/agent/log:/app/log"
    ports:
      - "8002:8000"
    depends_on:
      - moon-server
    1. 启动
docker-compose up -d
# 查看
docker-compose ps

k8s 部署

    1. 使用默认配置部署
    kubectl apply -f ./_output/yamls/moon.yaml
    1. 自定义部署,生成部署文件
    # 镜像需要更换成你自己的镜像
    make deploy-yaml
    kubectl apply -f ./_output/yamls/moon.yaml
    # or
    make deploy
  • 访问服务

服务端口通过NodePort暴露

本地访问moon-server所在的宿主机IP:http://宿主机IP:31008/

用户名:admin

密码: 123456

helm部署

参考/deploy/helm

3. 功能详解

3.1 系统管理

用户管理

  • 功能说明:

主要管理用户信息,包括新增、修改、删除等操作。该系统不提供用户注册功能,用户信息由管理员添加。

  • 注意事项:

角色管理

  • 功能说明:

主要管理角色信息,包括新增、修改、删除等操作。通过权限和角色绑定,实现权限控制,精确到接口粒度。 采用RBAC模式实现,具体请参见RBAC

  • 注意事项:

权限管理

  • 功能说明:

主要管理权限信息,包括新增、修改、删除等操作。这里维护系统全部需要权限控制的接口。系统新增接口, 需要再次录入到权限管理中。

字典管理

  • 功能说明:

主要管理字典信息,包括新增、修改、删除等操作。字典信息主要用于系统中需要使用到的枚举值,比如状态、类型、告警等级等。

3.2 告警配置

  • 功能说明:

主要维护告警规则组、告警规则,通过表单方式维护prometheus规则信息,并支持多数据源场景,我们在配置规则时候,可以选择不同数据源,编写不同的报警规则,完成告警规则配置。 同时,还支持配置报警页面,告警事件发生后,能够把相同类型的各种规则事件归类到同一个报警页面,帮助我们运维同学集中处理告警。

3.3 实时告警

  • 功能说明:

主要是展示产生的告警数据,并按照不同报警页面分类展示。每一条告警数据除了展示基本信息外, 还可以展示持续时常,支持告警静默、强制删除、告警升级等操作。

3.4 历史告警

  • 功能说明:

主要用于查询历史告警,提供统计数据大盘,为复盘提供数据支撑

3.5 告警通知

  • 功能说明:

主要提供报警组、报警hook等通信方式维护,为报警策略提供通知对象数据。

4. 功能TODO

5. 常见问题解答

6. 贡献者

这个项目的存在要感谢所有做出贡献的人。 [Contributors].

7. Star 历史

Star History Chart

  • 2024年4月12日 上午 10:44 start 破100 image

讨论

image

moon's People

Contributors

aide-cloud avatar sumengzs avatar tyvekzhang avatar mmungdong avatar godvme50 avatar links17 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.