GOST Manager 监控实战:用零依赖 SQLite 本地监控轻松守住你的隧道服务器 GOST Manager 监控实战用零依赖 SQLite 本地监控轻松守住你的隧道服务器GOST Manager是一款基于菜单驱动的 Bash 运维工具用于在 Ubuntu 服务器上安装官方 GOST 并管理多路 Direct Mode 隧道。它内置的Monitoring Lite监控模块采用SQLite作为本地历史存储纯 Python 标准库实现、零第三方依赖让你无需部署任何额外组件就能在终端里看清隧道服务器的实时负载、网络吞吐与 GOST 服务健康度。下面这篇 GOST Manager 监控实战教程从原理到日常操作带你一步步用好这个零依赖的 SQLite 本地监控体系。监控原理本地、可选、不碰流量Monitoring Lite 只回答四个有边界的问题见 docs/MONITORING-V0.2.md主机是否资源受限CPU、内存、磁盘、文件句柄外部或回环网络计数器是否异常当前的 Direct Mode GOST 服务与监听是否健康采集器本身是否最新、可靠关键设计原则本地数据库就在本机/var/lib/gost-manager/metrics.sqlite3不依赖任何外网、NGINX 或远程探针。可选不开监控完全不影响隧道运行。只读监控模块无法启动、停止、重启或改配任何 GOST 流量服务见 monitoring/。快速上手一条命令打开监控GOST Manager 安装时会自动部署监控组件并启动采集服务gost-monitor-collector.service。日常查看只需sudo gost-manager进入主菜单后选择10) Monitoring即打开监控工作流1) Live resources 2) Last 10 minutes 3) Last 30 minutes 4) Last 1 hour 5) Services and tunnels 6) Collector status 7) Advanced tools 0) Back除了菜单还提供了直连命令适合脚本化或 SSH 快捷查看gost-monitor snapshot gost-monitor live gost-monitor summary --window 10m gost-monitor-admin status gost-monitor-admin maintenance六大监测对象一览gost-monitor snapshot的输出固定包含HOST / NETWORK / TCP/CONNECTIONS / GOST SERVICES / TUNNELS / COLLECTOR六个区块覆盖范围如下区块关注内容HOST 主机CPU 与派生百分比、1/5/15 分钟负载、内存与 swap、根/监控文件系统、diskstats、系统文件句柄容量NETWORK 网络每网卡 RX/TX 字节与包速率、错误与丢包、接口状态/速率/MTU、外部与回环分别统计TCP/CONNECTIONS 连接ESTABLISHED、SYN-SENT、SYN-RECV、CLOSE-WAIT、TIME-WAIT、重传、监听丢弃与溢出、可用时的 conntrack 占用GOST SERVICES 服务全部gost-iran-N/gost-kharej-N服务的活跃状态与主 PID、聚合 CPU/RSS/进程数/线程/FD、监听器与已建立套接字、重启计数TUNNELS 隧道各编号 Iran/Kharej 配置的端口、Kharej 端允许的 Iran 源、观测到的监听器与当前连接数COLLECTOR 采集器最近采样时间与数据龄、采集/检查点耗时、错过期限、源错误、数据库大小、负载丢弃状态其中 conntrack 属于可选能力主机缺少对应 sysctl 文件时标记为conntrack: unsupported不会计入错误、也不拉低健康度采集器从不加载内核模块见 docs/MONITORING-V0.2.md。采集节奏分级采样高负载下自动降载采集器按「快—中—慢」三档节奏工作默认值见 packaging/monitoring.env周期默认间隔采集内容Fast 快速20 秒CPU、内存、负载、服务状态、进程身份TCP 网络60 秒网络/协议计数器 每周期一次共享的完整ss快照Slow 慢速120 秒FD 枚举、socket 归属、cgroup/进程细节、磁盘/文件系统Maintenance 维护1800 秒聚合、保留期清理、WAL 检查点当某次采集错过期限时内置的负载丢弃load shedding机制会暂停重量级任务、保留 Fast 指标继续采样并在连续 3 个准时周期后自动恢复——全程不建无界队列。该特性可用GOST_MONITOR_LOAD_SHEDDING0关闭机制实现见 monitoring/scheduler.py。零流量依赖监控坏了也不会断流这是 Monitoring Lite 最重要的安全边界采集服务与 GOST 隧道服务之间不存在Requires、PartOf、BindsTo等任何生命周期关系也没有任何 stop/restart/reload 调用见 packaging/gost-monitor-collector.service#L4。换句话说采集器崩溃、历史库损坏、维护失败、甚至彻底卸载监控都不会停掉 Direct Mode 流量。同时采集服务自带系统级加固低 CPU/IO 优先级Nice10、IOSchedulingClassidle、NoNewPrivileges、ProtectSystemstrict、私有0700状态目录等。存储预算6 小时原始 24 小时汇总SQLite 采用 WAL 模式、busy timeout、事务与外键配合有界保留策略原始指标点6 小时分钟级汇总minute rollups24 小时结构化事件24 小时按代表性 Direct Mode 画像6 个 GOST 服务、当前 20/60/120 秒节奏估算组件估算大小原始指标表6h≈ 0.052 GiB分钟汇总表24h≈ 0.117 GiBcycles / samples / events / entities≈ 0.005 GiB索引与可复用页≈ 0.087 GiBWAL 与运维余量≈ 0.052 GiB合计保守≈ 0.312 GiB 官方建议为代表性画像至少预留 1 GiB磁盘若服务数量、保留时长或采集节奏更高需重新核算见 docs/MONITORING-V0.2.md。指标质量每个数字都有可信标签每条指标都带一种语义质量标签语义定义见 monitoring/metric_semantics.pyexact 精确来自权威本地源的直接观测derived 派生由精确计数器与单调时钟推算estimated 估计有用但非权威unavailable 不可用源无法提供有效观测速率一律用单调计数器增量计算因此计数器重置、采样间隙、进程替换或接口抖动都不会产生负速率或假尖峰。另外一个安全细节用户名、密码、令牌等凭据永远不会进入指标、事件、实体元数据、采集器状态或导出文件——隧道凭据只存在于/etc/gost/*.env的 0600 私有文件里。高级工具高流量预设与数据导出Advanced tools提供明细、事件、自定义汇总、JSON/CSV 导出、诊断、维护、清空与采集器控制等工作流命令入口见 monitoring/admin_cli.py、查询引擎见 monitoring/query_engine.py。高流量预设可在高并发场景一键收紧采集节奏展示当前值 → 原子备份 → 校验 → 带 fsync 原子写入且只重启采集器可选绝不下发任何 GOST 服务命令gost-monitor-admin apply-preset high-traffic --restart-collector配置校验与安全解析逻辑位于 monitoring/config.py配置被当作严格KEYVALUE数据解析从不被 shell source 或执行。常见问题 FAQQ监控会占用隧道带宽或影响转发吗不会。监控完全本地、只读不进流量路径采集器高优先级被刻意压低低 Nice idle IO且错过期限会自动降载。Q历史数据会不会无限撑爆磁盘不会。6 小时原始 24 小时分钟汇总 24 小时事件的保留策略会自动滚动清理gost-monitor-admin maintenance会在单事务中执行有界的聚合/保留并做 WAL 检查点。Q不想要监控了能单独移除吗可以。安全卸载脚本 uninstall.sh 将监控组件与隧道、凭据、GOST 二进制逐项独立确认移除监控只删监控本身不动任何流量文件与服务。Q支持哪些系统与架构Ubuntu 22.04 / 24.04 LTSamd64与arm64架构。小结GOST Manager 的 Monitoring Lite 用零依赖的 SQLite Python 标准库把「主机—网络—TCP—GOST 服务—隧道—采集器」六层状态收进同一个本地数据库一条gost-monitor snapshot看清当前状态10/30/60 分钟窗口回看趋势监控故障永远不会牵连隧道流量。对于在 Ubuntu 上运维 GOST Direct Mode 隧道服务器的你这套 SQLite 本地监控方案就是最省心的「守夜人」——无需任何额外组件数据全程留在本机。监控模块源码monitoring/架构说明docs/ARCHITECTURE-V0.2.md监控设计文档docs/MONITORING-V0.2.md使用指南docs/USAGE.md运维手册docs/OPERATIONS.md采集器服务单元packaging/gost-monitor-collector.service创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考