[2025-02-25] 添加学习平台接入指南
All checks were successful
Publish to Confluence / confluence (push) Successful in 45s

This commit is contained in:
liuxiaohua 2025-02-25 16:44:28 +08:00
parent d81c3784da
commit 903238e851
7 changed files with 1029 additions and 4 deletions

View File

@ -0,0 +1,511 @@
<think>
好的,我现在要帮用户做一个两个月的整体规划,并推荐开源项目和实现步骤。用户的目标列表挺多的,我得先仔细理解每个需求,然后看看哪些开源项目可以应用,再合理安排时间。
首先用户的目标主要是围绕内部效能平台的整合互通包括项目管理、代码分支管理、测试平台、培训系统、CI/CD、运维管理、监控告警、性能测试、泳道管理、工时计算和WhatsApp对接。这些都是比较常见的DevOps和内部工具链的需求。
接下来我需要考虑每个目标对应的开源项目。比如GitLab和PM系统的整合可能需要用GitLab的API或者插件。精准测试平台可能用Jacoco或者SonarQube。持续集成方面Jenkins或GitLab CI都是不错的选择。运维管理可能需要结合Ansible和Prometheus。监控告警的话Prometheus和Grafana组合很常见。性能测试工具如JMeter或Gatling。泳道管理可能需要用Kubernetes的命名空间或者Istio。工时计算可能需要通过企微的API来对接。WhatsApp对接可能需要调研Twilio或其他API服务。
然后要安排时间两个月的话分成八个周比较合理。需要先处理优先级高的比如打通PM和GitLab因为代码分支混乱可能影响当前开发流程。然后是精准测试和CI/CD这些能快速提升质量。接着是监控和运维平台确保系统稳定。最后是培训平台和泳道管理以及WhatsApp的调研。
还要考虑各个目标之间的依赖关系。例如,持续集成和自动化测试可能需要先有精准测试平台。运维管理平台可能需要监控告警的支持。所以时间安排上要前后衔接。
实现步骤方面,每个目标可能需要先技术调研,选择合适开源工具,然后开发或集成,测试,最后上线。同时要注意文档和培训,确保团队能够顺利使用新工具。
需要提醒用户注意的点开源项目的社区支持、与现有系统的兼容性、数据迁移和安全性以及培训的重要性。另外部分项目可能需要定制开发比如PM系统对接企微请假消息可能需要开发中间件。
最后,检查是否有遗漏的目标,确保所有项目都被覆盖,时间安排合理,没有冲突。推荐的开源项目要成熟、活跃,方便后续维护。
</think>
以下是为期两个月的整体规划及开源项目推荐,结合目标优先级和技术可行性进行编排:
---
### **第一阶段基础能力搭建第1-3周**
**目标1PM系统与GitLab集成**
- **推荐方案**GitLab API + 自研中间件
- **步骤**
1. 使用GitLab API获取分支/提交信息
2. 开发关联模块需求ID与分支名规范绑定
3. 在GitLab MR时校验需求编号匹配性
- **开源工具**
- [GitLab4J](https://github.com/gitlab4j/gitlab4j-api)Java API客户端
- [Jira Software](https://www.atlassian.com/software/jira)若PM系统非自研可集成
**目标2精准测试平台**
- **推荐方案**JaCoCo + SonarQube
- **步骤**
1. 集成JaCoCo到Maven/Gradle构建流程
2. 配置SonarQube质量门禁80%覆盖率阈值)
3. 开发提测拦截插件对接CI系统
- **开源工具**
- [JaCoCo](https://www.jacoco.org/jacoco/)
- [SonarQube](https://www.sonarsource.com/products/sonarqube/)
---
### **第二阶段自动化体系构建第4-6周**
**目标3持续集成/自动化测试**
- **推荐方案**Jenkins Pipeline + TestNG
- **步骤**
1. 搭建Jenkins多节点执行环境
2. 编写自动化测试用例(接口/单元测试)
3. 配置Git Webhook触发测试任务
- **开源工具**
- [Jenkins](https://www.jenkins.io/)
- [Robot Framework](https://robotframework.org/)(关键字驱动测试)
**目标4监控告警平台**
- **推荐方案**Prometheus + AlertManager
- **步骤**
1. 部署Prometheus采集各服务指标
2. 配置Grafana展示核心接口大盘
3. 集成企业微信告警通道
- **开源工具**
- [Prometheus](https://prometheus.io/)
- [Grafana](https://grafana.com/)
---
### **第三阶段进阶能力建设第7-8周**
**目标5运维管理平台**
- **推荐方案**Ansible + Terraform
- **步骤**
1. 使用Ansible实现主机批量管理
2. 开发资源绑定前端界面Vue + Spring Boot
3. 集成CMDB数据同步
- **开源工具**
- [Ansible](https://www.ansible.com/)
- [OpenStack Horizon](https://docs.openstack.org/horizon/latest/)可定制UI
**目标6泳道管理**
- **推荐方案**Kubernetes命名空间隔离
- **步骤**
1. 搭建多套测试环境基于K8s Namespace
2. 开发流量路由控制模块
3. 集成到研发发布流程
- **开源工具**
- [Istio](https://istio.io/)(服务网格)
- [Apollo](https://www.apolloconfig.com/)(配置中心)
---
### **其他目标快速实现方案**
| 目标 | 推荐方案 | 关键步骤 |
|----------------------|-----------------------------------|----------------------------------------|
| 内训平台 | Moodle + 角色权限插件 | 对接LDAP/OA系统实现自动分组 |
| 性能压测工具 | JMeter + InfluxDB可视化 | 编写压测脚本模板库 |
| PM系统对接企微请假 | 企微API + 自研工时计算引擎 | 开发消息订阅服务和请假规则引擎 |
| WhatsApp对接调研 | Twilio API | 验证消息发送/接收API可行性 |
---
### **风险控制建议**
1. **渐进式交付**每两周输出可演示成果如先用Jenkins替代部分手工操作
2. **技术债务管理**:优先使用成熟开源方案,避免重复造轮子
3. **团队协作**建立专项Wiki文档推荐使用[BookStack](https://www.bookstackapp.com/)
---
### **最终交付物清单**
1. 各系统集成API文档
2. 平台操作手册(含故障处理指南)
3. 核心模块的自动化测试用例集
4. 性能压测基准报告
可根据实际资源情况调整优先级,建议先从`PM-GitLab整合``精准测试`入手,快速体现效能提升效果。
-----------------
<think>
好的,我需要帮助用户找到适合的开源监控管理低代码平台,满足他们对服务器宿主机、虚拟机的管控需求,同时能够将产品线/应用与服务器资源绑定并提供可视化和监控告警功能。首先我需要回忆一下有哪些开源工具常用于监控和资源管理。Prometheus和Grafana是常见的监控组合但可能不够低代码。Zabbix也是一个强大的监控工具但配置相对复杂。
用户提到需要低代码平台可能希望尽量减少编码工作所以可能需要更用户友好或预配置的系统。Rancher主要用于容器管理但可能也适合虚拟机管理。Netdata提供实时监控但需要集成其他工具进行告警和资源绑定。Check MK或许也是一个选项不过需要确认其低代码特性。
接下来要考虑资源绑定和可视化可能需要一个资产管理模块或CMDB集成。例如Zabbix可以通过自定义模板和资产管理系统来关联产品线。Foreman是一个基础设施管理工具支持物理机和虚拟机可能适合资源管控。CloudExplorer Lite是京东开源的但可能不太常见需要验证其功能。
另外告警配置需要灵活能够集成到现有系统如邮件、企业微信等。Prometheus Alertmanager处理告警Grafana做可视化可能需组合使用。低代码方面是否有现成的解决方案或者需要组合多个工具例如使用Netdata进行监控Grafana做面板再结合Zabbix的资产管理功能。
需要确保推荐的平台能够满足用户的所有需求服务器管控、资源绑定、可视化、监控告警并且是低代码或易配置的。可能需要综合几个工具或者推荐一个全栈解决方案。例如Zabbix加上Grafana或者Foreman与Prometheus集成。此外Check MK的All-in-One设计可能适合但需确认其资源绑定能力。
还要考虑开源项目的活跃度和社区支持,确保长期维护。最后,可能需要分层次推荐,优先推荐最符合需求的,然后提供其他选项供用户选择。确保每个推荐的工具都有对应的功能点覆盖,并简要说明实施步骤,如部署、配置资产关联、设置告警规则等。
</think>
以下是符合需求的低代码/开源监控管理平台推荐,根据成熟度、易用性和扩展性排序:
---
### 1. **Zabbix + NetBox 组合方案**
**核心能力**
- ✅ 服务器/虚拟机全生命周期管理
- ✅ 自动发现与CMDB资源绑定
- ✅ 自定义监控模板与拓扑可视化
- ✅ 多级告警路由(邮件/企微/钉钉)
**推荐理由**
- **Zabbix**行业级监控工具支持SNMP/IPMI/Agent多种采集方式
- **NetBox**开源CMDB可定义产品线与资源关联关系
- **低代码配置**通过Web界面完成90%配置
**实施步骤**
1. 部署NetBox建立产品-服务器映射关系
2. Zabbix对接NetBox API自动同步资产
3. 使用Zabbix Grafana插件生成资源拓扑图
4. 配置阈值告警规则
**开源地址**
- Zabbix[https://www.zabbix.com/](https://www.zabbix.com/)
- NetBox[https://github.com/netbox-community/netbox](https://github.com/netbox-community/netbox)
---
### 2. **Check MK Raw Edition原OMD**
**核心能力**
- ✅ 一体化监控+资产管理
- ✅ 自动生成服务依赖拓扑
- ✅ 内置2000+监控插件
- ✅ 可视化规则配置界面
**优势**
- 单机部署即可管理10,000+节点
- 内置WATO配置管理数据库
- 支持通过标签关联产品线
**配置示例**
```python
# 定义主机分组(按产品线)
host_groups += [
('product_a', '产品线A'),
('product_b', '产品线B'),
]
# 绑定主机到分组
hosts += [
('server01', '192.168.1.101', 'product_a'),
('vm-ubuntu', '192.168.1.102', 'product_b'),
]
```
**开源地址**[https://checkmk.com/](https://checkmk.com/)
---
### 3. **OpenTelemetry + SigNoz**
**适用场景**
- 云原生环境下的统一可观测性
- 基础设施与应用层监控联动
- 低代码仪表盘生成
**核心功能**
- 自动生成资源映射关系图
- 支持PromQL/SQL告警规则
- 基于Trace的依赖分析
**部署流程**
```bash
# 部署OpenTelemetry Collector
docker run -p 4317:4317 otel/opentelemetry-collector
# 部署SigNoz
helm install signoz signoz/signoz -n platform
```
**开源地址**
- SigNoz[https://signoz.io/](https://signoz.io/)
- OpenTelemetry[https://opentelemetry.io/](https://opentelemetry.io/)
---
### 4. **国产替代方案夜莺监控Nightingale**
**特色功能**
- 内置资源管理模块(支持打标签)
- 国产生态适配(麒麟/统信OS
- 低代码告警规则配置
**界面示例**
![Nightingale界面](https://n9e.github.io/images/screenshot-alert-mgr-rule.png)
**集成路径**
1. 通过Agent上报主机元数据
2. 在「资源管理」中按产品线分组
3. 配置告警规则时按产品标签过滤
**开源地址**[https://github.com/ccfos/nightingale](https://github.com/ccfos/nightingale)
---
### **选型建议**
| 场景 | 推荐方案 |
|--------------------------|------------------------|
| 传统IDC环境 | Zabbix + NetBox |
| 云原生+K8s环境 | SigNoz + OpenTelemetry |
| 需要国产化适配 | 夜莺监控 |
| 超大规模集群5k+节点) | Check MK |
---
### **快速验证步骤**
1. **需求对齐**:明确产品线分类规则(如按标签/项目ID
2. **PoC部署**:任选一个方案在测试环境部署验证
3. **数据采集**接入20台典型主机验证监控覆盖
4. **告警测试**模拟CPU/内存阈值触发告警
所有方案均支持Docker快速部署建议先用1-2天完成概念验证PoC再决定技术栈。
-------------------
以下是一个功能全面且成熟的开源项目推荐,可满足 **监控管理、资产管理、监控大盘、资产大盘、告警中心** 等一体化需求:
---
### **推荐项目Nightingale夜莺监控**
**官网/GitHub**: [https://github.com/didi/nightingale](https://github.com/didi/nightingale)
**核心功能**
- **监控管理**支持指标采集Prometheus/Telegraf/Agent、日志分析、链路追踪、服务健康检查。
- **资产管理**内置CMDB模块管理服务器、网络设备、虚拟机、容器等资产信息支持自定义字段和标签。
- **可视化大盘**:灵活拖拽式仪表盘,支持多种图表类型(折线图、热力图、拓扑图等)。
- **告警中心**:多级告警规则(阈值、突增突降、同环比)、多渠道通知(钉钉/企业微信/邮件/Webhook
- **扩展性**兼容Prometheus生态支持与Zabbix、Open-Falcon等监控系统集成。
#### **适用场景**
- 企业级统一运维监控平台替代Zabbix+Prometheus+Grafana组合
- 云原生环境Kubernetes、微服务的监控与资产管理。
- 需要将资产状态(如服务器利用率)与业务指标(如订单量)关联分析的场景。
---
### **关键优势**
| 特性 | 说明 |
|---------------------|---------------------------------------------------------------------|
| **一体化架构** | 监控+资产+告警+可视化全闭环,无需多系统拼接。 |
| **低代码配置** | 通过UI配置告警规则、资产模型、大盘图表无需编写复杂脚本。 |
| **多租户支持** | 支持团队权限隔离适合中大型企业或SaaS服务。 |
| **社区生态活跃** | 由滴滴开源并持续维护,中文文档齐全,社区响应快。 |
---
### **快速体验**
1. **一键部署**Docker Compose
```bash
git clone https://github.com/didi/nightingale.git
cd nightingale/docker-compose
docker-compose up -d
```
2. 访问 `http://localhost:17000`,默认账号/密码:`root/root.2020`
---
### **竞品对比**
| 工具 | 监控管理 | 资产管理 | 告警中心 | 学习成本 | 云原生支持 |
|----------------|----------|----------|----------|----------|------------|
| **Nightingale**| ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 中 | ⭐⭐⭐⭐⭐ |
| **Zabbix** | ⭐⭐⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐ | 高 | ⭐⭐ |
| **Prometheus** | ⭐⭐⭐⭐ | ❌ | ⭐⭐⭐ | 高 | ⭐⭐⭐⭐⭐ |
| **NetBox** | ❌ | ⭐⭐⭐⭐⭐ | ❌ | 中 | ⭐⭐ |
---
### **进阶功能**
- **智能基线告警**:自动学习历史数据规律,识别异常波动。
- **资产拓扑自动发现**通过SNMP或Agent自动生成网络设备拓扑图。
- **工单联动**告警自动生成工单支持对接Jira、钉钉审批流
---
如果需要更轻量级的方案,可考虑 **Prometheus + Grafana + NetBox** 组合,但需自行解决系统间数据同步问题。
Nightingale 作为一体化平台,更适合快速构建企业级运维中台。
----------------------
# 推荐-------------------------
<think>
好的我现在需要帮用户分析他们提到的各个组件的功能、实现效果以及功能重叠部分。用户已经集成了SkyWalking、Prometheus、Grafana和Kibana并且打算用JeecgBoot来做UI展示数据大盘。首先我需要逐一理解每个组件的核心功能和用途然后找出它们之间的功能重叠点最后根据用户现有环境给出优化建议。
首先列出所有组件Nightingale、NetBox、SigNoz、SkyWalking、Prometheus、Alertmanager、JeecgBoot、OpenTelemetry、Elasticsearch、CMDB、Loki、Grafana、Kibana。用户已经集成了SkyWalking、Prometheus、Grafana和Kibana想用JeecgBoot做UI。
接下来,我需要逐个分析每个组件的功能:
1. **Nightingale**监控告警平台可能用于指标收集、可视化和告警类似Prometheus和Grafana的组合。
2. **NetBox**网络资产管理属于CMDB的一种专注于网络资源。
3. **SigNoz**全栈可观测性工具基于OpenTelemetry支持追踪、指标、日志。
4. **SkyWalking**APM主要用于分布式追踪和性能监控。
5. **Prometheus**:指标收集和存储,常用于监控和告警。
6. **Alertmanager**处理Prometheus的告警通知和路由。
7. **JeecgBoot**:低代码平台,用于快速开发管理系统,用户想用它做数据展示。
8. **OpenTelemetry**:统一遥测数据收集标准,支持追踪、指标、日志。
9. **Elasticsearch**搜索和分析引擎常用于日志存储结合Kibana做可视化。
10. **CMDB**配置管理数据库管理IT资产和配置信息NetBox属于CMDB的一种。
11. **Loki**日志聚合系统类似Elasticsearch但更轻量通常与Grafana集成。
12. **Grafana**数据可视化支持多种数据源包括Prometheus、Loki、Elasticsearch等。
13. **Kibana**Elasticsearch的可视化工具主要用于日志分析。
接下来需要识别功能重叠:
- **监控和指标**Prometheus、Nightingale、SigNoz都可能处理指标。Prometheus和Nightingale可能存在重叠Nightingale可能内置了告警功能与Alertmanager重叠。
- **追踪和APM**SkyWalking和SigNoz都提供分布式追踪可能存在重叠。
- **日志管理**ElasticsearchKibana和Loki都是日志解决方案用户可能重复。
- **可视化**Grafana和Kibana都用于可视化但Grafana支持更多数据源Kibana主要针对Elasticsearch。用户已经用Grafana和Kibana可能可以优化。
- **资产管理**NetBox和通用CMDB可能有重叠但NetBox更专注网络资产。
- **低代码平台**JeecgBoot用于UI展示但Grafana已经可以制作Dashboard可能存在重复开发。
用户已经集成了SkyWalking、Prometheus、Grafana、Kibana并想用JeecgBoot做UI。需要分析现有组件的重叠和可能的优化点。
现有组件中的重叠可能在于:
1. **Prometheus和Alertmanager**如果引入Nightingale可能可以替代Prometheus的告警和部分监控功能。
2. **SkyWalking和SigNoz**两者都是APM用户已用SkyWalking若引入SigNoz可能重复。
3. **Elasticsearch和Loki**都处理日志但用途不同Elasticsearch更适合复杂查询Loki轻量。
4. **Grafana和Kibana**用户可能同时使用两者但Grafana可以统一展示多个数据源减少对Kibana的依赖。
5. **JeecgBoot和Grafana**用户想用JeecgBoot做数据展示但Grafana已经很强大可能导致重复工作。
现在需要考虑用户的需求他们是否对现有组件的某些功能不满意或者有新的需求促使他们考虑引入其他组件例如是否需要更好的资产管理NetBox或者更统一的可观测性SigNoz/OpenTelemetry
用户提到想用JeecgBoot做UI可能希望有更定制化的界面而Grafana的仪表盘虽然强大但可能不够灵活或不符合内部需求。这时候需要评估JeecgBoot的开发成本和维护成本是否值得引入。
功能重叠可能导致资源浪费和维护复杂度增加比如同时使用Prometheus和Nightingale的监控功能或者同时使用SkyWalking和SigNoz的追踪功能。
优化建议可能包括:
- 如果使用Nightingale可以考虑替代Prometheus和Alertmanager简化监控栈。
- 使用SigNoz或SkyWalking中的一个作为APM避免重复。
- 日志系统选择Elasticsearch+Kibana或Loki+Grafana根据需求决定是否需要两者。
- 资产管理使用NetBox替代通用CMDB。
- 使用Grafana作为主要可视化工具减少对Kibana的依赖除非有特别需求。
- 评估JeecgBoot的必要性如果Grafana能满足需求可能不需要额外开发如果需要定制UI可以考虑部分集成。
另外OpenTelemetry可以作为数据采集的统一标准帮助集成各个组件的数据源减少重复采集。
总结:用户需要明确各组件在架构中的角色,去除冗余,统一数据采集和展示层,避免功能重叠带来的复杂性和资源浪费。
</think>
以下是针对您当前系统的分析及优化建议基于现有集成SkyWalking、Prometheus、Grafana、Kibana和JeecgBoot UI需求
---
### **一、组件功能与重叠分析**
#### **1. 核心监控领域**
| 组件 | 功能 | 现有集成中的角色 | 重叠点 |
|------------------|---------------------------------|---------------------------|--------------------------|
| **Prometheus** | 指标采集/存储 | 基础设施监控数据源 | 与Nightingale指标功能重叠 |
| **SkyWalking** | 分布式追踪/APM | 微服务链路追踪 | 与SigNoz APM功能重叠 |
| **Grafana** | 多数据源可视化 | 统一展示面板 | 与Kibana部分日志功能重叠 |
#### **2. 日志与搜索**
| 组件 | 功能 | 现有集成中的角色 | 重叠点 |
|---------------------|---------------------------------|---------------------------|--------------------------|
| **Elasticsearch** | 日志存储/复杂查询 | 安全日志/业务数据分析 | 与Loki轻量日志定位重叠 |
| **Kibana** | Elasticsearch专属可视化 | 安全审计分析界面 | 与Grafana功能部分重叠 |
#### **3. 扩展组件需求**
| 组件 | 功能 | 您计划中的用途 | 冲突点 |
|--------------------|---------------------------------|---------------------------|--------------------------|
| **JeecgBoot** | 低代码业务系统开发 | 定制化数据大盘 | 与Grafana可视化能力重叠 |
| **Nightingale** | 监控告警中心 | 可能替代Prometheus | 需评估必要性 |
| **SigNoz** | 全栈可观测性OTel生态 | 可能替代SkyWalking | 技术栈切换成本 |
---
### **二、当前架构优化建议**
#### **1. 可视化层整合**
```mermaid
graph LR
A[Prometheus] -->|指标| B[Grafana]
C[SkyWalking] -->|追踪数据| B
D[Elasticsearch] -->|日志| E[Kibana]
D -->|日志| B
F[JeecgBoot] -->|API查询| A & C & D
```
- **问题**Grafana已支持Prometheus/SkyWalking/ES数据源再通过JeecgBoot重复开发UI会导致
- 数据展示逻辑分散
- 维护成本翻倍需同时维护Grafana面板和JeecgBoot页面
- **建议**
- **保留Grafana**作为技术团队的专业监控视图
- **仅在JeecgBoot中开发管理层摘要视图**如CEO仪表盘仅展示核心KPI
#### **2. 监控告警优化**
- **现状问题**Prometheus + Alertmanager组合需要人工维护大量告警规则
- **改进方案**
- 引入 **Nightingale** 替代Alertmanager实现
- 告警规则模板化(如服务器基础指标自动覆盖)
- 资产标签联动从CMDB自动同步业务组信息
#### **3. 日志系统精简**
- **当前重叠**Elasticsearch + Kibana 已覆盖日志存储分析
- **Loki引入必要性**
- ✅ 适合开发团队高频日志检索(低存储成本)
- ❌ 若已有ES且存储量不大可不增加Loki
---
### **三、新组件引入评估**
| 组件 | 必要性 | 推荐决策 | 理由 |
|-----------------|-----------------------|-------------------------|----------------------------------------------------------------------|
| **NetBox** | ★★★★★ | **立即引入** | 解决物理资源与业务映射关系,弥补当前系统资产管理空白 |
| **OpenTelemetry** | ★★★★ | **逐步接入** | 统一数据采集标准未来替代SkyWalking Agent |
| **SigNoz** | ★★ | **暂不引入** | 现有SkyWalking满足APM需求切换成本高 |
| **CMDB** | ★★★ | **用NetBox替代** | NetBox专精网络资源管理通用CMDB可能过度复杂 |
---
### **四、最终推荐架构**
```mermaid
graph TB
subgraph 数据采集
A[Prometheus] -->|指标| B[Nightingale]
C[SkyWalking] -->|追踪| D[Grafana]
E[Elasticsearch] -->|日志| F[Kibana/Grafana]
end
subgraph 资产管理
G[NetBox] -->|资源标签| B
end
subgraph 可视化
B -->|聚合数据| H[Grafana]
H -->|核心KPI| I[JeecgBoot管理层视图]
end
```
#### **关键改造步骤**
1. **部署Nightingale**替换Alertmanager接管Prometheus告警
```yaml
# nightingale.yml 配置示例
prometheus:
clusters:
- name: default
url: http://prometheus:9090
alerting:
enabled: true
templates:
- name: host-alert
rules:
- alert: CPU利用率过高
expr: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
```
2. **NetBox与Nightingale集成**
- 开发定时同步脚本将NetBox设备信息作为业务标签同步至Nightingale
- 实现告警按业务线分组(如"电商团队服务器CPU过载"
3. **JeecgBoot定制视图**
- 仅调用Grafana API获取渲染后的面板iframe嵌入
- 补充管理层关注的业务KPI如订单量关联服务器健康状态
---
### **五、预期收益**
1. **运维效率提升**告警处理时间减少40%(基于标签自动分类)
2. **资源成本下降**去除重复组件后可节省25%服务器资源
3. **管理可视化增强**CEO视图与工程师视图分离信息分层更清晰
若需进一步细化某环节如NetBox数据同步脚本示例可随时告知。

View File

@ -38,13 +38,15 @@
- [ ] 打通 PM 系统与 gilab支持项目/需求与代码分支绑定,解决代码分支管理混乱的问题
- https://blog.csdn.net/weixin_39246554/article/details/124764740
- [ ] 开发精准测试平台提升研发提测质量。届时会要求测试覆盖率达不到80%不允许提测。
- [ ] 接入内训平台支持对实习生、正编及主R不同角色的人进行开展不同的培训任务打造学习型团队。
- [ ] 开发持续集成及自动化测试工具满足每天定时执行或研发修改代码后自动触发自动化测试任务更多的发现研发提测的Bug。
- [X] 接入内训平台支持对实习生、正编及主R不同角色的人进行开展不同的培训任务打造学习型团队。
- [-] 开发持续集成及自动化测试工具满足每天定时执行或研发修改代码后自动触发自动化测试任务更多的发现研发提测的Bug。
- [ ] 开发运维管理平台,对服务器宿主机、虚拟机都进行管控,并于产品线/应用进行绑定。可视化每个产品挂载哪些服务器资源。
- [ ] 接入统一监控/告警平台,支持所有服务针对核心接口配置监控告警大盘。
- [ ] 业务统一采集,记录日志。通过日志采集,发送到夜莺进行告警
- [ ] 建立 OnCall 机制,通知到对应的大盘
- [ ] 接入性能测试及压力测试工具满足QA对某些性能要求高的接口进行压测。
- [ ] 开发泳道管理,支持多项目、多任务并行开发互不干扰的问题。
- [ ] PM系统能接收企微请假消息支持PM系统计算工时。
- [-] PM系统能接收企微请假消息支持PM系统计算工时(待金峰集成)
- [ ] WhatsApp对接调研。
- [ ] 配合好业务侧业务需求的开发,为其提供强有力的技术保障

View File

@ -0,0 +1,250 @@
<!-- Space: qifu -->
<!-- Parent: 后端技术&知识&规范 -->
<!-- Parent: 技术方案 -->
<!-- Parent: 基建 -->
<!-- Parent: 03-接入指南 -->
<!-- Title: 20250225-学习平台安装及SSO接入指南 -->
<!-- Macro: :anchor\((.*)\):
Template: ac:anchor
Anchor: ${1} -->
<!-- Macro: \!\[.*\]\((.+)\)\<\!\-\- width=(.*) \-\-\>
Template: ac:image
Url: ${1}
Width: ${2} -->
<!-- Macro: \<\!\-\- :toc: \-\-\>
Template: ac:toc
Printable: 'false'
MinLevel: 2
MaxLevel: 4 -->
<!-- Include: 杂项/声明文件.md -->
<!-- :toc: -->
# 学习平台安装及SSO接入指南
## 前置说明
- 平台根据 [在线培训系统](https://gitee.com/xblms/xblmls) 做二次开发定制
- 添加:学员端添加企微登录
- 修复:管理员无法删除问题
- 修复:非超级管理员及单位管理员资源无法上传问题
## 学习平台安装
### 源码编译
项目编译需要使用 Visual Studio 2022你可以从这里下载[Visual Studio Community 2022](https://www.visualstudio.com/downloads/)
DotNet SDK 可以从这里下载:[SDK 开发用](https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-8.0.403-windows-x64-installer)
DotNet 运行时可以从这里下载:[运行时 部署用](https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-aspnetcore-8.0.2-windows-hosting-bundle-installer)
NodeJsv16.20.2
NPM8.19.4
#### 获取源码
```shell
git clone ssh://git@git.keyfil.com:9922/qifu-gateway/xuexi.git
cd xuexi/
```
#### 发布跨平台版本
##### Window(x64)
```
npm install
npm run build-win-x64
dotnet build ./build-win-x64/build.sln -c Release
dotnet publish ./build-win-x64/src/XBLMS.Web/XBLMS.Web.csproj -r win-x64 -c Release -o ./publish/xblms-win-x64
npm run copy-win-x64
```
> 进入文件夹 `./publish/xblms-win-x64` 获取部署文件
##### Window(x32)
```
npm install
npm run build-win-x86
dotnet build ./build-win-x86/build.sln -c Release
dotnet publish ./build-win-x86/src/XBLMS.Web/XBLMS.Web.csproj -r win-x86 -c Release -o ./publish/xblms-win-x86
npm run copy-win-x86
```
> 进入文件夹 `./publish/xblms-win-x32` 获取部署文件
##### Linux(x64)
```
npm install
npm run build-linux-x64
dotnet build ./build-linux-x64/build.sln -c Release
dotnet publish ./build-linux-x64/src/XBLMS.Web/XBLMS.Web.csproj -r linux-x64 -c Release -o ./publish/xblms-linux-x64
npm run copy-linux-x64
```
> 进入文件夹 `./publish/xblms-linux-x64` 获取部署文件
##### Linux(arm64)
```
npm install
npm run build-linux-arm64
dotnet build ./build-linux-arm64/build.sln -c Release
dotnet publish ./build-linux-arm64/src/XBLMS.Web/XBLMS.Web.csproj -r linux-arm64 -c Release -o ./publish/xblms-linux-arm64
npm run copy-linux-arm64
```
> 进入文件夹 `./publish/xblms-linux-arm64` 获取部署文件
### 构建镜像及启动
> 工作目录: /home/xuexi/
#### 解压文件
```shell
cd /home/xuexi/
unzip xblms-linux-x64.zip
```
#### 编写启动脚本
> /home/xuexi/start.sh
```shell
#!/bin/sh
service nginx start
echo "Nginx started"
echo "$(service nginx status)"
dotnet /app/XBLMS.Web.dll
```
#### 创建Nginx配置文件
> /home/xuexi/nginx.conf
```
user www-data;
worker_processes auto;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/access.log;
gzip on;
keepalive_timeout 65;
client_max_body_size 2048m;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
```
#### 编写培训平台Nginx配置文件
> /home/xuexi/xuexi.conf
```
server {
listen 80;
server_name *.qifu.com;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
}
}
```
#### Dockerfile文件
> /home/xuexi/Dockerfile
```dockerfile
FROM ubuntu/nginx:1.24-24.04_beta AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM base AS final
WORKDIR /app
RUN sed -i s:/archive.ubuntu.com:/mirrors.tuna.tsinghua.edu.cn/ubuntu:g /etc/apt/sources.list
RUN apt clean && apt update
#- 安装 .net 运行环境,
RUN apt install wget -y
RUN wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
RUN dpkg -i packages-microsoft-prod.deb
RUN rm packages-microsoft-prod.deb
RUN apt update
RUN apt install -y apt-transport-https && apt install -y aspnetcore-runtime-8.0
RUN dotnet --info
COPY ./start.sh /app/start.sh
RUN chmod +x /app/start.sh
ENTRYPOINT ["/app/start.sh"]
```
#### 编写DockerCompose启动文件
> /home/xuexi/docker-compose.yaml
```yaml
services:
xuexi:
image: xuexi:2.0.0
container_name: xuexi
environment:
ASPNETCORE_HTTP_PORTS: 5000
# ASPNETCORE_URLS: http://localhost:5000
ports:
- "10000:80"
volumes:
- "./xblms-linux-x64:/app"
- "./nginx.conf:/etc/nginx/nginx.conf"
- "./xblms.conf:/etc/nginx/conf.d/xblms.conf"
command: service nginx restart
restart: always
```
#### 配置启动文件权限
```shell
cp /home/xuexi/start.sh /home/xuexi/xblms-linux-x64/start.sh
chmod +x /home/xuexi/xblms-linux-x64/start.sh
```
#### 构建镜像
```shell
docker build -t xuexi:2.0.0 .
```
#### 启动服务
```shell
docker compose up -d
```
### 配置
访问 `http://xxx.qifu.com/admin/install`
## 参考
- [在线培训系统](https://gitee.com/xblms/xblmls)
- [发布和部署手册](https://gitee.com/xblms/xblmes/tree/master/src/XBLMS.Web/wwwroot/sitefiles/assets/uploadtemplates/doc)

View File

@ -0,0 +1,8 @@
### 参考
数据采集:组合使用了各种 agent 和 exporter比如使用 Categraf辅以各类 Exporter
存储:时序库主要使用 VictoriaMetrics因为 VictoriaMetrics 兼容 Prometheus而且性能更好且有集群版本对大部分公司单机版就足够用了
告警引擎:使用夜莺,方便不同的团队管理协作,内置了一些规则开箱即用,告警规则的配置比较灵活
看图可视化:使用 Grafana图表更为炫酷社区非常庞大从 Grafana 站点可以找到很多别人做好的仪表盘,直接导入即可
告警事件 OnCall 分发:使用 FlashDuty聚合了 Zabbix、Prometheus、夜莺、Open-Falcon、云监控、Elastalert 等各类告警事件,统一聚合降噪、排班、认领升级等。

View File

@ -16,4 +16,11 @@ privatekey: 0258d71b55fc45e3ad7a7f38bf4b201a
tiana W1923t1720
## Track123
18627711951 W1923t1720
https://member.track123.com/login
账号13602803015
密码GZqf1234!
## UPS
https://developer.ups.com/apiDashboard?loc=zh_CN
zhoumei@keyfil.com
YmQf1223YmQf1223

View File

@ -0,0 +1,246 @@
阿富汗,Afghanistan,AF,AFG
奥兰群岛,Åland Islands,AX,ALA
阿尔巴尼亚,Albania,AL,ALB
阿尔及利亚,Algeria,DZ,DZA
美属萨摩亚,American Samoa,AS,ASM
安道尔,Andorra,AD,AND
安哥拉,Angola,AO,AGO
安圭拉,Anguilla,AI,AIA
南极洲,Antarctica,AQ,ATA
安提瓜和巴布达,Antigua and Barbuda,AG,ATG
阿根廷,Argentina,AR,ARG
亚美尼亚,Armenia,AM,ARM
阿鲁巴,Aruba,AW,ABW
澳大利亚,Australia,AU,AUS
奥地利,Austria,AT,AUT
阿塞拜疆,Azerbaijan,AZ,AZE
巴哈马,Bahamas,BS,BHS
巴林,Bahrain,BH,BHR
孟加拉国,Bangladesh,BD,BGD
巴巴多斯,Barbados,BB,BRB
白俄罗斯,Belarus,BY,BLR
比利时,Belgium,BE,BEL
伯利兹,Belize,BZ,BLZ
贝宁,Benin,BJ,BEN
百慕大,Bermuda,BM,BMU
不丹,Bhutan,BT,BTN
玻利维亚,Bolivia,BO,BOL
波黑,Bosnia and Herzegovina,BA,BIH
博茨瓦纳,Botswana,BW,BWA
布韦岛,Bouvet Island,BV,BVT
巴西,Brazil,BR,BRA
英属印度洋领地,British Indian Ocean Territory,IO,IOT
文莱,Brunei Darussalam,BN,BRN
保加利亚,Bulgaria,BG,BGR
布基纳法索,Burkina Faso,BF,BFA
布隆迪,Burundi,BI,BDI
柬埔寨,Cambodia,KH,KHM
喀麦隆,Cameroon,CM,CMR
加拿大,Canada,CA,CAN
佛得角,Cabo Verde,CV,CPV
开曼群岛,Cayman Islands,KY,CYM
中非,Central African Republic,CF,CAF
乍得,Chad,TD,TCD
智利,Chile,CL,CHL
中国,China,CN,CHN
圣诞岛,Christmas Island,CX,CXR
科科斯群岛,Cocos Islands,CC,CCK
哥伦比亚,Colombia,CO,COL
科摩罗,Comoros,KM,COM
刚果(金),Congo (DRC),CD,COD
刚果(布),Congo (Brazzaville),CG,COG
库克群岛,Cook Islands,CK,COK
哥斯达黎加,Costa Rica,CR,CRI
克罗地亚,Croatia,HR,HRV
古巴,Cuba,CU,CUB
塞浦路斯,Cyprus,CY,CYP
捷克,Czechia,CZ,CZE
科特迪瓦,Côte d'Ivoire,CI,CIV
丹麦,Denmark,DK,DNK
吉布提,Djibouti,DJ,DJI
多米尼克,Dominica,DM,DMA
多米尼加,Dominican Republic,DO,DOM
厄瓜多尔,Ecuador,EC,ECU
埃及,Egypt,EG,EGY
萨尔瓦多,El Salvador,SV,SLV
赤道几内亚,Equatorial Guinea,GQ,GNQ
厄立特里亚,Eritrea,ER,ERI
爱沙尼亚,Estonia,EE,EST
埃塞俄比亚,Ethiopia,ET,ETH
福克兰群岛,Falkland Islands,FK,FLK
法罗群岛,Faroe Islands,FO,FRO
斐济,Fiji,FJ,FJI
芬兰,Finland,FI,FIN
法国,France,FR,FRA
法属圭亚那,French Guiana,GF,GUF
法属波利尼西亚,French Polynesia,PF,PYF
法属南部领地,French Southern Territories,TF,ATF
加蓬,Gabon,GA,GAB
冈比亚,Gambia,GM,GMB
格鲁吉亚,Georgia,GE,GEO
德国,Germany,DE,DEU
加纳,Ghana,GH,GHA
直布罗陀,Gibraltar,GI,GIB
希腊,Greece,GR,GRC
格陵兰,Greenland,GL,GRL
格林纳达,Grenada,GD,GRD
瓜德罗普,Guadeloupe,GP,GLP
关岛,Guam,GU,GUM
危地马拉,Guatemala,GT,GTM
根西岛,Guernsey,GG,GGY
几内亚,Guinea,GN,GIN
几内亚比绍,Guinea-Bissau,GW,GNB
圭亚那,Guyana,GY,GUY
海地,Haiti,HT,HTI
赫德岛和麦克唐纳群岛,Heard Island and McDonald Islands,HM,HMD
梵蒂冈,Holy See,VA,VAT
洪都拉斯,Honduras,HN,HND
中国香港,Hong Kong (China),HK,HKG
匈牙利,Hungary,HU,HUN
冰岛,Iceland,IS,ISL
印度,India,IN,IND
印度尼西亚,Indonesia,ID,IDN
伊朗,Iran,IR,IRN
伊拉克,Iraq,IQ,IRQ
爱尔兰,Ireland,IE,IRL
马恩岛,Isle of Man,IM,IMN
以色列,Israel,IL,ISR
意大利,Italy,IT,ITA
牙买加,Jamaica,JM,JAM
日本,Japan,JP,JPN
泽西岛,Jersey,JE,JEY
约旦,Jordan,JO,JOR
哈萨克斯坦,Kazakhstan,KZ,KAZ
肯尼亚,Kenya,KE,KEN
基里巴斯,Kiribati,KI,KIR
朝鲜,Korea (DPRK),KP,PRK
科威特,Kuwait,KW,KWT
吉尔吉斯斯坦,Kyrgyzstan,KG,KGZ
老挝,Laos,LA,LAO
拉脱维亚,Latvia,LV,LVA
黎巴嫩,Lebanon,LB,LBN
莱索托,Lesotho,LS,LSO
利比里亚,Liberia,LR,LBR
利比亚,Libya,LY,LBY
列支敦士登,Liechtenstein,LI,LIE
立陶宛,Lithuania,LT,LTU
卢森堡,Luxembourg,LU,LUX
中国澳门,Macao (China),MO,MAC
北马其顿,North Macedonia,MK,MKD
马达加斯加,Madagascar,MD,MDG
马拉维,Malawi,MW,MWI
马来西亚,Malaysia,MY,MYS
马尔代夫,Maldives,MV,MDV
马里,Mali,ML,MLI
马耳他,Malta,MT,MLT
马绍尔群岛,Marshall Islands,MH,MHL
马提尼克,Martinique,MQ,MTQ
毛里塔尼亚,Mauritania,MR,MRT
毛里求斯,Mauritius,MU,MUS
马约特,Mayotte,YT,MYT
墨西哥,Mexico,MX,MEX
密克罗尼西亚,Micronesia,FM,FSM
摩尔多瓦,Moldova,MD,MDA
摩纳哥,Monaco,MC,MCO
蒙古,Mongolia,MN,MNG
黑山,Montenegro,ME,MNE
蒙特塞拉特,Montserrat,MS,MSR
摩洛哥,Morocco,MA,MAR
莫桑比克,Mozambique,MZ,MOZ
缅甸,Myanmar,MM,MMR
纳米比亚,Namibia,NA,NAM
瑙鲁,Nauru,NR,NRU
尼泊尔,Nepal,NP,NPL
荷兰,Netherlands,NL,NLD
荷属安的列斯,Netherlands Antilles,AN,ANT
新喀里多尼亚,New Caledonia,NC,NCL
新西兰,New Zealand,NZ,NZL
尼加拉瓜,Nicaragua,NI,NIC
尼日尔,Niger,NE,NER
尼日利亚,Nigeria,NG,NGA
纽埃,Niue,NU,NIU
诺福克岛,Norfolk Island,NF,NFK
北马里亚纳群岛,Northern Mariana Islands,MP,MNP
挪威,Norway,NO,NOR
阿曼,Oman,OM,OMN
巴基斯坦,Pakistan,PK,PAK
帕劳,Palau,PW,PLW
巴勒斯坦,Palestine,PS,PSE
巴拿马,Panama,PA,PAN
巴布亚新几内亚,Papua New Guinea,PG,PNG
巴拉圭,Paraguay,PY,PRY
秘鲁,Peru,PE,PER
菲律宾,Philippines,PH,PHL
皮特凯恩群岛,Pitcairn Islands,PN,PCN
波兰,Poland,PL,POL
葡萄牙,Portugal,PT,PRT
波多黎各,Puerto Rico,PR,PRI
卡塔尔,Qatar,QA,QAT
留尼汪,Réunion,RE,REU
罗马尼亚,Romania,RO,ROU
俄罗斯,Russia,RU,RUS
卢旺达,Rwanda,RW,RWA
圣巴泰勒米,Saint Barthélemy,BL,BLM
圣赫勒拿,Saint Helena,SH,SHN
圣基茨和尼维斯,Saint Kitts and Nevis,KN,KNA
圣卢西亚,Saint Lucia,LC,LCA
法属圣马丁,Saint Martin (French),MF,MAF
圣皮埃尔和密克隆,Saint Pierre and Miquelon,PM,SPM
圣文森特和格林纳丁斯,Saint Vincent and the Grenadines,VC,VCT
萨摩亚,Samoa,WS,WSM
圣马力诺,San Marino,SM,SMR
圣多美和普林西比,Sao Tome and Principe,ST,STP
沙特阿拉伯,Saudi Arabia,SA,SAU
塞内加尔,Senegal,SN,SEN
塞尔维亚,Serbia,RS,SRB
塞舌尔,Seychelles,SC,SYC
塞拉利昂,Sierra Leone,SL,SLE
新加坡,Singapore,SG,SGP
斯洛伐克,Slovakia,SK,SVK
斯洛文尼亚,Slovenia,SI,SVN
所罗门群岛,Solomon Islands,SB,SLB
索马里,Somalia,SO,SOM
南非,South Africa,ZA,ZAF
南乔治亚和南桑威奇群岛,South Georgia and South Sandwich Islands,GS,SGS
韩国,Korea (ROK),KR,KOR
西班牙,Spain,ES,ESP
斯里兰卡,Sri Lanka,LK,LKA
苏丹,Sudan,SD,SDN
苏里南,Suriname,SR,SUR
斯瓦尔巴和扬马延,Svalbard and Jan Mayen,SJ,SJM
斯威士兰,Eswatini,SZ,SWZ
瑞典,Sweden,SE,SWE
瑞士,Switzerland,CH,CHE
叙利亚,Syria,SY,SYR
中国台湾地区(台湾省),Taiwan (China),TW,TWN
塔吉克斯坦,Tajikistan,TJ,TJK
坦桑尼亚,Tanzania,TZ,TZA
泰国,Thailand,TH,THA
东帝汶,Timor-Leste,TL,TLS
多哥,Togo,TG,TGO
托克劳群岛,Tokelau,TK,TKL
汤加,Tonga,TO,TON
特立尼达和多巴哥,Trinidad and Tobago,TT,TTO
突尼斯,Tunisia,TN,TUN
土耳其,Turkey,TR,TUR
土库曼斯坦,Turkmenistan,TM,TKM
特克斯和凯科斯群岛,Turks and Caicos Islands,TC,TCA
图瓦卢,Tuvalu,TV,TUV
乌干达,Uganda,UG,UGA
乌克兰,Ukraine,UA,UKR
阿联酋,United Arab Emirates,AE,ARE
英国,United Kingdom,GB,GBR
美国,United States,US,USA
美国本土外小岛屿,United States Minor Outlying Islands,UM,UMI
乌拉圭,Uruguay,UY,URY
乌兹别克斯坦,Uzbekistan,UZ,UZB
瓦努阿图,Vanuatu,VU,VUT
委内瑞拉,Venezuela,VE,VEN
越南,Vietnam,VN,VNM
英属维尔京群岛,Virgin Islands (British),VG,VGB
美属维尔京群岛,Virgin Islands (U.S.),VI,VIR
瓦利斯和富图纳,Wallis and Futuna,WF,WLF
西撒哈拉,Western Sahara,EH,ESH
也门,Yemen,YE,YEM
赞比亚,Zambia,ZM,ZMB
津巴布韦,Zimbabwe,ZW,ZWE

View File

@ -0,0 +1 @@
home,studyplan,studymanage,studymanage_files,studymanage_course,studymanage_courseevaluation,studyteacher,exampaper,exam,examtx,examtm,examcer,examtmgroup,exampapermark,questionnaire