samsesh/OpenHostingNOC

GitHub: samsesh/OpenHostingNOC

一个基于 Docker 的自托管网络运营中心(NOC)平台,整合了基础设施监控、流量分析、安全检测和可视化告警功能。

Stars: 1 | Forks: 0

Version Release License Docker Compose OpenSearch Grafana LibreNMS

🔭 OpenHostingNOC

面向托管提供商的自托管网络运营中心 (NOC)
监控服务器、网络设备、客户带宽和安全威胁——所有这一切都在统一的单一视图中完成。

功能架构快速开始截图文档贡献

## 功能

📊 基础设施监控

  • CPU、RAM、磁盘、温度
  • RAID、SMART、网络接口
  • Ping、丢包、延迟
  • BGP 会话、OSPF、WireGuard
  • Linux、Windows、Proxmox、VMware

🔒 安全检测

  • UDP/SYN/ICMP Flood
  • DNS/NTP/SSDP 放大攻击
  • 端口扫描、SSH 暴力破解
  • DDoS 指标
  • Suricata IDS/IPS (可选)

🌐 流量分析

  • NetFlow v5/v9、IPFIX、sFlow
  • Top Talkers、Top 端口、Top 协议
  • 第 95 百分位计费
  • 基于 IP 的带宽历史图表
  • 每日/每月使用量

📡 网络监控

  • LibreNMS SNMP 发现
  • MikroTik、Cisco、Juniper、Arista
  • Fortinet、OPNsense、pfSense
  • 自动配置备份 (Oxidized)
  • Syslog 收集

🚨 告警

  • Telegram、Discord、Slack
  • 电子邮件、Webhook、PagerDuty
  • 警告 / 严重 / 紧急
  • 去重、静默
  • 维护窗口、升级

🔧 运维

  • 集中式日志 (Loki)
  • 容器监控 (cAdvisor)
  • 自动备份到 S3
  • 健康检查与自我监控
  • LDAP/AD 身份验证
## 架构 ``` ┌──────────────────────────┐ │ Traefik (HTTPS) │ │ Reverse Proxy + TLS + LDAP│ └──────────┬───────────────┘ │ ┌───────────────────┼───────────────────┐ │ │ │ ┌─────▼─────┐ ┌─────▼─────┐ ┌──────▼─────┐ │ Grafana │ │ LibreNMS │ │ ntopng │ │ Dashboards │ │ Network │ │ Traffic │ │ + Alerts │ │ Monitoring│ │ Analysis │ └─────┬─────┘ └─────┬─────┘ └──────┬─────┘ │ │ │ ┌─────▼─────┐ ┌─────▼─────┐ ┌──────▼─────┐ │ Prometheus │ │ MariaDB │ │ OpenSearch│ │ Metrics │ │ + Redis │ │ Security │ └─────┬─────┘ └───────────┘ └──────┬─────┘ │ │ ┌─────▼─────┐ ┌──────▼─────┐ │ Loki │ │ Suricata │ │ Logs │ │ (Optional)│ └───────────┘ └────────────┘ ``` ### 组件 | 服务 | 角色 | 端口 | |---|---|---| | **Traefik** | 反向代理、TLS、速率限制、LDAP 身份验证 | 80, 443 | | **Grafana** | 指标仪表板、告警 UI | 3000 | | **Prometheus** | 指标收集、告警评估 | 9090 | | **Loki** | 日志聚合 | 3100 | | **Alertmanager** | 告警路由、去重、通知 | 9093 | | **OpenSearch** | 安全事件、流量历史、日志分析 | 9200 | | **LibreNMS** | SNMP 网络发现、Syslog、计费 | 80 | | **ntopng** | NetFlow/sFlow/IPFIX、DDoS 检测 | 3000 | | **MariaDB** | LibreNMS 数据库 | 3306 | | **Redis** | 缓存和队列 | 6379 | ### 支持的 Flow 协议 | 协议 | 端口 | 设备 | |---|---|---| | NetFlow v5/v9 | 2055 UDP/TCP | Cisco、Juniper、MikroTik、Linux (softflowd) | | IPFIX | 4739 UDP/TCP | Cisco、Arista、Fortinet | | sFlow | 6343 UDP | Arista、Fortinet、OPNsense | ## 快速开始 ### 前置条件 - Docker 24.0+ & Compose v2.20+ - Ubuntu 22.04+ / Debian 12+ / Rocky Linux 9+ - 配置了泛域名 DNS 指向您的 NOC 服务器的域名 - 4+ CPU 核心,16GB+ RAM,200GB+ SSD ### 安装 ``` # Clone 仓库 git clone https://github.com/samsesh/OpenHostingNOC.git cd OpenHostingNOC # 配置环境 cp .env.example .env nano .env # Set DOMAIN, passwords, tokens # 运行自动安装 sudo ./scripts/install.sh ``` 安装程序将: 1. 创建目录结构 2. 拉取所有 Docker 镜像 3. 启动所有服务 4. 初始化 LibreNMS 5. 提供访问 URL ### 安装后 ``` # 检查一切是否正常 ./scripts/healthcheck.sh # 查看服务状态 docker compose ps # Follow logs docker compose logs -f ``` ### 访问 URL 部署完成后,通过以下地址访问您的仪表板: | 服务 | URL | 身份验证 | |---|---|---| | Grafana | `https://grafana.$DOMAIN` | LDAP | | LibreNMS | `https://librenms.$DOMAIN` | LDAP | | ntopng | `https://ntopng.$DOMAIN` | LDAP | | Prometheus | `https://prometheus.$DOMAIN` | LDAP | | Alertmanager | `https://alertmanager.$DOMAIN` | LDAP | | OpenSearch Dashboards | `https://dashboards.$DOMAIN` | admin + 密码 | ## 截图
NOC Overview Dashboard Security Dashboard
NOC Overview Security Dashboard
Traffic & Bandwidth Docker Monitoring
Traffic Bandwidth Docker
*注意:部署后将截图添加到 `docs/images/` 目录中。* ## 使用场景 ### 🏢 托管提供商 NOC - 监控数百台服务器和数以千计的客户 IP - 跟踪每位客户的带宽使用量以进行计费(第 95 百分位) - 检测并针对针对您的基础设施的 DDoS 攻击发出告警 - 使用 Ping/延迟探测进行 SLA 监控 ### 🌐 ISP 网络运维 - 监控 BGP 会话、OSPF 邻居、接口利用率 - 从核心路由器收集 NetFlow 用于流量分析 - 通过 Oxidized 为所有网络设备进行配置备份 - 来自 Suricata 和 ntopng 的安全事件关联 ### 🏭 企业 IT 运维 - 跨 Linux/Windows/VMware/Proxmox 的统一监控 - 使用 Loki 进行集中式日志记录 - 使用 cAdvisor 进行容器监控 - 通过 LDAP 实现 RBAC 以进行团队访问控制 ## 文档 完整文档位于 `docs/` 目录和 GitHub Wiki 中: | 主题 | 文档 | Wiki | |---|---|---| | 安装指南 | [docs/installation](docs/installation/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/Installation) | | 配置 | [docs/configuration](docs/configuration/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/Configuration) | | NetFlow 示例 | [docs/configuration/netflow-examples.md](docs/configuration/netflow-examples.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/NetFlow-Examples) | | 升级指南 | [docs/upgrade](docs/upgrade/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/Upgrade) | | 备份与恢复 | [docs/backup](docs/backup/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/Backup-Restore) | | 故障排除 | [docs/troubleshooting](docs/troubleshooting/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/Troubleshooting) | | 高可用性 | [docs/ha](docs/ha/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/High-Availability) | | 扩展 | [docs/scaling](docs/scaling/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/Scaling) | | 安全 | [docs/security](docs/security/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/Security) | | 灾难恢复 | [docs/disaster-recovery](docs/disaster-recovery/README.md) | [Wiki](https://github.com/samsesh/OpenHostingNOC/wiki/Disaster-Recovery) | ## 脚本 | 脚本 | 用途 | |---|---| | `scripts/install.sh` | 完整安装所有服务 | | `scripts/update.sh` | 支持回滚的服务更新 | | `scripts/backup.sh` | 备份所有配置、数据库、卷 | | `scripts/restore.sh` | 从任意备份中恢复 | | `scripts/healthcheck.sh` | 全面的系统健康检查 | | `scripts/cert-renew.sh` | 手动触发 TLS 证书续订 | | `scripts/db-optimize.sh` | MariaDB/OpenSearch 索引优化 | | `scripts/cleanup.sh` | 删除旧数据、日志、Docker 生成物 | | `scripts/logrotate.sh` | 非 Docker 服务的日志轮转 | ## 告警 ``` Emergency ──── Telegram ──── Discord (@everyone) ──── Slack (@channel) ──── Email ──── Webhook Critical ───── Telegram ──── Discord ──── Slack ──── Email ──── Webhook Warning ────── Telegram ──── Email (digest) Security ───── Telegram ──── Email (dedicated security channel) Maintenance ── Silenced via Alertmanager ``` ## 安全 - **TLS 1.3**,具有强密码套件,HSTS 预加载 - 所有服务均采用 **LDAP/AD** 身份验证 - **速率限制**(每个 IP 100 req/s) - **安全标头**(CSP、X-Frame-Options 等) - **网络分段** — 6 个隔离的 Docker 网络 - 具有资源限制的**非 root 容器** - 用于 SSH 暴力破解防护的 **Fail2Ban** - **Suricata** 可选 IDS/IPS,具有 OpenSearch 导出功能 - 具备 S3 异地同步的**自动备份** ## 性能规格 | 容量 | RAM | 存储 | OpenSearch 节点 | |---|---|---|---| | 1 Gbps | 16 GB | 1 TB | 1 | | 10 Gbps | 48 GB | 4 TB | 3 | | 25 Gbps | 96 GB | 10 TB | 3 | | 40 Gbps | 192 GB | 20 TB | 3+ | | 100 Gbps | 384 GB+ | 40 TB+ | 5+ | ## 技术栈 ``` Traefik 3.7 → Reverse Proxy Grafana 11 → Dashboards Prometheus 3.13 → Metrics Loki 3.8 → Logs OpenSearch 2.19 → Search & Analytics LibreNMS 26.6 → Network Monitoring ntopng (latest) → Traffic Analysis MariaDB 11 → SQL Database Redis 7 → Cache Alertmanager → Alert Routing cAdvisor 0.60 → Container Metrics Suricata 7 → IDS/IPS (optional) ``` ### 开发 ``` # 以开发模式启动 docker compose up -d # 查看日志 docker compose logs -f # 更改 config 并重新加载 docker compose restart ``` ## 许可证 MIT 许可证 — 有关详细信息,请参阅 [LICENSE](LICENSE)。 ## 支持 - [GitHub Issues](https://github.com/samsesh/OpenHostingNOC/issues) - [讨论区](https://github.com/samsesh/OpenHostingNOC/discussions) ## 捐赠 如果您觉得这个项目有用,请考虑支持开发: - **捐赠页面**:[donate.samsesh.net](https://donate.samsesh.net)
标签:Docker, Grafana, Metaprompt, 基础设施监控, 安全防御评估, 搜索引擎查询, 版权保护, 网络运营中心, 自定义请求头, 请求拦截