ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

NetWatch对接Prometheus教程:daemon导出/metrics指标,低基数设计轻松接入Grafana

NetWatch对接Prometheus教程:daemon导出/metrics指标,低基数设计轻松接入Grafana NetWatch对接Prometheus教程daemon导出/metrics指标低基数设计轻松接入Grafana【免费下载链接】netwatchReal-time network diagnostics in your terminal. One command, zero config, instant visibility.项目地址: https://gitcode.com/gh_mirrors/netwatc/netwatchNetWatch 是一款终端里的实时网络诊断工具一条命令即可零配置查看网络流量、延迟与丢包。它的netwatch daemon内置了 Prometheus 导出器开启--metrics参数后NetWatch 会在本地暴露/metrics和/healthz两个端点把接口吞吐、网关/DNS 延迟、连接数等聚合指标以标准 Prometheus 文本格式输出可被 Prometheus、Grafana、VictoriaMetrics 直接抓取无需任何胶水代码。为什么把 NetWatch 接入 PrometheusNetWatch 的 TUI 界面适合人肉盯着看但在生产环境中网络指标最终都要进监控大盘、配告警、留历史。好消息是 NetWatch 官方已经解决了这个问题零依赖导出器是手写的最小化 HTTP 监听器没有引入任何 Web 框架标准格式完全遵循 Prometheus exposition format 0.0.4指标命名与单位符合 Prometheus 基础单位约定_bytes、_seconds、_ratio、_total约定端口默认监听127.0.0.1:9464这正是 OpenTelemetry Prometheus 导出器的惯例端口低基数设计只导出聚合信号刻意把高基数的每流数据SNI/JA4/进程级取证排除在 metrics 之外避免指标基数爆炸TUI 界面能看到的信号metrics 端点里基本都有对应项三步开启 NetWatch 的 /metrics 导出第一步以 daemon 模式启动并开启 metrics# 默认端点 127.0.0.1:9464仅回环不对外暴露 netwatch daemon --metrics如需自定义监听地址例如让同机的 Prometheus 抓取其他接口netwatch daemon --metrics-addr 0.0.0.0:9464 # 或通过环境变量 NETWATCH_METRICS_ADDR0.0.0.0:9464 netwatch daemon⚠️ 安全提示默认只绑定 loopback这是刻意设计。只有确认网络边界可信时才应绑定0.0.0.0。第二步验证端点可用curl http://127.0.0.1:9464/metrics # Prometheus 文本格式指标 curl http://127.0.0.1:9464/healthz # 存活探针返回 200 ok第三步配置 Prometheus 抓取在 Prometheus 的prometheus.yml中加入scrape_configs: - job_name: netwatch static_configs: - targets: [127.0.0.1:9464]重载配置后Grafana 添加该 Prometheus 为数据源即可开始建图。整个接入过程没有中间件、没有 exporter 转换层——这就是零胶水接入。NetWatch 导出哪些指标完整清单指标分四类全部为低基数聚合信号指标类型说明netwatch_upgaugeagent 存活标记恒为 1netwatch_collectors_okgauge采集器健康度线程 panic 时为 0建议告警netwatch_build_info{version}gaugeagent 版本标签netwatch_interface_receive_bytes_total{interface}counter每接口 RX 字节总量netwatch_interface_transmit_bytes_total{interface}counter每接口 TX 字节总量netwatch_interface_receive_packets_total{interface}counterRX 包数netwatch_interface_transmit_packets_total{interface}counterTX 包数netwatch_interface_receive_errors_total{interface}counterRX 错误netwatch_interface_transmit_errors_total{interface}counterTX 错误netwatch_interface_receive_drops_total{interface}counterRX 丢包netwatch_interface_transmit_drops_total{interface}counterTX 丢包netwatch_interface_receive_bytes_per_second{interface}gauge当前 RX 速率netwatch_interface_transmit_bytes_per_second{interface}gauge当前 TX 速率netwatch_gateway_rtt_secondsgauge到默认网关的 RTTnetwatch_gateway_loss_ratiogauge网关丢包率0–1netwatch_dns_rtt_secondsgauge到主 DNS 的 RTTnetwatch_dns_loss_ratiogaugeDNS 丢包率0–1netwatch_connectionsgauge当前跟踪连接总数netwatch_tcp_connections{state}gauge按状态计数的 TCP 连接time_wait、close_waitnetwatch_policy_violations_total{process}counter每进程出站策略违规数低基数设计为什么指标里没有进程和 SNI这是 NetWatch metrics 导出器最值得称道的设计决策。每流取证数据SNI、JA4 指纹、进程级归因天然高基数——每台机器的进程名、访问域名都不同如果把这些做成指标标签时间序列数量会随时间线性膨胀最终造成 Prometheus 存储成本和查询性能的双重灾难业内俗称 cardinality bill shock。NetWatch 的处理方式metrics 只留聚合接口级、链接健康、连接状态计数标签维度固定且有界出站策略违规例外受控netwatch_policy_violations_total{process}看似按进程打标但只有显式声明在egress-policy.toml中的进程才会出现基数天然有界高基数据走事件流每流取证留给未来的 flow-event/OTLP 流已在路线图上与指标完全分离这意味着你可以放心地把 NetWatch 指标放进 Prometheus 长期保留不用担心基数失控。Grafana 快速建图4 块面板覆盖网络健康接入数据源后推荐先建这 4 块面板覆盖最常见的排障场景吞吐面板rate(netwatch_interface_receive_bytes_total[5m])与rate(netwatch_interface_transmit_bytes_total[5m])画面积图一眼看清带宽趋势链路健康面板netwatch_gateway_rtt_seconds、netwatch_dns_rtt_seconds折线图配netwatch_gateway_loss_ratio阈值告警如 0.05持续 5mTCP 状态面板netwatch_tcp_connections{stateclose_wait}突增通常意味着应用层连接泄漏是排障利器Agent 存活面板netwatch_up 0或netwatch_collectors_ok 0触发 critical 告警agent 静默挂掉也能被发现用 /healthz 接入 systemd / K8s 存活探针/healthz是刻意提供的存活探针K8s liveness / systemd。生产部署时仓库自带了 systemd 单元文件 packaging/systemd/netwatch.service已配置Restarton-failure和最小权限CAP_NET_RAW CAP_BPF CAP_PERFMON Landlock 沙箱。注意一个细节/healthz只回答进程活着吗而采集器降级要通过netwatch_collectors_ok指标观察——即使进程存活某个采集线程 panic 也会让该指标变为 0。所以告警规则建议两条都配# 示例告警规则 - alert: NetWatchAgentDown expr: netwatch_up 0 - alert: NetWatchCollectorDegraded expr: netwatch_collectors_ok 0深入源码与文档完整指标说明与抓取配置docs/observability-export.md导出器实现快照渲染、转义、路由src/metrics.rs生产部署单元packaging/systemd/netwatch.service变更日志中的导出器介绍CHANGELOG.md常见问题 FAQQ--metrics报错 metrics options require daemon modemetrics 参数只在 daemon 模式可用请确保命令形如netwatch daemon --metrics而非单独写netwatch --metrics。Q--metrics和--metrics-addr能同时用吗不能CLI 会拒绝冲突的选项二者选其一。Q绑定失败会怎样导出器是尽力而为的设计绑定失败只记录 warning 日志不会拖垮整个 daemonNetWatch 主体功能不受影响。Q能在 TUI 模式下开 metrics 吗目前仅 daemon/agent 模式支持TUI 导出在路线图上。小结NetWatch 把终端网络诊断和可观测性生态之间的桥修得非常直一个--metrics开关标准 Prometheus 格式低基数聚合设计外加存活探针和现成的 systemd 单元。从启动 daemon 到 Grafana 出图全程只需改一段 scrape 配置——这也是把 NetWatch 纳入主机监控体系成本最低的方式。【免费下载链接】netwatchReal-time network diagnostics in your terminal. One command, zero config, instant visibility.项目地址: https://gitcode.com/gh_mirrors/netwatc/netwatch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表