SNMP Trap调试记录[通俗易懂]

SNMP Trap调试记录[通俗易懂]目录一、Trap与Inform二、Trap1、Agent端工作流程2、Manager端工作流程3、流程图三、调试四、SNMP中预定义的trap一、Trap与InformSNMPInformRequests功能允许路由器向SNMP管理器发送通知请求。路由器可以在发生特定事件时向SNMP管理器发送通知。例如,代理路由器可能在自身遇到错误情况时向管理器发…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

目录

一、Trap与Inform

二、Trap

1、Agent端工作流程

2、Manager端工作流程

3、流程图

三、调试

四、SNMP中预定义的trap


 


一、Trap与Inform

SNMP Inform Requests功能允许路由器向SNMP管理器发送通知请求。

路由器可以在发生特定事件时向SNMP管理器发送通知。例如,代理路由器可能在自身遇到错误情况时向管理器发送消息。通知有两种格式:Trap和Inform。

Trap是不可靠的,因为接收器在收到Trap时不发送任何确认。发件人无法确定是否收到了Trap。但是,接收Inform请求的SNMP代理使用SNMP response PDU确认该消息。如果代理未收到Inform请求,则不会发送回复。如果发送方从未收到响应,则可以再次发送Inform请求。因此,Inform更有可能到达其预期目的地。

因为它们更可靠,所以Inform在路由器和网络中消耗更多资源。与Trap一起发送时丢弃的Trap不同,必须在内存中保留Inform请求,直到收到响应或请求超时。此外,Trap仅发送一次,而Inform可能会重试几次。重试会增加流量并导致网络上的开销增加。因此,Trap和Inform请求提供了可靠性和资源之间的权衡。如果SNMP管理器收到每个通知很重要,请使用Inform请求。另一方面,如果您担心网络上的流量或路由器中的内存,并且您不需要接收每个通知,请使用Trap。

二、Trap

SNMP Trap是SNMP的一部分,当被监控段出现特定事件,可能是性能问题,甚至是网络设备接口宕掉等,代理端会给管理站发告警事件。通过告警事件,管理站可以通过定义好的方法来处理告警。

1、Agent端工作流程

①编写MIB文件,确定好TRAP名称等信息(一般MIB设备厂商会提供)

②命令方式:发送各种TRAP命令(Manager地址后面一定要加端口号162),在Manager端看反应结果,在Agent端无反应

③自动触发:配置snmpd.conf设置触发TRAP,系统发生某类错误时会自动触发相应类型的TRAP,发送给Manager

④程序方式:一部份TRAP需要写C语言程序,用相应的api(send_easy_trap或send_v2trap)发送

2、Manager端工作流程

①配置snmptrapd.conf文件,设置访问权限

②将MIB文件导入到mibs文件夹中

③用perl等脚本语言编写处理trap的程序

④配置snmptrapd.conf文件,添加traphandler项,将不同的TRAP对应到不同的处理程序上

3、流程图

SNMP Trap调试记录[通俗易懂]

图中在测试机 M1 上启动 snmptrapd 进程,并且在 UDP 162 端口上监听 SNMP Trap 信息,一旦收到 Trap,snmptrapd 将所接收到的 Trap 信息内容打印到一个本地的文本文件中。 机器 M2 模拟发送 SNMP Trap 的设备,将调用 net-snmp 的命令行程序 snmptrap 发送一个 Trap。

三、调试

snmptrapd安装路径:/usr/local/sbin/snmptrapd

其配置文件路径:/usr/local/sbin/snmptrapd.conf

添加如下配置文件内容:

authCommunity log,execute,net public

上面语句指明以“public”为“community”请求的snmp “notification”允许的操作。上面添加的是比较简单的配置,但可使snmptrapd程序运行起来并正确接收trap包。

服务器运行:

sudo snmptrapd -d -f -Lo

SNMP Trap调试记录[通俗易懂]

上面命令中的选项表示:

-C:表示不使用net-snmp默认路径下的配置文件snmptrapd.conf;

-c:指定snmptrapd.conf文件;

-d:显示收到和发送的数据报,通过这个选项可以看到数据报文;

-f:默认情况下,snmptrapd是在后台中运行的,加上这个选项,表示在前台运行;

-L:指定日志记录在哪里,后面的o表示直接输出到屏幕上,如果是跟着f表示日志记录到指定的文件中;

可通过snmptrapd -h查看命令帮助了解该命令的使用。

客户端运行:

sudo snmptrap -v1 -c public [管理端IP] 1.3.6.1.4.1.1  [代理端IP]  2 3 1000 1.3.6.1.9.9.44.1.2.1 i 12 1.3.4.1.2.3.1 s test_snmptrap

各参数含义:

SNMP Trap调试记录[通俗易懂]

snmptrapd和snmptrap都在虚拟Ubuntu中执行的,所以snmp管理端IP和snmp代理IP一样。执行后,在执行snmptrapd的窗口中可接收到数据,如下:

Received 82 byte packet from UDP: [192.168.11.129]:38271->[192.168.11.129]:162

0000: 30 50 02 01  00 04 06 70  75 62 6C 69  63 A4 43 06    0P.....public.C.

0016: 06 2B 06 01  04 01 01 40  04 C0 A8 0B  81 02 01 02    .+.....@........

0032: 02 01 03 43  02 03 E8 30  29 30 0E 06  09 2B 06 01    ...C...0)0...+..

0048: 09 09 2C 01  02 01 02 01  0C 30 17 06  06 2B 04 01    ..,......0...+..

0064: 02 03 01 04  0D 74 65 73  74 5F 73 6E  6D 70 74 72    .....test_snmptr

0080: 61 70                                                 ap



2019-05-22 10:49:36 61 [192.168.11.129] (via UDP: [192.168.11.129]:38271->[192.168.11.129]:162) TRAP, SNMP v1, community public

SNMPv2-SMI::enterprises.1 Link Down Trap (3) Uptime: 0:00:10.00

SNMPv2-SMI::internet.9.9.44.1.2.1 = INTEGER: 12 SNMPv2-SMI::org.4.1.2.3.1 = STRING: "test_snmptrap"

SNMP Trap调试记录[通俗易懂]

上线:

SNMP Trap调试记录[通俗易懂]

下线(服务器端):

SNMP Trap调试记录[通俗易懂]

上线(代理端):

SNMP Trap调试记录[通俗易懂]

上线(服务器端):

SNMP Trap调试记录[通俗易懂]

测试(服务器端):

SNMP Trap调试记录[通俗易懂]

四、SNMP中预定义的trap

snmp协议中定义了6种基本的trap,这6种trap可以涵盖大部分设备的主要状态改变,与企业自定义trap配合使用,就可以处理几乎所有的重要状态改变情况。

(1).coldStart:snmp发送实体正在重新初始化,以修改代理的配置或协议实例的实现,特别是由于崩溃或重大故障而引起的意外重启。

(2).warmStart:发送实体正在重新初始化,但不修改代理的配置或协议实例的实现。

(3).linkDown:表示代理的一个通信连接失败。

(4).linkUP:表示代理的一个通信连接成功。

(5).authenticationFailure:表示发送方的snmp消息检验失败

(6).egpNeighborLoss:表示发送协议实体的EGP邻居已被标记为Down,相邻关系已经不存在。

 企业专用trap:snmp定义的6个trap可以涵盖大部分的情况,但是很多情况下设备有自己特殊的状态,企业也希望发送或接收自己定义的trap以得到特殊的消息。使用trap定义宏就可以定义企业自己的trap。企业设备发送自定义trap时,必须同时定义trap的MIB一起分发出去,否则,其他管理站不能识别自定义trap的格式。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171354.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 点击下拉菜单打开option中value的链接

    点击下拉菜单打开option中value的链接

  • databus mysql搭建_【databus】初识Databus

    databus mysql搭建_【databus】初识Databus1.简介Databus是一个低延迟、可靠的、支持事务的、保持一致性的数据变更抓取系统。由LinkedIn于2013年开源。Databus通过挖掘数据库日志的方式,将数据库变更实时、可靠的从数据库拉取出来,业务可以通过定制化client实时获取变更并进行其他业务逻辑。Databus有以下特点:数据源和消费者之间的隔离。数据传输能保证顺序性和至少一次交付的高可用性。从变化流的任意时间点进行消费,包括…

    2022年10月16日
  • 使用vue-cli创建项目_vuecli3什么时候出的

    使用vue-cli创建项目_vuecli3什么时候出的vue-cli创建项目上一篇我们安装了vue-cli,接下来我们就使用该脚手架进行创建项目1.进入一个目录,创建项目创建项目命令如下:vuecreate<ProjectName&g

  • 什么软件可以激活成功教程网址_bya意思

    什么软件可以激活成功教程网址_bya意思国内激活成功教程站点大全![http://blog.csdn.net/netxiaoyue/archive/2005/01/29/273559.aspx]国内激活成功教程站点大全!(强烈推荐)【8DD资源中心】-http://www.18dd.com/精品软件秀-http://www.ohsoft.com/163软件园-http://www.soft163.com/中华激活成功教程联盟

  • xshell7安装步骤_快影下载安装

    xshell7安装步骤_快影下载安装文章目录第一部分下载第一步去官方下载界面第二步填写正确的手机号和密码,之后会有一个下载链接第二部分安装过程第一步双击exe文件,进入安装界面第二步接受统一许可证书第三步选择安装的路径第四步随便选一个图面的目录第五步进行安装界面,等待安全完成第三部分设置ssh配置连接第一步设置名称、主机、端口第二步设置链接方式,我选的账号和密码第三步选择接受密钥第四步成功链接主机摘抄第一部分下载第一步去官方下载界面https://www.xshellcn.com/xiazai.html

  • matlab创建控件失败win7,Win7系统无法安装ActiveX控件的解决方法

    matlab创建控件失败win7,Win7系统无法安装ActiveX控件的解决方法Win7系统无法安装ActiveX控件怎么办?ActiveX控件是网站常用的一款网页辅助工具,有时候我们可能需要安装它,但是却发现浏览器阻止了它安装,那么当你遇到这种情况该怎么办呢?下面小编就给大家带来Win7系统无法安装ActiveX控件的解决方法,一起来看看吧!以下从多种角度出发分析,并非仅仅针对截图所示及以上提示。方法/步骤:1、首先建议将相应网站加入可信站点。2、其次建议选中可信站点。自定…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号