8
社区成员




产品版本: v0.1.0
项目上线时间:2021年10月
功能描述:
仪表盘主要功能是可以快速查看当前环境下所有主机&服务的状态信息
详细信息:
功能描述:
展示当前环境下的主机信息,包括主机的ip地址、实例名称、cpu&内存&分区使用率、维护模式、主机agent状态、监控agent状态 、包含服务数、告警数量信息,可通过IP地址进行筛选。
列表信息说明:
IP地址:管理主机所需IP地址
实例名称: 主机的别名
CPU&内存&分区使用率: 通过监控获取的主机实时状态信息
维护模式: 显示主机是否处于维护模式,平台会抑制维护模式下的主机告警
主机Agent & 监控Agent : Agent状态展示
服务个数: 统计部署到该主机的服务总量
告警总数: 统计该主机触发告警的总数
功能描述:
输入主机信息后,进行主机纳管,添加成功后的主机会自动下发Agent对主机进行管理与监控
表单信息说明:
实例名称: 在平台显示的名称,可帮助用户更直观的了解主机作用
系统平台: 主要作用为区分纳管主机的系统平台
数据分区: 指定数据分区后,平台会自动对该分区进行监控,在部署应用服务的时候,会默认安装到该分区中
IP地址&端口: 管理该主机的IP地址和端口
用户名&密码: 管理该主机的用户名&密码
功能描述:
当主机信息有变更时,可以通过修改主机来更新纳管中的主机信息,当前版本IP地址不可修改
功能描述:
适用于当需要同时纳管多台主机时的快捷操作,用户可以下载“主机模板”文件,将待纳管主机信息按照模板说明填写后上传
使用说明:
不支持在 Docs 外粘贴 block
功能描述:
用户可以查看主机详细配置信息、状态信息、部署组件信息、主机历史记录等
功能描述:
当主机由于某些原因不需要接收告警时,可以将主机进入维护模式,平台会对处于维护模式的主机进行告警抑制
功能描述:
主机Agent 可能存在“假死”状态,用户可以通过“重启主机Agent”按钮 进行将Agent执行重启操作
功能描述:
监控Agent 可能存在“假死”状态,用户可以通过“重启监控Agent”按钮 进行将Agent执行重启操作
服务的发布方式分为前台上传和扫描服务端
4.2.1、前台上传
点击“发布”按钮,显示上传页面,按照步骤进行发布操作
无法复制加载中的内容
上传文件
安装包校验中
校验通过
部分校验通过
全部校验失败
发布中
发布完成
4.2.2、扫描服务端
将待发布的服务包文件通过命令等方式传输到服务器指定目录后(omp/package_hub/back_end_verified),页面点击“扫描服务端”按钮,进行发布操作,发布过程中,平台会扫描目录下所有文件,将符合规则的文件进行校验,校验通过后会自动发布
发布包校验
校验成功
校验失败
发布成功
4.3.1、发布基础组建规范
4.3.1.1、目录规范
以MySQL服务为例,需将涉及到的文件统一放在 mysql目录下,目录名称与该服务名称(mysql)保持一致,目录中需要提供与该目录名称一致的配置文件(如:mysql.yaml)、产品图标(如:mysql.svg) 和其他所需文件(如安装脚本等)
目录示例:
$ tree ./mysql -L 2
./mysql # 目录名称,请与组件名称一致
├── mysql.svg # 平台展示组件图标,请使用 “组件名称.svg ” 命名,与目录名称保持一致
├── mysql.yaml # 组件配置文件, 记录该组件安装、升级等所需信息, 请使用 “组件名称.yaml” 命名,与目录名称保持一致
└── scripts # 组件的安装、启动等控制脚本,该脚本在安装时会调用
│ ├── init.py # 初始化脚本
│ ├── install.py # 组件安装脚本
│ ├── mysql # 组件启动、停止控制脚本,建议与服务名称一致
│ ├── mysql_backup.sh # 其他动作脚本,如备份等
备注:
4.3.1.2、压缩包命名规范
请使用 {name}-{version}-{others}-{package_md5}}.tar.gz
格式进行打包命名
例如:mysql-5.7.31-beta-8e955b24fefe7061eb79cfc61a9a02a1.tar.gz
$ tar czf mysql-5.7.31.tar.gz mysql
$ md5sum mysql-5.7.31.tar.gz
8e955b24fefe7061eb79cfc61a9a02a1
$ mv mysql-5.7.31.tar.gz mysql-5.7.31-8e955b24fefe7061eb79cfc61a9a02a1.tar.gz
4.3.1.3、配置文件说明
配置文件作用为记录该安装包在安装、升级、管理所需的信息数据,发布安装包时需按照规则进行编写
以mysql服务为例:
# 类型定义,发布基础组件时 ,指定类型为 component (类型:string)
kind: component
# 组件在平台显示的名称,请与组件目录名称保持一致,建议字符:英文、数字、_ (类型:string)
name: mysql
# 上传后显示的组件版本,建议字符: 数字、字母、_ 、. (类型:string)
version: 5.7.31
# 组件描述信息,建议长度256字符之内,请针对组件书写贴切的描述文字 (类型:string)
description: "MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。"
# 组件所属标签,请针对组件功能设置准确标签,平台会针对该标签对组件进行分类,(类型:list[string,string...])
labels:
- 数据库
# 指定该服务安装后是否需要启动 (类型:boolean)
auto_launch: false
# 指定组件是否为基础环境组件,如 jdk, 该类组件以基础环境方式安装 (类型:boolean)
base_env: flase
# 定义组件所需端口号,如不启用端口,可留空 (类型:list[map,map...])
ports:
# 端口描述名称,用户在安装时会以该名称显示表单内容(类型:string)
- name: 服务端口
# 端口协议,支持 TCP/UDP
protocol: TCP
# 端口英文描述名称,该key会传入到安装脚本中 (类型: string)支持(英文、数字、_)
key: service_port # 注:service_port 为保留关键词,表示 为 提供服务的端口
# 组件的默认端口号,在安装时,会以该值填入表单中(类型: int)
default: 3306
# 组件监控相关配置,定义该组件在安装后如何监控 ,如果不需要监控可留空 (类型: map)
monitor:
# 监控进程名称,如“mysqld”,平台在发现mysqld进程不存在后,会发送告警提醒 ,不需要监控可留空(类型:string)
process_name: "mysqld"
# 监控端口号,请根据 ports 中的变量设置,不需要监控可留空 (类型: {string})
metric_port: {service_port}
---
# 设置集群模式方式,如果组件需要支持多种方式安装,可以在该字段中定义,如只支持单个实例安装,可留空(类型:map[list[map,map...]])
deploy:
# 定义单实例模式安装 (类型:list[map,map...])
single:
# 部署方式的中文描述名称,该值会在表单中选择集群模式时显示 (类型:string)
- name: 单实例
# 该模式的key值 (类型:string)
key: single
# 定义多种集群模式安装 (类型:list[map,map...])
complex:
# 部署方式的中文描述名称,该值会在表单中选择集群模式时显示 (类型:string)
- name: 主从模式
# 该模式的key值 (类型:string)
key: master_slave
# 集群节点设置 (类型: map)
nodes:
# 初始节点数量 (类型:int)
start: 2
# 增加节点步长 (类型:int)
step: 1
# 定义该组件安装所需依赖组件名称与版本,如不需其他组件依赖,可留空 (类型: list[map,map..])
#例:
#dependencies:
# - name: jdk
# version: 8u223
dependencies:
# 该组件所需最小资源需求 (类型:map)
resources:
# cpu最小需求 ,1000m 表示 1核 (类型:string)
cpu: 1000m
# 内存最小需求, 500m 表示 500兆内存 (类型:string)
memory: 500m
---
# 定义安装组件时所需参数,该参数会传入到 安装脚本中 (类型:list[map,map...])
install:
# 传入参数中文描述名称,该名称会在用户安装组件时显示到表单中 (类型: string)
- name: "安装目录"
# 传入参数key值,会将该key与值 传入到安装脚本中 (类型:string)
key: base_dir
# 上面key默认值 (类型: stirng)
default: "{data_path}/mysql" # 注: {data_path} 为主机数据目录占位符,请勿使用其他代替
- name: "数据目录"
key: data_dir
default: "{data_path}/mysql/data"
- name: "日志目录"
key: log_dir
default: "{data_path}/mysql/log"
- name: "用户名"
key: username
default: root
- name: "密码"
key: password
default: "123456"
# 程序控制脚本与服务目录的相对路径 (类型:map)
control:
# 启动脚本路径,如没有可留空 (类型:string)
start: "./scripts/mysql start"
# 停止脚本路径,如没有可留空 (类型:stirng)
stop: "./scripts/mysql stop"
# 重启脚本路径,如没有可留空 (类型:stirng)
restart: "./scripts/mysql restart"
# 重载脚本路径,如没有可留空 (类型:stirng)
reload:
# 安装脚本路径,必填 (类型:stirng)
install: "./scripts/install.py"
# 初始化脚本路径,必填 (类型:stirng)
init: "./scripts/init.py"
4.3.1.4、安装脚本编写说明
在安装包成功发布后,可通过平台进行安装,平台会调用配置文件中指定的安装脚本进行程序安装,平台将会把安装脚本所需参数以如下形式进行传参,需要脚本在编写时对此进行支持。
传参示例:
$ python ./scripts/install.py --local_ip 192.168.1.2 --data_json /data/LKJD82JDL.json
其中 local_ip 为安装主机的IP地址,data_json为安装所需数据文件路径
安装脚本需要根据data_json内数据进行组件的安装、替换其他文件内的占位符
data.json示例:
[
{
"name":"nacos",
"ip":"1.1.1.1",
"version":"2.0.1",
"ports":[
{
"key":"service_port",
"name":"xxx端口",
"default":8001
}
],
"install_arg":[
{
"key":"base_dir",
"name":"服务目录",
"default":"/data/app/nacos"
},
{
"key":"data_dir",
"name":"数据目录",
"default":"/data/appData/nacos"
},
{
"key":"username",
"name":"用户名",
"default":"admin"
},
{
"key":"password",
"name":"密码",
"default":"admin123"
}
],
"deploy_mode":{
},
"cluster_name":"",
"instance_name":"nacos-1",
"dependence":[
{
"name":"mysql",
"instance_name":"mysql-100",
"cluster_name":"mysql-JDLK3KA"
}
]
},
{
"name":"mysql",
"ip":"192.1.2.3",
"version":"5.0.1",
"ports":[
{
"key":"service_port",
"name":"服务端口",
"default":10601
}
],
"install_arg":[
{
"key":"base_dir",
"name":"服务目录",
"default":"/data/app/mysql"
},
{
"key":"data_dir",
"name":"数据目录",
"default":"/data/appData/mysql"
},
{
"key":"data_dir",
"name":"日志目录",
"default":"/data/appData/log"
},
{
"key":"username",
"name":"用户名",
"default":"root"
},
{
"key":"password",
"name":"密码",
"default":"root123"
}
],
"deploy_mode":{
},
"cluster_name":"",
"instance_name":"mysql-100",
"dependence":[
]
}
]
4.3.2、发布应用服务规范
4.3.2.1、目录规范
在发布类别为应用服务的产品时,需要将产品名称、所属产品的服务名称、版本号做到全局统一
目录示例:
发布产品名称为“omp",其中包含 3个服务为“omp_server","omp_web","omp_component" 的目录结构如下
$ tree omp
omp
├── omp.svg # 定义产品图标,会在平台中展示,如果不创建则平台会展示缺省图标
├── omp # 定义产品下服务配置文件目录,将所需服务的配置文件存在该目录
│ ├── omp_server.yaml # 服务 omp_server 配置文件,文件名需要与服务名称一致
│ ├── omp_web.yaml # 服务 omp_web 配置文件,文件名需要与服务名称一致
│ └── omp_component.yaml # 服务 omp_agent 配置文件,文件名需要与服务名称一致
├── omp_server-0.1.0-5d1ac8ce87323fc399506d1335ae5c98.tar.gz # 服务 omp_server 压缩包,以“-” 为分隔符,第一个为服务名称,需要与服务名称一致,格式为 {service_name}-{service_version}-{others}-{package_md5}.tar.gz
├── omp_web-0.1.0-5d1ac8ce87323fc399506d1335ae5c98.tar.gz # 服务 omp_web 压缩包
├── omp_component-0.1.0-5d1ac8ce87323fc399506d1335ae5c98.tar.gz # 服务 omp_agent 压缩包
└── omp.yaml # 定义产品配置文件,文件名需要与产品名称一致
其中服务目录以omp_server为例:
$ tree omp_server
omp_server # 服务包解压后目录名称,与服务名一致
├── bin # 服务控制脚本目录,启动、停止等
│ └── omp_server # 服务控制脚本,与服务名称一致
├── omp_server.yaml # 服务配置文件,与产品包中保持一致
└── scripts # 安装、升级脚本目录
├── init.py # 初始化脚本
├── install.py # 安装脚本
└── update.py # 升级脚本
4.3.2.2、压缩包命名规范
请使用 {name}-{version}-{others}-{package_md5}}.tar.gz
格式进行打包命名
例如:omp-0.1.0-8e955b24fefe7061eb79cfc61a9a02a1.tar.gz
4.3.2.3、配置文件说明
发布类别为应用服务的产品时,需分别对 产品配置文件和产品下服务配置文件进行配置
# 类型定义,发布应用服务时,产品指定类型为 product (类型:string)
kind: product
# 定义产品名称,此名称需要与产品目录名称、产品配置文件名称保持一致,建议字符:英文、数字、_ (类型: string)
name: omp
# 上传后显示的产品版本,建议字符: 数字、字母、_ 、. (类型:string)
version:
# 产品描述信息,建议长度256字符之内,请针对产品书写贴切的描述文字 (类型:string)
description: "运维管理平台(OperationManagementPlatform,以下简称OMP)以管理服务为中心,为服务的安装、管理提供便捷可靠的方式。"
# 组件所属标签,请针对组件功能设置准确标签,平台会针对该标签对组件进行分类,(类型:list[string,string...])
labels:
- omp
# 定义该产品安装所需依赖产品名称与版本,如不需其他产品依赖,可留空 (类型: list[map,map..])
dependencies:
# 定义该产品下包含的服务信息,请确保列表中的服务包都包含在目录中,并且名称保持一致 (类型: list[map,map...])
service:
# 包含服务名称,请与服务包名保持一致 (类型: string)
- name: omp_server
# 服务版本,请与服务包版本一致 (类型:string)
version: 0.1.0
- name: omp_web
version: 0.1.0
- name: omp_component
version: 0.1.0
# 类型定义,发布应用服务时,产品包含的服务指定类型为 service (类型:string)
kind: service
# 服务在平台显示的名称,请与服务目录名称保持一致,建议字符:英文、数字、_ (类型:string)
name: omp_server
# 上传后显示的服务版本,建议字符: 数字、字母、_ 、. (类型:string)
version: 0.1.0
# 服务描述信息,建议长度256字符之内,请针对组件书写贴切的描述文字 (类型:string)
description: "服务描述内容..."
# 指定该服务安装后是否需要启动 (类型:boolean)
auto_launch: true
# 指定服务是否为基础环境组件,如 jdk, 该类组件以基础环境方式安装 (类型:boolean)
base_env: flase
# 定义服务所需端口号,如不启用端口,可留空 (类型:list[map,map...])
ports:
# 端口描述名称,用户在安装时会以该名称显示表单内容(类型:string)
- name: 服务端口
# 端口协议,支持 TCP/UDP
protocol: TCP
# 端口英文描述名称,该key会传入到安装脚本中 (类型: string)支持(英文、数字、_)
key: service_port # 注:service_port 为保留关键词,表示 为 提供服务的端口
# 组件的默认端口号,在安装时,会以该值填入表单中(类型: int)
default: 19001
# 服务监控相关配置,定义该服务在安装后如何监控 ,如果不需要监控可留空 (类型: map)
monitor:
# 监控进程名称,如“service_a”,平台在发现service_a进程不存在后,会发送告警提醒,不需要监控可留空(类型:string)
process_name: ""
# 监控端口号,请根据 ports 中的变量设置,不需要监控可留空 (类型: {string})
metric_port: {service_port}
---
# 定义该组件安装所需依赖组件名称与版本,如不需其他组件依赖,可留空 (类型: list[map,map..])
dependencies:
- name: mysql
version: 5.7.31
- name: redis
version: 5.0.1
- name: python
version: 3.8.3
# 该组件所需最小资源需求 (类型:map)
resources:
# cpu最小需求 ,1000m 表示 1核 (类型:string)
cpu: 1000m
# 内存最小需求, 500m 表示 500兆内存 (类型:string)
memory: 500m
---
# 定义安装组件时所需参数,该参数会传入到 安装脚本中 (类型:list[map,map...])
install:
# 传入参数中文描述名称,该名称会在用户安装组件时显示到表单中 (类型: string)
- name: "安装目录"
# 传入参数key值,会将该key与值 传入到安装脚本中 (类型:string)
key: base_dir
# 上面key默认值 (类型: stirng)
default: "{data_path}/omp_server" # 注: {data_path} 为主机数据目录占位符,请勿使用其他代替
# - name: "JVM设置"
# key: jvm
# default: "-XX:MaxPermSize=512m -Djava.awt.headless=true"
# 程序控制脚本与服务目录的相对路径 (类型:map)
control:
# 启动脚本路径,如没有可留空,脚本名称建议与服务名称一致 (类型:string)
start: "./bin/omp_server start"
# 停止脚本路径,如没有可留空,脚本名称建议与服务名称一致 (类型:stirng)
stop: "./bin/omp_server stop"
# 重启脚本路径,如没有可留空,脚本名称建议与服务名称一致 (类型:stirng)
restart: "./bin/omp_server restart"
# 重载脚本路径,如没有可留空 (类型:stirng)
reload:
# 安装脚本路径,必填 (类型:stirng)
install: "./scripts/install.py"
# 初始化脚本路径,必填 (类型:stirng)
init: "./scripts/init.py"
4.3.2.4、 安装脚本编写说明
应用服务分类的产品主要由各个服务的安装为主,安装服务逻辑与组建安装相同,平台会通过传参的方式将ip信息、json数据传给安装脚本,安装脚本根据数据进行安装操作。
功能描述:
按“基础组件”、“应用服务”两个分类来展示发布成功的产品安装包,可以根据安装包自定义标签进行筛选过滤。
功能描述:
展示产品详细信息,包括名称、版本、描述、发布时间、产品包md5、发布人、依赖关系 等信息,可以通过版本切换查看不同版本的信息。
基础组件详情
应用服务详情
功能描述:
用户可以通过应用商店上已发布的产品进行安装,进入安装流程后平台会根据安装包中配置文件渲染出相应的安装内容,在填写完安装信息后平台会执行安装动作
版本、集群模式 选择
部署信息选择,根据配置文件生成表单内容
执行安装
5.2.1、服务列表展示
功能描述:
展示当前环境下的安装的服务信息,包括实例名称、主机的ip地址、端口、功能模块、服务类型、服务名称、版本、状态、告警总数、集群模式、监控、日志等信息,可通过IP地址或实例名称进行筛选。
列表信息说明:
实例名称: 安装服务的实例名称,用来区分多个相同服务
IP地址:管理主机所需IP地址
端口:服务占用端口号
功能模块:根据服务分类显示所属功能模块
服务类型:用来区分服务类型,分为 基础组件、应用服务
服务名称:所安装服务的名称
版本:所安装服务的版本
状态:安装服务的状态,分为 安装中、安装失败、重启中、启动失败、启动中、停止、正常
告警总数:展示该服务的告警数量
集群模式:显示该服务部署的模式是否为集群模式
监控:可以跳转到服务监控页面
日志:可以跳转到服务日志页面
启动:对服务发送启动指令
停止:对服务发送停止指令
重启:对服务发送重启指令
5.2.2、服务详情
功能描述:
用户可以查看服务详细配置信息、安装信息、服务历史记录
功能描述:
实时显示当前环境下告警的主机、服务,包括实例名称、ip地址、告警级别、告警类型、告警描述信息、触发告警的时间,可通过IP地址、实例名称进行筛选。
列表信息说明:
实例名称: 展示主机、服务实例名称
IP地址: 触发告警的IP地址信息
级别:告警的级别,分为 警告/严重
告警类型:触发告警的类型,分为:主机、基础组件、应用服务、数据库
告警描述:显示告警详细描述信息
告警时间:显示出发告警的时间
功能描述:
显示历史告警记录列表,可通过时间、IP地址、实例名称、级别、类型等条件进行搜索记录,点击“监控”按钮 或 选择“批量已读” 可更改记录状态
列表信息说明:
实例名称: 展示主机、服务实例名称
IP地址: 触发告警的IP地址信息
级别: 告警的级别,分为 警告/严重
告警类型:触发告警的类型,分为:主机、基础组件、应用服务、数据库
告警描述:显示告警详细描述信息
告警时间:显示出发告警的时间
更新时间:最近一次告警的时间
功能描述:
用户可以自定义监控平台的配置信息,当用户环境中存在或需要更改监控平台信息时,可以通过修改该表单更新监控平台信息
表单信息说明:
Prometheus地址: OMP平台对接的Prometheus地址和端口信息
Grafana地址: OMP平台对接的Grafana地址和端口信息
Alert Manager地址: OMP平台对接的Alert Manager地址和端口信息
功能描述:
对选择主机进行主机巡检操作,巡检结束后会生成该条巡检报告,报告名称为 “主机巡检+日期+编号”,
巡检内容包括系统配置信息、CPU&内存&分区 使用率、负载信息等信息
功能描述:
可对通过平台安装的组件进行巡检操作,巡检结束后会生成该条巡检报告,报告名称为“组件巡检+日期+编号”,巡检内容为该组件的监控信息。
功能描述:
对所有纳管主机、服务进行深度巡检,巡检结束后会生成该条巡检报告,报告名称为“深度巡检+日期+编号”
功能描述:
展示历史巡检记录信息,包括序列、报告名称、报告类型、巡检结果、执行方式、巡检时间、巡检用时等信息,可通过IP地址进行列表筛选,点击“导出”按钮可以导出详细巡检报告。
列表信息说明:
报告名称:由巡检类型+时间+编号组成
报告类型:报告的分类,可分为“深度分析”、“主机巡检”、“组件巡检”
巡检结果:展示巡检报告状态,分为 “进行中” 、“成功”、“失败”
执行方式:展示该条询价报告的触发方式,分为“手动”、“定时”
巡检时间:触发该条巡检的时间
巡检用时:该条巡检总用时时间
导出: 导出该条巡检报告,点击后自动下载
功能描述:
通过巡检策略,可以设置定时巡检计划,对纳管环境进行自动周期性巡检操作
功能描述:
展示平台用户列表,可通过用户名进行列表筛选,点击修改密码按钮进行密码修改
功能描述:
用户可以设置全局维护模式,在全局维护模式下,平台将会抑制所有类型的告警信息