前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >夜莺随笔:监控网络设备(一)

夜莺随笔:监控网络设备(一)

作者头像
IT小白Kasar
发布2022-02-16 18:51:58
4.6K3
发布2022-02-16 18:51:58
举报
文章被收录于专栏:个人技术随笔个人技术随笔

本文将对夜莺如何使用 telegraf 监控网络设备做一个初步探讨,第一篇是关于如果简单监控网络设备

正文

本文将围绕sysUpTime,sysName 展开

OID 详情

名称

OID

数据类型

备注

sysUpTime

1.3.6.1.2.1.1.3

TimeTicks

节点完全合格的域名。如果域名未知,则此值为长度是0的字符串

sysName

1.3.6.1.2.1.1.5

OCTET STRING{(0,255)}

从系统网管部分启动以来运行的时间,单位为百分之一秒

snmpwalk

由于 snmp 为 udp 协议的 161 端口,用 telnet 无法探测。而 snmpwalk 工具可以探测目标设备 snmp 的可用性。

该工具需要额外安装包,软件包名为 net-snmp-utils ,可以通过 yum 安装,命令为 yum -y install net-snmp-utils

探测命令为 snmp -v 版本 -c 团体字 IP OID eg: snmpwalk -v 2c -c huawei@123 10.240.3.241 .1.3.6.1.2.1.1.5 eg: snmpwalk -v 2c -c huawei@123 10.240.3.241

上面一条带了 OID,下面未带 OID
上面一条带了 OID,下面未带 OID

测试上述 OID

这里需要注意的地方为使用了 snmpwalk 探测 sysNmae 部分,实际结果为 –> SNMPv2-MIB::sysName.0 = STRING: SH_CE6855_Network_TOR01_SZZB 那么在制作 snmp 监控项里填入 1.3.6.1.2.1.1.5,就会出现下图二的报错,这里是由于探测 OID 时在调用 net-snmp 的时候会根据目标 OID 来判断工具的使用,如果认为该 OID 为该 MIB 树的最末端,会调用 snmpget ,而当一个 OID 并不是末梢,其下面有很多索引,那么就采用 snmpwalk,所以大家在创建监控项的时候会出现误区,这一章节会在自动发现里详解。

代码语言:javascript
复制
snmpwalk -v 2c -c huawei@123 10.240.3.241 1.3.6.1.2.1.1.3
snmpwalk -v 2c -c huawei@123 10.240.3.241 1.3.6.1.2.1.1.5
出现无法获取
出现无法获取
正常结果
正常结果

安装 telegraf

下载 telegraf

代码语言:javascript
复制
wget https://mirrors.nju.edu.cn/influxdata/yum/el8-x86_64/telegraf-1.21.3-1.x86_64.rpm

telegraf 安装包无依赖,也可以离线安装

代码语言:javascript
复制
yum -y install telegraf-1.21.3-1.x86_64.rpm

修改 telegraf 配置

代码语言:javascript
复制
mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.bak

新建 telegraf 配置

这里需要注意的是在 input.snmp 里将 agent_host_tag 的值设置为 ident,这里是夜莺识别 snmp 设备的关键,如果不设置前端将无法以主机的形式存在

  • inputs.snmp.field 代表 telegraf 将以 snmpget 进行查询,所以该 OID 必须是树的末梢
  • is_tag 如果设置为true,则代表该监控项以标签的方式存在,而不是以 metric 存在。
  • agent 部分的 interval 时长根据设备性能而定,时间越短,对设备性能要求越高
代码语言:javascript
复制
[agent]
  interval = "30s"
  round_interval = true
  metric_batch_size = 1000
  metric_buffer_limit = 10000
  collection_jitter = "0s"
  flush_interval = "30s"
  flush_jitter = "0s"
  precision = ""
  hostname = "test"
  omit_hostname = false


[[outputs.opentsdb]]
  host = "http://10.240.99.198"
  port = 19000
  http_batch_size = 50
  http_path = "/opentsdb/put"
  debug = false
  separator = "_"

[[inputs.snmp]]
  agents = ["10.240.3.241"]
  timeout = "5s"
  version = 2 
  community = "huawei@123"
  agent_host_tag = "ident"
  retries = 1

[[inputs.snmp.field]]
 oid = "1.3.6.1.2.1.1.3.0"
 name = "Uptime"

[[inputs.snmp.field]]
 oid = "1.3.6.1.2.1.1.5.0"
 name = "sysName"
 is_tag = true

测试配置可用性

代码语言:javascript
复制
telegraf --config /etc/telegraf/telegraf.conf --input-filter snmp --test
出数值代表正常
出数值代表正常

启动 telegraf

代码语言:javascript
复制
service telegraf restart
systemctl restart telegraf 

夜莺前端

可以查看到注册上来的设备 IP

即时查询 snmp_Uptime 可以查询相关值

可以通过 grafana 来出图

grafana
grafana

写在最后

其实 telegraf 的功能相对来说还是比较强大的,相比于 prometheus 的 snmp-exporter 配置相对简单点,但是存在不能配置多个单 OID 的监控项,但实际常用的也没有太大必要,下一期将会带来 inputs.snmp.table 功能,类似 zabbix 的自动发现功能,敬请期待!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文
    • OID 详情
      • snmpwalk
        • 测试上述 OID
          • 安装 telegraf
            • 修改 telegraf 配置
              • 测试配置可用性
                • 启动 telegraf
                  • 夜莺前端
                  • 写在最后
                  相关产品与服务
                  Grafana 服务
                  Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档