关于prometheus:统一观测丨使用-Prometheus-监控-SNMP我们该关注哪些指标

简略网络管理协定SNMP(Simple Network Management Protocol)用于网络设备的治理。网络设备品种多种多样、不同厂商提供的治理接口(如命令行接口)又不雷同,这使得网络管理变得愈发简单。为解决这一问题,SNMP应运而生。SNMP作为广泛应用于TCP/IP网络的规范网络管理协定,提供了对立的接口,从而实现了不同品种和厂商的网络设备之间的对立治理。通过SNMP数据的监测数据,用户能够及时关注到网络设备的状态和异样变动。

SNMP 简介

随着网络技术飞速发展,网络设备数量成几何级数减少,使得网络管理员对设施的治理变得越来越艰难;同时,网络作为简单的分布式系统,其笼罩地区不断扩大,也使得对这些设施进行实时监控和故障排查变得极为艰难。网络设备品种多种多样,不同设施厂商提供的治理接口(如命令行接口)各不相同,这使得网络管理变得愈发简单。

为了应答这一场景,SNMP利用而生。作为广泛应用于TCP/IP网络的网络管理标准协议,SNMP反对网络管理系统,以监测连贯到网络上的设施是否有须要运维关注的状况。同时,SNMP采纳轮询机制,提供最根本的功能集,适宜小型、疾速、低价格的环境应用,而且SNMP以用户数据报协定(UDP)报文为承载,因此受到绝大多数设施的反对,同时保障治理信息在任意两点传送,便于管理员在网络上的任何节点检索信息,进行故障排查。

随着技术演进,SNMP协定相继衍生出三个版本:SNMPv1、SNMPv2c和SNMPv3。

  • SNMPv1

作为SNMP协定的最后版本,提供最小限度的网络管理性能。SNMPv1基于个人名认证,安全性较差,且返回报文的错误码也较少。

  • SNMPv2c

采纳个人名(community)认证,在SNMPv1版本的根底上引入了GetBulk和Inform操作,反对更多的规范错误码信息,反对更多的数据类型(Counter64、Counter32)。

  • SNMPv3

在安全性方面进行加强,提供了基于USM(User Security Module)的认证加密和基于VACM(View-based Access Control Model)的访问控制。SNMPv3版本反对的操作和SNMPv2c版本反对的操作一样。

目前,v1版本应用较少,个别应用v2c版本,如果对平安认证有需要,能够应用v3版本。

SNMP零碎组成

SNMP根本组件包含网络管理系统NMS(Network Management System)、代理过程(Agent)、被管对象(Managed Object)和治理信息库MIB(Management Information Base)。如图所示他们独特形成SNMP的治理模型,在SNMP的体系结构中都起着至关重要的作用。

  • NMS

Network Management System,网络管理系统,个别是各种网管软件,能够向agent查问/批改各种信息,也能够承受agent的被动推送,在咱们的场景中,就是snmp exporter,仅对agent做信息查问。

  • Agent

被治理设施上的一个代理过程,收集被治理设施的信息并汇报给NMS。

  • MIB

Management Information Base,是一个数据库,列出了被治理设施能够提供的各项数据,每项数据都对应一个惟一的OID。

  • Device

设施,理论的网络设备,包含交换机、路由器、防火墙、UPS、AP、软路由等等,只有反对SNMP,都能够视为一个网络设备。

  • Managed Object

被治理对象,一个设施蕴含至多一个被治理对象,可能是设施自身,也可能是某个硬件(一个网口),也可能是一些参数合集。

  • OID

Object ID,对象标识符,用于定位一个数据项。OID是一串数字,比方1.3.6.1.2.1.1示意system,数字是树形构造,左侧为根,右侧为叶,后面一截是由IANA调配的厂商标识符,前面就是各个厂商自定的,所以不同厂商设施的OID树差异很大。OID树结构参见下图。

  • MODULE

因为SNMP能够监控的设施和厂商多种多样,所以SNMP exporter中划分了很多module,比方网络设备的if_mib,软路由的ddwrt,paloalto_fw防火墙等等,一共有十几种,最罕用的就是if_mib。

SNMP Exporter

SNMP协定中用不同的OID辨别不同的状态数据,所以OID十分相似于Prometheus中的指标的概念,SNMP Exporter通过从Agent查问指定的OID数据,同时将数据映射到可读的指标上,实现SNMP数据到Prometheus指标的转换。SNMP Exporter就默认提供了十分丰盛的转换配置,大部分场景下用户无需额定配置即可将OID转换为可读的指标数据。

SNMP Metric 监控参考模型

SNMP Metrics采集

SNMP 能够帮忙运维人员以极为简略而无效的形式管理网络。首先,SNMP 帮忙运维人员收集网络上不同设施带宽使用量的信息。在进行故障排除的同时,更加疾速找出网络性能趋势或问题。SNMP采集到的数据都是来自设施提供,不同厂商的设施能够提供的数据不尽一致,SNMP Exporter尽可能多的提供兼容,默认配置中曾经蕴含了常见的各个厂商的OID映射,涵盖了市面上次要的厂家及其网络产品,可能满足绝大多数场景需要,详见Prometheus开源社区的相干文档。在以后版本中,咱们反对if_mibmodule的指标数据采集,更多module反对将依据需要状况陆续凋谢。

文档链接:https://github.com/prometheus/snmp_exporter/blob/main/snmp.ym

这里咱们常见的以思科16口交换机为例,次要指标包含:

SNMP监控大盘

咱们默认提供了SNMP Status和SNMP Interface Detail两个大盘,次要针对if_mib场景,监控网络流量等信息。

SNMP Status

次要展现设施的总体状态,包含设施运行时长,以后的流入/流出流量、出入流量总计、各个端口的的实时流量信息、流量变化趋势等。

SNMP Interface Detail

展现各个端口工作详情。包含端口状态、端口是否连贯、端口速率、MTU配置等,以及各种流量(单播/组播/多播等)的速率/包数量变动状况。

须要留神的是,SNMP Interface Detail大盘应用前,须要在Variable 中配置须要查看的DataSource。

SNMP告警规定

参考后面对各项次要指标的介绍,针对SNMP能够配置一下告警项:

  • Interface Throughput 达到 speed 的 80%
  • 出/入方向的丢包/Error数大于阈值
  • 出方向的Queue长度大于阈值
  • interface 数量变动

应用阿里云 Prometheus 监控 SNMP

装置SNMP监控在Prometheus for 容器服务实例中,SNMP曾经默认在集成核心中展现,用户能够在arms控制台 — 实例详情页 — 集成核心中找到入口。

点击SNMP图标,能够看到常见的指标列表和大盘缩略图,须要阐明的是,因为OID/MIB的复杂性,列出的只是一部分常见的指标信息。

点击+装置能够接入SNMP监控,您只须要填写exporter 名称和设施IP地址,即可疾速拉起一个SNMP exporter。其中的采集门路和采集距离,个别无需批改,放弃默认值即可。配置如下图:

点击确定后,会在您的ack集群中,arms-prom namespace下,新增一个名为snmp-exporter-snmp-test-1的deployment,并主动实现采集job的配置。此时您能够在arms控制台 — 实例详情页 — 服务发现 — Target中看到新配置的采集job。同时也能够点击集成核心 — SNMP图标 疾速浏览相干的Target/指标/大盘/告警/服务发现/Exporter等信息。

查看大盘

如果您须要查看SNMP相干大盘,能够从arms控制台 — 实例详情页 — 大盘列表中点选snmp_exporter疾速列出相干大盘,或者从集成核心中,点击SNMP图标,点击大盘标签页,也能够找到对应的dashboard。

配置告警

当您在集成核心装置SNMP监控时,曾经默认减少了snmp_exporter告警分组的相干规定,但未启用,您只须要简略批改参数并确认启用即可。

能够从arms控制台 — 实例详情页 — 告警规定 — 创立告警规定中进入规定新增页面,在其中告警分组抉择snmp_exporter告警值班并抉择您须要启用的告警规定,确认参数阈值并保留,即可实现告警规定的创立。

SNMP指标未采集的排查办法

SNMP Exporter自身的次要工作是指标映射,个别都能稳固运行,但SNMP指标个别都会波及到网络设备,呈现网络问题的概率较高。如果呈现指标采集不到的问题,能够参考如下的排查思路。

1.查看Prometheus Target状态,如果Target显示为Unhealthy状态,请排查snmp-exporterpod运行状态;如果Target状态失常,持续下一步。

2.查看snmp-exporterPOD 日志,确认日志中是否有报错信息,如果是网络问题都会在日志中有明确体现,能够依据报错领导排查。

3.如果日志中没有异样,同时只是某个SNMP指标缺失,其余SNMP指标能失常收集到,较大概率是因为设施的确没有这个指标,咱们能够应用snmpwalk工具帮助排查确认。

  • SNMP Exporter能采集到的数据,都能够通过snmpwalk获取到,很多Linux发行版默认不蕴含snmpwalk,须要先装置net-snmp-utils这个包。
  • 在能连贯到SNMP设施的机器上,应用snmpwalk获取设施原始数据。
  • 如果snmpwalk仍然未能获取到数据,须要向设施厂商确认是否提供此数据。

自建 Prometheus 与阿里云 Prometheus 监控的优劣比照

Prometheus作为目前最支流的可观测开源我的项目之一,曾经被泛滥企业所广泛应用。但在理论生产过程中,还是遇到各种各样问题,其中包含:

  • 因为平安、组织治理等因素,用户业务通常部署在多个互相隔离的 VPC,须要在多个 VPC 内都反复、独立部署 Prometheus,导致部署和运维老本高。
  • 每套残缺的自建观测零碎都须要装置并配置 Prometheus、Grafana、AlertManager 等组件,部署过程简单、施行周期长,并且每次降级都须要对每个组件进行保护。
  • 随着监控规模不断扩大,资源耗费呈非线性疾速减少,零碎可用性无奈失去保障。
  • 对于相干组件,自建 Prometheus 无奈实现一站式、全局视角的监控建设。
  • 开源分享的相干大盘不够业余,却少开箱即用的丰盛指标,不能帮忙用户更迅速的的理解网关的整体运行状况。

针对以上问题,阿里云Proemtheus监控进行了以下几个方面的优化:

一、性能强化&升高资源耗费,压降IT运维老本

为了进一步进行性能优化,阿里云Prometheus监控将Agent 部署在用户侧,保留原生采集能力同时, 尽量应用起码资源;通过采集存储拆散架构,进步整体性能;采集组件优化,晋升单正本采集能力,升高资源耗费;通过多正本横向扩大平衡合成采集工作,实现动静扩缩,解决开源程度扩大问题。采集/数据处理/存储组件反对多副版本,保障外围数据链路高可用;基于集群规模可间接进行弹性扩容;反对数据重传,彻底解决抛弃逻辑弊病,确保数据完整性与准确性。

同时,为了应答大规模数据、长时间区间的查问场景,通过DAG执行优化、算子下推,晋升大规模数据查问性能并反对长时间区间秒级查问;通过Global DataSource和Global View实现对多集群对立监控与跨集群聚合查问。在提供企业级能力强化同时,全方位升高企业应用Prometheus的IT运维老本。通过包年包月、按量付费等多种计费形式让费用收入与布局更加清晰与灵便,相较于开源版本节俭37%以上。

二、与阿里云支流云服务深度集成

云产品在各自控制台都提供本身产品的可观测性,但这些云产品的指标及看板散落在各控制台,且无奈进行精细化的指标数据利用。Prometheus服务提供云产品监控性能,将这些数据进行对立展示、查问、告警,为运维团队提供更加便捷的日常运维监控界面。

三、Grafana看板加强,让云服务监控更简略

想要更好、更疾速的出现相干指标图表,阿里云Prometheus监控预置Grafana组件,预置常见云服务、利用等看板模板,如利用实时监控服务ARMS、云监控CMS、日志服务SLS、阿里云Elasticsearch等云服务,提供各种云服务的数据源配置及预置大盘,实现各种可观测数据的对立展现。如容器、音讯队列Kafka等,进一步提供GrafanaPro大盘,帮忙运维进行更加精细化的指标观测。在预置看板之外,能够通过Grafana官网自在减少新插件,增加新的可视化模板以及数据源,进一步满足个性化运维监控需要。

结语

阿里云Prometheus与阿里云容器服务无缝集成,提供了SNMP设施的指标采集、用户大盘、告警规定等我的项目的一键集成,用户免运维,开箱即用,目前SNMP指标采集性能仍在一直演进中,欢送大家试用和提出改良意见。

原文链接

本文为阿里云原创内容,未经容许不得转载。

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据