Go语言网络监控之路_Prometheus

Github 2024-09-26 Go开源项目日报 Top10 根据Github Trendings的统计,今日(2024-09-26统计)共有10个项目上榜。 阅读详情

Prometheus是一个开源的完整监控解决方案,形成了基于集中化的规则计算、统一分析和告警。总之Promethus是一个利器,其他知识可以参考首页分享的链接去了解Prometheus更多信息

时间序列

我的理解是某个时间点T去拉取对应的Metrics而产生的值Value(T0,V0),根据不同拉取间隔,从而形成一连串的时间点与数据的结合,从而形成时间序列数据库。

Prometheus架构

prometheus架构

上面基本就可以分为四大块

  • Metrics相关模块( Pushgateway,Exporters)
  • Service Discovery (监控目标发现模块)可以采用静态配置、动态
  • 数据存储方面(上面推荐使用SSD),支持的方式:本地存储、远程存储。现在暂时我们采用的是本地存储方案,后续改进我在分享对应的技术
  • PromQl (查询语言,与关系型Mysql中sql类似)

数据才是重点,有兴趣可以参考官网的关于存储的解释
存储

应用

下面我直接分享下我们这边针对网络的应用场景,这边现在部署单机Prometheus。

下面是我们这边 Prometheus的启动脚本

#!/bin/sh
/bankapp/prometheus/prometheus  --config.file=/bankapp/prometheus/prometheus.yml --web.enable-lifecycle  --storage.tsdb.retention=120d > /bankapp/prometheus/logs/prometheus.log   2>&1 &

由于我们这边场景没有什么大流量,太多监控目标,暂时我们相当于把Prometheus充当数据库的用户,上面我们设置数据保留120 天.
–web.enable-lifecycle 这个数据为了我们可以通过直接通过 管理端Api直接重启Prometheus服务器
重启脚本

curl -X POST http://127.0.0.1:9090/-/reload

下面相关管理API接口
在这里插入图片描述

监控目标

Promethues中是支持多种监控目标发现机制,有静态配置、服务发现机制。暂时我们采用的是 Consul的服务发现,后续我会分享关于Consul中服务发现与 Prometheus相结合

Grafana展示监控数据

这边采用Grafana 为7.5.5版本展示Prometheus中监控数据

基于Go的K8S Pod TCP状态监控导出工具实战 简介:在Kubernetes集群中,网络状态监控对系统稳定性至关重要。是一款使用Go语言开发的轻量级监控工具,可实时采集并导出Pod的TCP连接状态指标(如ESTABLISHED、CLOSE_WAIT、TIME_WAIT等),帮助运维人员分析网络行为、识别潜在问题。该工具通过K8S API获取数据,并以Prometheus兼容格式暴露指标,支持与主流监控系统无缝集成。结合告警机制与多维度分析,助力提升服务性能与系统可靠性。 阅读详情

相关推荐

电源完整性仿真流程梳理

可根据仿真流程导图,一步一步的去设置完成仿真。仿真的关键,在于对电路回路的理解以及所放置的电压源与电流的合理性,对于去耦电容的选择,则需要根据谐振频率计算,从而选取有效滤波的容值。

csy17729158342的博客 3442

go语言批量检测代理ip是否可用

在做爬虫的时候,经常会用到代理ip,然而代理ip也会经常会去检测是否有效,所以假设我在redis中有如下几个ip: 下面需要做的是使用go去读取出来,然后依次去请求如下地址: http://icanhazip.com 如果有成功返回ip则表示此代理ip有效,相关的参考代码如下: package main import ( "encoding/json" "fmt" ...

全国10大躺平艺术家之一,世界10大懒人之二,宇宙百百万亿尘埃之一 8586

避坑指南:将大华官方Java SDK无缝迁移到SpringBoot 2.x项目的完整流程

本文详细介绍了如何将大华官方Java SDK无缝迁移到SpringBoot 2.x项目,重点解决内存管理、连接池设计和异步处理等核心问题。通过设备连接池化、异步非阻塞接口改造和内存管理优化,实现刷卡、刷脸等认证功能的高效整合,提升Web服务的稳定性和性能。

weixin_42557830的博客 418

go lang编程练习 TCP 扫瞄器

端口扫描 测试结构体 package TestPort import ( "errors" "fmt" "net" "sort" "strconv" "strings" "sync" ) /* 功能需求: 尽可能在设备承受负载情况下 尽快的TCP扫描 指定ip 下的端口是否打开 0. 根据 go 下边的net 包进行去 Dial 方法就去测试 1. 使用 goroutine 并发模式去遍历。 2. 使用channel 保证线程之间的操作安全 3. 使用flag 包进行接收参数信息,

weixin_43542114的博客 217

一文详解本地知识库RAG(检索增强):LangChain + Hugging Face 三件套 + 本地大模型 + MCP 协议 + Chroma + Agent 全流程实战

模型上下文协议(MCP)是 Anthropic 推出的开放标准,基于 JSON-RPC 2.0,为 AI 应用与外部工具/数据源之间提供统一的双向通信协议,被称为“AI 应用的 USB-C”。LangChain 是一个围绕 LLM、提示模板(Prompts)、记忆(Memory)、链(Chains)、工具(Tools)和代理(Agents)等组件打造的开源框架,旨在简化复杂自然语言应用的开发。:任意可调用的功能或服务(API、数据库查询、本地函数等),由 Agent 或 Chain 在推理过程中调用。

weixin_41645791的博客 1425

LangGraph实战:如何用循环机制优化你的LangChain Agent工作流

本文详细介绍了如何使用LangGraph的循环机制优化LangChain Agent工作流,解决传统AgentExecutor在强制工具调用、动态提示调整和多阶段循环中的局限性。通过状态机和显式状态图设计,LangGraph提供了更精准的流程控制能力,适用于复杂AI应用场景。

weixin_30316097的博客 489

Golang 实现http协议的心跳检测程序

本文介绍如何使用Golang实现心跳程序。实现心跳程序,其他应用可以简单集成。客户端程序通过HTTP协议进行检测,返回当前程序状态、版本ID以及已运行时间。

neweastsun的专栏 2162

从Mule ESB到Apache Camel:手把手教你设计一个轻量级企业集成框架的‘心脏’

本文深入探讨了从Mule ESB到Apache Camel的轻量级企业集成框架设计实践,对比了两者在协议支持、消息处理能力和部署灵活性等方面的差异。通过实际代码示例和性能优化技巧,帮助开发者构建高效的核心模块,适用于现代微服务架构下的系统集成需求。

weixin_28738165的博客 375

一般性网络错误请检查网络文档_【语言实践】Go语言文档自动化之go-swagger

为什么需要文档自动化?技术人员对自动化的认知主要来自于“惰性和惯性”,可以代码实现的事情就不要手工编辑,“我们不是设计师”,我们追求效率,美不美是排第二位的。so,你也会明白为啥需要文档自动化吧,毕竟除了coding,技术人员主要工作就是文档,特别是在跨团队沟通的时候,在需要把技术内容输出团队之外,或者输出自己之外的人员时候。就需要一个优雅的方式,高效的方式,以及可以炫耀的方式,所以文档自动化应运...

weixin_39901518的博客 424

思科网络进阶——多生成树协议(MSTP)配置的一课一得

三、实验拓扑1)设计一个网络架构,要有核心层和接入层,都使用思科交换机。2)企业有4个部门,要求这四个部门都可以上网,但分属不同的VLAN中,这样今后可以做其它安全策略以确保网络安全,这些策略如今后学到的访问控制列表ACL。3)网络架构的设计要具有冗余,防止一条线路或一台设备终端导致的业务中断。4)由于硬件冗余而产生的环路要处理好,也就是要在逻辑上(或者说通过配置)防止物理环路的产生。5)不能因为防止物理环路而导致某端口没有流量,这样浪费端口资源及设备间互联的带宽资源。

zhu52010的博客 3399

西门子828D/840DSL数控机床产量数据采集实战:手把手教你绕过授权限制(附Demo源码)

本文详细介绍了西门子828D/840DSL数控机床产量数据采集的实战技术,包括绕过授权限制的替代方案和实现方法。通过分析通信协议、配置参数和数据处理,提供了一套高效且合规的数据采集解决方案,并附有Demo源码,帮助技术人员快速上手。

weixin_28278377的博客 763

【golang】9、pprof 监控与性能调优

golang 用 pprof 来监控运行时状态,具体可见官网,其前身为,开启 pprof 后,程序会定时采集自身的堆栈、cpu、mem 信息,并形成数据报告。

呆呆的猫的博客 5279

解决微信小程序长页面滚动到底部点击底部的输入框后输入框漂浮且页面滚动到顶部

一、问题描述 项目中有一个长页面上部展示部分信息下部为信息录入,页面长度为三屏幕(不同手机屏幕大小略有差异),当滚动到第二屏或者第三屏去填写信息时点击输入框后输入框漂浮起来了并且页面向上滚动了一段距离,回到了第一屏中展示的内容。效果如图。 滚动到第二屏,证件号输入。 点击输入框 可以看到证件号输入框漂浮了起来并且页面滚动到了第一屏展示的内容。 注意:小程序是2018年上线,在2020年4月份之前该页面从未出现过这种现象。推测:微信的后续更新中对微信小程序基础库进行了重构,导致点击输入框后页

仰望星空的代码 3261

UniFi Exporter:监控Ubiquiti网络设备的利器

UniFi Exporter:监控Ubiquiti网络设备的利器 项目介绍 unifi_exporter 是一个为Ubiquiti UniFi控制器API和UniFi设备提供Prometheus导出器的开源项目。通过这个项目,用户可以轻松地将UniFi设备的监控数据集成到Prometheus监控系统中,从而实现对网络设备的全面监控和管理。 项目技术分析 unifi_exporter 使用Go语言开...

gitblog_01028的博客 990

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Go语言网络监控之路

文章目录前言监控相关项目Go语言入门总结 前言 本人是从Java转向Go语言开发,最近一直开发网络相关的技术,主要监控的目标终端设备、网络设备(交换机、路由器、Aruba)等 监控相关项目 prometheus grafana blackbox_exporter snmp_exporter alertmanager fping-exporter network_exporter kafka consul pushgateway 以上是大概的涉及项目,后续也会分享本人基于Go开发的监控项目。基本思路将

str0708的博客 932

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【亲测免费】 SNMP Exporter for Prometheus 安装与配置完全指南

**SNMP Exporter for Prometheus** 是一个推荐使用的工具,用于将简单网络管理协议(SNMP)数据转换成 Prometheus 可以读取的格式。它特别适用于监控网络设备如交换机、接入点或路由器等。项目基于 **Go** 编程语言开发,确保了高效且跨平台的执行能力。 ## 关键技术和框架 - **SNMP**:用于从网络设备收集信息的标准协议。 - **Prometh...

gitblog_07464的博客 2413

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SmartPing 开源网络质量监控工具教程

SmartPing 开源网络质量监控工具教程 smartping综合性网络质量(PING)检测工具,支持正/反向PING绘图、互PING拓扑绘图与报警、全国PING延迟地图与在线检测工具等功能 项目地址:https://gitcode.com/gh_mirrors/smar/smartping 项目介绍 SmartPing 是一款开源、高效、便捷的网络质量监控工具,由 Go 语言编写,支持跨平台...

gitblog_00646的博客 1594

NGINX Prometheus Exporter常见问题解决方案

NGINX Prometheus Exporter是一个用于监控NGINX及NGINX Plus的开源工具,它能够从单个NGINX或NGINX Plus实例中抓取指标,并将其转换成Prometheus所使用的指标类型,最终通过HTTP服务暴露给Prometheus进行收集。此项目采用Go语言编写,遵循Apache-2.0许可证。 ## 新手使用注意事项与解决方案 ### 注意事项1:正确配置N...

gitblog_07672的博客 700

smokeping_prober源码解析:Go语言实现高性能ICMP探测的技术细节

smokeping_prober是一个基于Prometheus风格的ICMP探测工具,采用Go语言开发,能够提供高性能的网络延迟和可用性监控能力。本文将深入解析其核心技术实现,包括ICMP探测机制、并发控制、指标收集等关键环节,帮助开发者理解如何在Go中构建高效的网络探测工具。 ## 项目架构概览 smokeping_prober的代码结构清晰,主要由以下几个核心文件构成: - **main

gitblog_00749的博客 1141

SNMP Exporter代码实现原理:深入理解Go语言网络监控框架的核心机制

SNMP Exporter是Prometheus生态中一款基于Go语言开发的网络监控工具,它通过SNMP协议从网络设备采集数据并转换为Prometheus可识别的指标格式。本文将深入剖析其核心实现原理,帮助开发者理解Go语言在网络监控领域的高效应用。 ## 一、整体架构设计:模块化的分层结构 SNMP Exporter采用清晰的分层架构,主要包含以下核心模块: - **配置层**:负责解析和

gitblog_00032的博客 971

探索高效网络流量监控:vFlow —— IPFIX/sFlow/Netflow 收集器

![vFlow Logo](docs/imgs/vflow_logo.png?raw=true "vFlow logo") **vFlow** 是一个基于纯 Go 语言编写的高性能、可扩展且可靠的 IPFIX、sFlow 和 Netflow 流量数据收集器。它集成了多种特性,旨在为你的网络运维提供强大的监控工具。 ## 项目介绍 vFlow 提供了 IPFIX、sFlow 和 Netflow

gitblog_00010的博客 1万+

Prometheus-Community Pro-Bing 项目常见问题解决方案

Prometheus-Community Pro-Bing 项目常见问题解决方案 项目基础介绍 Prometheus-Community Pro-Bing 是一个用 Go 语言编写的简单但强大的 ICMP echo (ping) 库。这个项目受到了 go-ping 和 go-fastping 的启发,提供了一个易于使用的接口来发送和接收 ICMP 数据包。Pro-Bing 可以用于网络诊断,监控系...

gitblog_00512的博客 853

【Prometheus】【Blackbox_exporter】深入理解Blackbox_exporter的 DNS 查询探针函数

通过对ProbeDNS函数的逐步解析,我们可以看到它的核心功能是执行 DNS 查询并通过 Prometheus 指标监控 DNS 请求的各个阶段。该函数不仅确保 DNS 查询的成功执行,还提供了多维度的监控数据,适合用于生产环境中的 DNS 服务监控和故障排查。

zhangshenglu1的博客 1641

router7安装教程:一步步配置你的Go语言家庭路由器

router7是一个完全用Go语言编写的小型家庭互联网路由器,作为gokrazy设备实现,提供DHCPv4、DHCPv6、DNS等服务,让你的家庭网络配置变得简单高效。 ## 📋 准备工作 在开始安装router7之前,请确保你已准备好以下物品和环境: - 一台兼容的硬件设备(如apu2c4) - 串行适配器(推荐usbcom1a) - 网络电缆 - 已安装Go环境的计算机 [![rou

gitblog_00583的博客 1042

推荐使用HAProxy Exporter for Prometheus:高效监控解决方案

???? 推荐使用HAProxy Exporter for Prometheus:高效监控解决方案 haproxy_exporterSimple server that scrapes HAProxy stats and exports them via HTTP for Prometheus consumption项目地址:https://gitcode.com/gh_mirrors/ha/hapr...

gitblog_01139的博客 971

go-ping与监控系统集成:如何实时监控网络连通性和延迟变化

go-ping是一款基于Go语言开发的轻量级网络连通性检测工具,它能够帮助开发者和运维人员快速实现ICMP ping功能,监控网络设备和服务的连通状态。本文将详细介绍如何将go-ping与监控系统集成,实现对网络连通性和延迟变化的实时监控,为网络故障排查和性能优化提供有力支持。 ## 一、go-ping简介:轻量级网络检测工具 go-ping项目提供了高效的ICMP ping实现,通过其核心文

gitblog_00642的博客 429
上一篇: glide install 在Windows 7 错误
下一篇: Go语言网络监控之路
疯信子To
博客等级 码龄14年 12粉丝 42原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值