标签: net-snmp

Windows 上的 16TB 卷和 SNMP

随着大于 16TB 的卷变得越来越普遍,人们认识到用于报告 SNMP 中标准“HOST-RESOURCES”MIB 中的磁盘大小和使用情况的 32 位值不足以报告正确的磁盘大小。

Net-SNMP 似乎通过简单地操纵“AllocationUnits”的值来解决这个问题,以维护一个 32 位的磁盘利用率值(因为总磁盘大小/使用量等于 32 位空间值乘以分配单元),以允许用于计算大于 8/16TB 的卷。假设您对分配单元没有任何报告兴趣,并且可以接受少量的不准确。这似乎是一个优雅的解决方案。

https://bugzilla.redhat.com/show_bug.cgi?id=654384

然而,Window 的内置 SNMP 服务似乎继续受到此错误的影响,只是报告已使用/分配的磁盘空间的模数,导致磁盘大小报告不准确。

有没有办法让 Windows 正确报告超过 16TB 的卷的磁盘使用情况?我们试图简单地安装 Net-SNMP 5.5 x64 并完全禁用 Windows SNMP 服务,但不幸的是这并没有解决我们的问题。

使用 NetSNMP 扩展时,我们为感兴趣的特定磁盘收集的信息如下:

在此处输入图片说明

无论我们使用的是 vanilla Windows SNMP 服务还是 NetSNMP,这些结果都是相同的。

我看到 Cacti 社区中的人提到简单地编写解决方案。不幸的是,我们使用 Observium 进行快速和基本的系统监控。如果无法在 Window 一侧纠正问题,是否可以让 Observium 报告自定义 MIB?

--更新--

查看错误报告提到将“realStorageUnits”添加到 snmpd.conf 文件时,我们在设置该指令时遇到了以下问题:

realStorageUnits 对我们不利

--更新 2 --

好吧,经过多次修改,它看起来不像任何 Windows 版本的 Net-SNMP,如“realStorageUnits”指令。包含该指令会在启动 SNMP 时产生警告。我们尝试了 5.5、5.6 和 5.7 版本。这里有没有人想过如何让 SNMP 在 Windows 上报告超过 16 TB 的卷?

windows cacti system-monitoring net-snmp

12
推荐指数
1
解决办法
4724
查看次数

如何在我的网络中找到所有启用了 snmp 的设备?

我想在我的网络中找到所有启用了 snmp 的设备,我得到了它在代理和管理器架构中的工作方式。

我得到了 net-snmp 库来创建一个简单的应用程序来从远程设备获取 snmp 数据。我必须编写一个程序来做到这一点,我想要设备的 mac 地址和更多信息。

我得到了从远程节点获取数据的程序,但我有一个疑问,如何获取系统的 mac 地址以及获取设备 mac 的 oid 是什么,

是否有任何通用 oids 不是供应商特定的。我必须获取所有设备的数据。

一些更新:

现在使用 snmp 工具 snmpwalk 我得到了可能的信息,但其中我想要一些系统信息,mac,os 名称(如果可用),但是我如何使用 net-snmp 进行编程以获取这些信息,因为我不知道哪个系统的通用 oid名字会来。我想写一个程序,我必须得到一些必需的信息,所以我需要 oid,我必须把这个 oid 给 net-Snmp 的函数,以便它会给我相应的结果。

我必须使用像 sysName 这样的字符串名称来获取系统名称,如果是这样,那么在 mac 地址的情况下写“ifPhysAddress.2”然后提到 mac(在 snmpwalk 的结果中)。那么 oid 是什么获取 mac,因为它对所有设备都不同。

当我使用 snmpwalk 时,我得到一行如下

SNMPv2-SMI::mib-2.25.3.2.1.3.1 = 字符串:“HP LaserJet Professional P1606dn”

这是打印机的名称。意思是这个oid用于获取打印机的名称(mib-2.25.3.2.1.3.1)。这对所有设备来说都是真的吗?如果我查询这个 oid,我将获得相应 IP 的设备名称,无论设备可能是什么。这是否正确。

请给出一些想法。

谢谢

networking snmp network-protocols net-snmp

11
推荐指数
2
解决办法
2万
查看次数

snmptt 不翻译陷阱,即使 translate_log_trap_oid=1

我在配置snmptt以正确转换 snmp 陷阱时遇到了一些麻烦。

下面是一个问题:

/etc/snmp/snmptt.conf 反映:

EVENT fgFmTrapIfChange .1.3.6.1.4.1.12356.101.6.0.1004 "Status Events" Critical
FORMAT $*
EXEC /usr/local/nagios/libexec/eventhandlers/submit_check_result $r "snmp_traps" 2 "$O: $+*" "$*"
SDESC

Trap is sent to the managing FortiManager if an interface IP is changed
Variables:
  1: fnSysSerial
  2: ifName
  3: fgManIfIp
  4: fgManIfMask
EDESC
Run Code Online (Sandbox Code Playgroud)

当收到陷阱时,/var/log/messages 反映:

Sep  6 12:07:32 SNMPMANAGERHOST snmptrapd[15385]:
2012-09-06 12:07:32 <UNKNOWN>
[UDP:
[192.168.100.2]:162->[192.168.100.31]]:
#012.1.3.6.1.2.1.1.3.0 = Timeticks: (707253943) 81 days, 20:35:39.43
#011.1.3.6.1.6.3.1.1.4.1.0 = OID: .1.3.6.1.4.1.12356.101.6.0.1004
#011.1.3.6.1.4.1.12356.100.1.1.1.0 = STRING: FGTNNNNNNNNN
#011.1.3.6.1.2.1.31.1.1.1.1.10 = STRING: internal4
#011.1.3.6.1.4.1.12356.101.6.2.1.0 …
Run Code Online (Sandbox Code Playgroud)

networking linux snmp net-snmp

7
推荐指数
1
解决办法
1万
查看次数

为什么 SNMP 代理需要 MIB 文件?

在阅读了 SNMP 和这里的一些问题之后,我认为将代理角色理解为设备的 SNMP 服务(像 SQL 一样,它是存储的 API)。

当您执行 SQL 查询时,SQL 引擎会完成所有工作并返回结果 - 您无需了解存储方式和存储位置。

但是 MIB 不是实际存储,那么我的代理的作用是什么?
如果代理只像我在本教程中一样注册 MIB ,那么它根本不用作处理程序,这意味着有一个 pyhiscal 存储,您可以设置并到达那里而无需绕过处理程序。在本教程中,您可以这样做:

netsnmp_register_int_instance("my example int variable",
                                  my_registration_oid,
                                  OID_LENGTH(my_registration_oid),
                                  &example1, NULL);
Run Code Online (Sandbox Code Playgroud)

不需要处理程序来处理调用。

假设我想监控我的应用程序的待处理请求队列,所以我想要一个代理,所有对 application_pending_request 的 SNMP 请求都将被触发,它会返回队列深度。当我需要轮询我的应用程序队列以获得结果时,为什么我需要一个实际的 MIB?

snmp net-snmp

5
推荐指数
1
解决办法
6732
查看次数

收到的 SNMP 字节与 ifconfig 不一致

SNMP ifInOctets = 2145342796 - 大约 2GB。

ifconfig : RX 字节:174302710687 (174.3 GB)


有趣的是,发送的字节几乎完全一致:

ifOutOctets : 1002415050 - 大约 1GB

ifconfig : TX 字节:1002418728 (1.0 GB)


这不是 SNMP 中断:

snmpwalk -v2c -c public localhost 1.3.6.1.2.1.31.1.1.1.19    
iso.3.6.1.2.1.31.1.1.1.19.1 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.31.1.1.1.19.2 = Timeticks: (0) 0:00:00.00
iso.3.6.1.2.1.31.1.1.1.19.3 = Timeticks: (0) 0:00:00.00
Run Code Online (Sandbox Code Playgroud)

任何人都对发送的数据编号中的这种不连续性有所了解?非常感谢!

(net-snmp, Ubuntu Linux, 12.04 LTS)

linux snmp snmpd net-snmp

5
推荐指数
1
解决办法
1292
查看次数

无法从 systemd 启动 Net-SNMP 守护进程(但它可以从命令行运行)

当我从 systemd 启动 Net-SNMP 时,没有错误消息但守护进程没有运行:

% sudo systemctl start snmpd
%
Run Code Online (Sandbox Code Playgroud)

当我从命令行启动它时,它运行:

% sudo /usr/sbin/snmpd
Run Code Online (Sandbox Code Playgroud)

以及对 SNMP 查询的回答。

如果我添加调试标志 (-LSdd),我会看到 systemd 启动的守护进程在以下之后立即被杀死:

Apr  7 15:37:50 localhost snmpd[1298]: NET-SNMP version 5.7.2
Apr  7 15:37:50 localhost snmpd[1298]: Received TERM or STOP signal...  shutting down...
Run Code Online (Sandbox Code Playgroud)

服务文件是 Arch Linux 软件包的默认文件之一:

[Unit]
Description=Simple Network Management Protocol (SNMP) Daemon
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/sbin/snmpd 
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

如果我在服务文件中添加 RemainAfterExit=yes,snmpd 工作但机器不再正常启动(例如没有 DHCP 客户端)

系统为最新的 Arch Linux,软件包版本为:

Name           : net-snmp
Version        : 5.7.2-3
Run Code Online (Sandbox Code Playgroud)

对于这个错误,显然有一个旧的 Arch Linux …

arch-linux net-snmp systemd

5
推荐指数
1
解决办法
2539
查看次数

虚拟机上 VMware Tools 的 SNMP OID

我有一个运行多个虚拟机的 ESXi 主机。我使用 snmp 查询该主机的信息。我需要查找某个虚拟机上是否安装了 VMware Tools。那可能吗?如果是,它是哪个 OID?

文档中有一些条目说的是

报告配置的虚拟硬件 MAC 地址。如果 VMware Tools 未运行,则该值为零或为空。

但是我找不到任何可以明确查询某个 VM 上是否安装了 VMware 工具的内容。

snmp vmware-esx vmware-esxi vmware-vsphere net-snmp

5
推荐指数
0
解决办法
1027
查看次数

/usr/local/share/snmp/snmpd.conf:第 5 行:错误:未知负载 OID

使用 ubuntu 和 net-snmp snmp 工作但在 sys.log 中我看到很多关于 snmpd.conf 的错误

snmpd.conf :

rwcommunity community 10.0.0.1
rwcommunity community 10.0.0.2
agentAddress  udp:10.0.0.1:161

view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1


                                                 #  Default access to basic system info
rocommunity public  default    -V systemonly

rouser   authOnlyUser

sysLocation    Sitting on the Dock of the Bay
sysContact     Me <me@example.org>

sysServices    72

proc  mountd                          
proc  ntalkd    4                        
proc  sendmail 10 1

disk       /     10000
disk       /var  5%
includeAllDisks  10%

load   12 10 5

trapsink     localhost public

iquerySecName …
Run Code Online (Sandbox Code Playgroud)

snmp snmpd net-snmp

4
推荐指数
1
解决办法
1万
查看次数

Snmpd 更新接口计数器缓慢或类似这样的

我将我的一个 freebsd 盒子更新为 9-stable(全新安装)并安装 net-snmp 进行监控。

uname -r 
9.1-PRERELEASE

pkg_info net-snmp-5.7.1_7 
Information for net-snmp-5.7.1_7:

Comment:
An extendable SNMP implementation
....


cat /var/db/ports/net-snmp/options 
# This file is auto-generated by 'make config'.
# Options for net-snmp-5.7.1_7
_OPTIONS_READ=net-snmp-5.7.1_7
_FILE_COMPLETE_OPTIONS_LIST= IPV6 MFD_REWRITES PERL PERL_EMBEDDED PYTHON DUMMY TKMIB DMALLOC MYSQL AX_SOCKONLY UNPRIVILEGED
OPTIONS_FILE_UNSET+=IPV6
OPTIONS_FILE_UNSET+=MFD_REWRITES
OPTIONS_FILE_SET+=PERL
OPTIONS_FILE_SET+=PERL_EMBEDDED
OPTIONS_FILE_UNSET+=PYTHON
OPTIONS_FILE_SET+=DUMMY
OPTIONS_FILE_UNSET+=TKMIB
OPTIONS_FILE_SET+=DMALLOC
OPTIONS_FILE_UNSET+=MYSQL
OPTIONS_FILE_UNSET+=AX_SOCKONLY
OPTIONS_FILE_UNSET+=UNPRIVILEGED
Run Code Online (Sandbox Code Playgroud)

我在这台机器上有大约 500 个 vlan,并通过 snmpd 收集有关接口的信息到 2 个不同的软件,zabbix 和 cacti。

他们都用空白字段绘制图形。

扎比克斯 仙人掌

我尝试将 zabbix 中的轮询时间从 15 秒更改为 30、60、90、120、10。无论如何,我有空白字段。

snmpd.conf 是空的——只有一个访问控制。

此配置在 freebsd 8 …

freebsd monitoring snmp zabbix net-snmp

4
推荐指数
1
解决办法
2405
查看次数

SNMP 内存值与“free”不匹配

比较这个

#免费-m
             缓存的已用空闲共享缓冲区总数
电话:72363 68035 4328 0 522 66294
-/+ 缓冲区/缓存:1218 71145
交换:12291 0 12291

和这个:

# snmpwalk -c public -v 2c localhost .1.3.6.1.4.1.2021.4
UCD-SNMP-MIB::memIndex.0 = 整数:0
UCD-SNMP-MIB::memErrorName.0 = STRING:交换
UCD-SNMP-MIB::memTotalSwap.0 = 整数:12586888 kB
UCD-SNMP-MIB::memAvailSwap.0 = 整数:12586784 kB
UCD-SNMP-MIB::memTotalReal.0 = 整数:74100516 kB
UCD-SNMP-MIB::memAvailReal.0 = 整数:4429580 kB
UCD-SNMP-MIB::memTotalFree.0 = 整数:17016364 kB
UCD-SNMP-MIB::memMinimumSwap.0 = 整数:16000 kB
UCD-SNMP-MIB::memBuffer.0 = 整数:534804 kB
UCD-SNMP-MIB::memCached.0 = 整数:44238560 kB
UCD-SNMP-MIB::memSwapError.0 = INTEGER: noError(0)
UCD-SNMP-MIB::memSwapErrorMsg.0 = 字符串:

为什么免费为“缓存”显示 66294MB 而snmp 为“memCached”显示大约 44238MB?不应该是一样的吗?

查看 MIB,我看到“memCached”是用于缓存的“物理或虚拟”内存。(不要告诉我它会将磁盘缓存放入交换区)^^

目标是free通过snmp找出真正的空闲物理内存(即此处为 71145,如 …

linux memory-usage net-snmp

4
推荐指数
1
解决办法
6113
查看次数