FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

SNMPTT その2

今回は SNMPTT で Cisco ルータ/スイッチのトラップを監視するためのトラップ定義ファイルを作成するための手順について解説します。

1. 監視対象機器の設定

SNMPTT の設定について見ていく前に、まずはトラップ通知に関する監視対象機器側の設定について確認しておきましょう。ここでは、Cisco のルータでトラップ通知を有効化する手順について解説します。

① 通知先ホストの設定(必須)

トラップの通知先ホストのアドレスとトラップ PDU のバージョン、コミュニティ名を指定します。

Router(config)#snmp-server host <n.n.n.n> version <1|2c> <community>

② 送信元アドレスの設定(オプション)

通常、トラップを送信する際の送信元アドレスには、ルーティングで通知先ホストに最も近いインターフェースのアドレスが用いられます。

監視セグメントに直接接続できない機器で、Loopback インターフェースに管理用のアドレスを割り当てて、そのアドレスをトラップの送信元アドレスに設定したいといった要件がある場合には、以下のコマンドを設定することで対応可能です。

Router(config)#snmp-server trap-source <interface>

③ トラップ送信キュー長の設定(オプション)

多数のインターフェースを持った L3 スイッチなどでは、再起動時に多数の linkUp / linkDown トラップが発生してトラップの送信キューがオーバーフローしてしまい、一部のトラップが送信できずに破棄されてしまうことがあります。そうした状況に対処するには、以下のコマンドでキューの拡張を行います(デフォルトは 10 です)。

Router(config)#snmp-server queue-limit notification-host <1-5000>

※ このコマンドは、以前は snmp-server queue-length というコマンドでした。

④ ifIndex のマッピング固定設定(オプション)

再起動後も ifIndex とインターフェースのマッピングを保持するよう設定します。

Router(config)#snmp-server ifindex persist

※ 本コマンドは固定型スイッチなどではサポートされない場合があるので、マニュアルをよく確認した上で設定してください。

⑤ 送信トラップの設定(必須)

対象機器のコマンドプロンプトから、送信可能なトラップの一覧を確認してみます。

Router(config)#snmp-server enable traps ?
  aaa_server       Enable SNMP AAA Server traps
  alarms           Enable SNMP alarms traps
  atm              Enable SNMP atm traps
  bfd              Allow SNMP BFD traps
  bgp              Enable BGP traps
  bulkstat         Enable Data-Collection-MIB Collection notifications
  call-home        Enable SNMP CISCO-CALLHOME-MIB traps
  ccme             Enable SNMP ccme traps
  cnpd             Enable NBAR Protocol Discovery traps
  config           Enable SNMP config traps
  config-copy      Enable SNMP config-copy traps
  config-ctid      Enable SNMP config-ctid traps
  cpu              Allow cpu related traps
  dial             Enable SNMP dial control traps
  dnis             Enable SNMP DNIS traps
  ds1              Enable SNMP DS1 traps
  ds3              Enable SNMP DS3 traps
  dsp              Enable SNMP dsp traps
  eigrp            Enable SNMP EIGRP traps
  entity           Enable SNMP entity traps
  envmon           Enable SNMP environmental monitor traps
  ethernet         Enable SNMP Ethernet traps
  event-manager    Enable SNMP Embedded Event Manager traps
  firewall         Enable SNMP Firewall traps
  flash            Enable SNMP FLASH notifications
  frame-relay      Enable SNMP frame-relay traps
  fru-ctrl         Enable SNMP entity FRU control traps
  gatekeeper       Enable SNMP gatekeeper traps
  hsrp             Enable SNMP HSRP traps
  ima              Enable SNMP ATM IMA traps
  ipmobile         Enable SNMP ipmobile traps
  ipmulticast      Enable SNMP ipmulticast traps
  ipsec            Enable IPsec traps
  ipsla            Enable SNMP IP SLA traps
  isakmp           Enable ISAKMP traps traps
  isdn             Enable SNMP isdn traps
  isis             Enable IS-IS traps
  l2tun            Enable SNMP L2 tunnel protocol traps
  mpls             Enable SNMP MPLS traps
  msdp             Enable SNMP MSDP traps
  mvpn             Enable Multicast Virtual Private Networks traps
  nhrp             Enable SNMP NHRP traps
  ospf             Enable OSPF traps
  pim              Enable SNMP PIM traps
  pppoe            Enable SNMP pppoe traps
  pw               Enable SNMP PW traps
  resource-policy  Enable CISCO-ERM-MIB notifications
  rf               Enable all SNMP traps defined in CISCO-RF-MIB
  rsvp             Enable RSVP flow change traps
  snmp             Enable SNMP traps
  srp              Enable SRP protocol traps
  srst             Enable SNMP srst traps
  syslog           Enable SNMP syslog traps
  tty              Enable TCP connection traps
  voice            Enable SNMP voice traps
  vrfmib           Allow SNMP vrfmib traps
  vrrp             Enable SNMP vrrp traps
  xgcp             Enable XGCP protocol traps
  <cr>

ここに表示されているキーワードは通知タイプと呼ばれ、linkUp や coldStart といった個別のトラップが所属するカテゴリにあたるものです。多くの場合、通知タイプは MIB モジュール(MIB ファイル)と一対一で対応していますが、snmp のように複数の MIB モジュールに分かれて定義されているもの、あるいは ipsec と isakmp のように一つ MIB モジュールが複数の通知タイプのトラップを定義しているものもあります。

トラップを有効化する際には、通知タイプ単位で有効化するものと、個別のトラップ単位で有効化できるものがあり、後者の場合は通知タイプの後に通知オプションとしてトラップ名を指定します。

例えば、snmp という通知タイプの場合、以下のように 5 つの一般トラップの有効・無効を個別に切り替えることができます。

Router(config)#snmp-server enable traps snmp ?
  authentication  Enable authentication trap
  coldstart       Enable coldStart trap
  linkdown        Enable linkDown trap
  linkup          Enable linkUp trap
  warmstart       Enable warmStart trap
  <cr>

Router(config)#snmp-server enable traps snmp coldstart linkdown linkup
Router(config)#do show run | inc traps
snmp-server enable traps snmp linkdown linkup coldstart

また、通知オプションを指定しなかった場合には、通知タイプに所属する全てのトラップが有効化されます。

Router(config)#snmp-server enable traps snmp
Router(config)#do show run | inc traps
snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart

さらに、通知タイプを指定しなかった場合には、その機器で設定可能な全てのトラップが有効化されます。

Router(config)#snmp-server enable traps
Router(config)#do show run | inc traps
snmp-server enable traps snmp authentication linkdown linkup coldstart warmstart
snmp-server enable traps vrrp
snmp-server enable traps ds1
snmp-server enable traps call-home message-send-fail server-fail
snmp-server enable traps tty
snmp-server enable traps gatekeeper
snmp-server enable traps eigrp
snmp-server enable traps ospf state-change
snmp-server enable traps ospf errors
snmp-server enable traps ospf retransmit
snmp-server enable traps ospf lsa
snmp-server enable traps ospf cisco-specific state-change nssa-trans-change
snmp-server enable traps ospf cisco-specific state-change shamlink interface
snmp-server enable traps ospf cisco-specific state-change shamlink neighbor
snmp-server enable traps ospf cisco-specific errors
snmp-server enable traps ospf cisco-specific retransmit
snmp-server enable traps ospf cisco-specific lsa
snmp-server enable traps xgcp
snmp-server enable traps ethernet cfm cc mep-up mep-down cross-connect loop config
snmp-server enable traps ethernet cfm crosscheck mep-missing mep-unknown service-up
snmp-server enable traps flash insertion removal
snmp-server enable traps srp
snmp-server enable traps ds3
snmp-server enable traps envmon
snmp-server enable traps isdn call-information
snmp-server enable traps isdn layer2
snmp-server enable traps isdn chan-not-avail
snmp-server enable traps isdn ietf
snmp-server enable traps ima
snmp-server enable traps rf
snmp-server enable traps aaa_server
snmp-server enable traps atm subif
snmp-server enable traps bfd
snmp-server enable traps bgp
snmp-server enable traps bulkstat collection transfer
snmp-server enable traps cnpd
snmp-server enable traps config-copy
snmp-server enable traps config
snmp-server enable traps config-ctid
snmp-server enable traps dial
snmp-server enable traps dsp card-status
snmp-server enable traps dsp oper-state
snmp-server enable traps entity
snmp-server enable traps fru-ctrl
snmp-server enable traps resource-policy
snmp-server enable traps event-manager
snmp-server enable traps frame-relay multilink bundle-mismatch
snmp-server enable traps frame-relay
snmp-server enable traps frame-relay subif
snmp-server enable traps hsrp
snmp-server enable traps ipmulticast
snmp-server enable traps isis
snmp-server enable traps mpls traffic-eng
snmp-server enable traps mpls fast-reroute protected
snmp-server enable traps mpls rfc ldp
snmp-server enable traps mpls ldp
snmp-server enable traps msdp
snmp-server enable traps mvpn
snmp-server enable traps pim neighbor-change rp-mapping-change invalid-pim-message
snmp-server enable traps pppoe
snmp-server enable traps cpu threshold
snmp-server enable traps rsvp
snmp-server enable traps ipsla
snmp-server enable traps syslog
snmp-server enable traps l2tun session
snmp-server enable traps l2tun pseudowire status
snmp-server enable traps pw vc
snmp-server enable traps firewall serverstatus
snmp-server enable traps ipmobile
snmp-server enable traps nhrp nhs
snmp-server enable traps nhrp nhc
snmp-server enable traps nhrp nhp
snmp-server enable traps nhrp quota-exceeded
snmp-server enable traps isakmp policy add
snmp-server enable traps isakmp policy delete
snmp-server enable traps isakmp tunnel start
snmp-server enable traps isakmp tunnel stop
snmp-server enable traps ipsec cryptomap add
snmp-server enable traps ipsec cryptomap delete
snmp-server enable traps ipsec cryptomap attach
snmp-server enable traps ipsec cryptomap detach
snmp-server enable traps ipsec tunnel start
snmp-server enable traps ipsec tunnel stop
snmp-server enable traps ipsec too-many-sas
snmp-server enable traps alarms informational
snmp-server enable traps ccme
snmp-server enable traps srst
snmp-server enable traps mpls vpn
snmp-server enable traps voice
snmp-server enable traps dnis
snmp-server enable traps vrfmib vrf-up vrf-down vnet-trunk-up vnet-trunk-down


注意:設定できるからといって、全てのトラップが対象機器上でサポートされるわけではないことに注意しましょう。

例えば、Catalyst 3560 Software Configuration Guide, Release 12.2(58)SE には以下の記述があります。

Note: Though visible in the command-line help strings, the fru-ctrl, insertion, and removal keywords are not supported.

また、実際にトラップを有効化するために、追加のコマンド設定が必要なものもあります。

有効化するトラップを決定する際は、MIB Locatorマニュアル等で MIB やトラップのサポート状況を確認し、構築時の試験などで動作を確認しておくとよいでしょう。


送信可能なトラップが確認できたら、そのトラップが定義されている MIB ファイルをダウンロードします。通知タイプと MIB ファイル(と、その中で定義されているトラップ)の対応関係については、メーカーのサイトでも十分な情報が提供されているとは言い難い状況で、マニュアルやその他技術情報を個別に確認する必要があります。

ただ、通知タイプは一般に <通知タイプ名>-MIB もしくは CISCO-<通知タイプ名>-MIB という名前の MIB モジュールに定義さていることが多いため、まずはそういった名前の MIB モジュールがないか探してみるとよいでしょう。

一応、以下に主要なトラップと通知タイプとの関係をまとめていますが、全てを実機で確認しているわけではないので、あくまで参考程度に見ていただければと思います。

通知タイプMIB モジュールトラップOID
aaa_serverCISCO-AAA-SERVER-MIBcasServerStateChange.1.3.6.1.4.1.9.10.56.2.0.1
alarmsCISCO-ENTITY-ALARM-MIBceAlarmAsserted
ceAlarmCleared
.1.3.6.1.4.1.9.9.138.2.0.1
.1.3.6.1.4.1.9.9.138.2.0.2
atmCISCO-IETF-ATM2-PVCTRAP-MIB
CISCO-ATM-PVCTRAP-EXTN-MIB
atmIntfPvcFailuresTrap
catmIntfPvcUpTrap
catmIntfPvcOAMFailureTrap
catmIntfPvcSegCCOAMFailureTrap
catmIntfPvcEndCCOAMFailureTrap
catmIntfPvcAISRDIOAMFailureTrap
catmIntfPvcAnyOAMFailureTrap
catmIntfPvcOAMRecoverTrap
catmIntfPvcSegCCOAMRecoverTrap
catmIntfPvcEndCCOAMRecoverTrap
catmIntfPvcAISRDIOAMRecoverTrap
catmIntfPvcAnyOAMRecoverTrap
catmIntfPvcUp2Trap
catmIntfPvcDownTrap
.1.3.6.1.4.1.9.10.29.2.1.0.1
.1.3.6.1.4.1.9.10.97.2.0.1
.1.3.6.1.4.1.9.10.97.2.0.2
.1.3.6.1.4.1.9.10.97.2.0.3
.1.3.6.1.4.1.9.10.97.2.0.4
.1.3.6.1.4.1.9.10.97.2.0.5
.1.3.6.1.4.1.9.10.97.2.0.6
.1.3.6.1.4.1.9.10.97.2.0.7
.1.3.6.1.4.1.9.10.97.2.0.8
.1.3.6.1.4.1.9.10.97.2.0.9
.1.3.6.1.4.1.9.10.97.2.0.10
.1.3.6.1.4.1.9.10.97.2.0.11
.1.3.6.1.4.1.9.10.97.2.0.12
.1.3.6.1.4.1.9.10.97.2.0.13
bfdCISCO-IETF-BFD-MIBciscoBfdSessUp
ciscoBfdSessDown
.1.3.6.1.4.1.9.10.137.0.1
.1.3.6.1.4.1.9.10.137.0.2
bgpBGP4-MIB
CISCO-BGP4-MIB
bgpEstablished
bgpBackwardTransition
cbgpFsmStateChange
cbgpBackwardTransition
cbgpPrefixThresholdExceeded
cbgpPrefixThresholdClear
cbgpPeer2EstablishedNotification
cbgpPeer2BackwardTransNotification
cbgpPeer2FsmStateChange
cbgpPeer2BackwardTransition
cbgpPeer2PrefixThresholdExceeded
cbgpPeer2PrefixThresholdClear
.1.3.6.1.2.1.15.7.1
.1.3.6.1.2.1.15.7.2
.1.3.6.1.4.1.9.9.187.0.1
.1.3.6.1.4.1.9.9.187.0.2
.1.3.6.1.4.1.9.9.187.0.3
.1.3.6.1.4.1.9.9.187.0.4
.1.3.6.1.4.1.9.9.187.0.5
.1.3.6.1.4.1.9.9.187.0.6
.1.3.6.1.4.1.9.9.187.0.7
.1.3.6.1.4.1.9.9.187.0.8
.1.3.6.1.4.1.9.9.187.0.9
.1.3.6.1.4.1.9.9.187.0.10
bulkstatCISCO-DATA-COLLECTION-MIBcdcVFileCollectionError
cdcFileXferComplete
.1.3.6.1.4.1.9.9.312.0.1
.1.3.6.1.4.1.9.9.312.0.2
call-homeCISCO-CALLHOME-MIBccmSmtpServerFailNotif
ccmAlertGroupTypeAddedNotif
ccmAlertGroupTypeDeletedNotif
ccmSmtpMsgSendFailNotif
ccmEventNotif
.1.3.6.1.4.1.9.9.300.0.1
.1.3.6.1.4.1.9.9.300.0.2
.1.3.6.1.4.1.9.9.300.0.3
.1.3.6.1.4.1.9.9.300.0.4
.1.3.6.1.4.1.9.9.300.0.5
ccmeCISCO-CCME-MIBccmeStatusChangeNotif
ccmeEphoneUnRegThresholdExceed
ccmeEPhoneDeceased
ccmeEPhoneRegFailed
ccmeEphoneLoginFailed
ccmeNightServiceChangeNotif
ccmeLivefeedMohFailedNotif
ccmeMaxConferenceNotif
ccmeKeyEphoneRegChangeNotif
.1.3.6.1.4.1.9.9.439.0.0.1
.1.3.6.1.4.1.9.9.439.0.0.2
.1.3.6.1.4.1.9.9.439.0.0.3
.1.3.6.1.4.1.9.9.439.0.0.4
.1.3.6.1.4.1.9.9.439.0.0.5
.1.3.6.1.4.1.9.9.439.0.0.6
.1.3.6.1.4.1.9.9.439.0.0.7
.1.3.6.1.4.1.9.9.439.0.0.8
.1.3.6.1.4.1.9.9.439.0.0.9
cnpdCISCO-NBAR-PROTOCOL-DISCOVERY-MIBcnpdThresholdRisingEvent
cnpdThresholdFallingEvent
.1.3.6.1.4.1.9.9.244.0.1
.1.3.6.1.4.1.9.9.244.0.2
configCISCO-CONFIG-MAN-MIBciscoConfigManEvent
ccmCLIRunningConfigChanged
.1.3.6.1.4.1.9.9.43.2.0.1
.1.3.6.1.4.1.9.9.43.2.0.2
config-copyCISCO-CONFIG-COPY-MIBccCopyCompletion.1.3.6.1.4.1.9.9.96.2.1.1
config-ctidCISCO-CONFIG-MAN-MIBccmCLIRunningConfigChanged
ccmCTIDRolledOver
.1.3.6.1.4.1.9.9.43.2.0.3
cpuCISCO-PROCESS-MIBcpmCPURisingThreshold
cpmCPUFallingThreshold
.1.3.6.1.4.1.9.9.109.2.0.1
.1.3.6.1.4.1.9.9.109.2.0.2
dialDIAL-CONTROL-MIBdialCtlPeerCallInformation
dialCtlPeerCallSetup
.1.3.6.1.2.1.10.21.2.0.1
.1.3.6.1.2.1.10.21.2.0.2
dnisCISCO-VOICE-DNIS-MIBcvDnisMappingUrlInaccessible.1.3.6.1.4.1.9.9.219.2.0.1
ds1DS1-MIB
CISCO-DS1-EXT-MIB
dsx1LineStatusChange
cds1StatThresholdAlarm
.1.3.6.1.2.1.10.18.15.0.1
.1.3.6.1.4.1.9.9.229.1.4.0.1
ds3DS3-MIBdsx3LineStatusChange.1.3.6.1.2.1.10.30.15.0.1
dspCISCO-DSP-MGMT-MIBcdspMIBCardStateNotification
cdspOperStateNotification
.1.3.6.1.4.1.9.9.86.2.0.2
eigrpCISCO-EIGRP-MIBcEigrpAuthFailureEvent
cEigrpRouteStuckInActive
.1.3.6.1.4.1.9.9.449.0.1
.1.3.6.1.4.1.9.9.449.0.2
entityENTITY-MIBentConfigChange.1.3.6.1.2.1.47.2.0.1
envmonCISCO-ENVMON-MIBciscoEnvMonShutdownNotification
ciscoEnvMonVoltageNotification
ciscoEnvMonTemperatureNotification
ciscoEnvMonFanNotification
ciscoEnvMonRedundantSupplyNotification
ciscoEnvMonVoltStatusChangeNotif
ciscoEnvMonTempStatusChangeNotif
ciscoEnvMonFanStatusChangeNotif
ciscoEnvMonSuppStatusChangeNotif
.1.3.6.1.4.1.9.9.13.3.0.1
.1.3.6.1.4.1.9.9.13.3.0.2
.1.3.6.1.4.1.9.9.13.3.0.3
.1.3.6.1.4.1.9.9.13.3.0.4
.1.3.6.1.4.1.9.9.13.3.0.5
.1.3.6.1.4.1.9.9.13.3.0.6
.1.3.6.1.4.1.9.9.13.3.0.7
.1.3.6.1.4.1.9.9.13.3.0.8
.1.3.6.1.4.1.9.9.13.3.0.9
ethernet cfmCISCO-ETHER-CFM-MIBcEtherCfmCcMepUp
cEtherCfmCcMepDown
cEtherCfmCcCrossconnect
cEtherCfmCcLoop
cEtherCfmCcConfigError
cEtherCfmXCheckMissing
cEtherCfmXCheckUnknown
cEtherCfmXCheckServiceUp
.1.3.6.1.4.1.9.9.461.0.0.1
.1.3.6.1.4.1.9.9.461.0.0.2
.1.3.6.1.4.1.9.9.461.0.0.3
.1.3.6.1.4.1.9.9.461.0.0.4
.1.3.6.1.4.1.9.9.461.0.0.5
.1.3.6.1.4.1.9.9.461.0.0.6
.1.3.6.1.4.1.9.9.461.0.0.7
.1.3.6.1.4.1.9.9.461.0.0.8
event-managerCISCO-EMBEDDED-EVENT-MGR-MIBcEventMgrServerEvent
cEventMgrPolicyEvent
.1.3.6.1.4.1.9.10.91.0.1
.1.3.6.1.4.1.9.10.91.0.2
firewallCISCO-UNIFIED-FIREWALL-MIBciscoUFwUrlfServerStateChange
ciscoUFwL2StaticMacAddressMoved
.1.3.6.1.4.1.9.9.491.0.1
.1.3.6.1.4.1.9.9.491.0.2
flashCISCO-FLASH-MIBciscoFlashCopyCompletionTrap
ciscoFlashPartitioningCompletionTrap
ciscoFlashMiscOpCompletionTrap
ciscoFlashDeviceChangeTrap
ciscoFlashDeviceInsertedNotif
ciscoFlashDeviceRemovedNotif
ciscoFlashDeviceInsertedNotifRev1
ciscoFlashDeviceRemovedNotifRev1
.1.3.6.1.4.1.9.9.10.1.3.0.1
.1.3.6.1.4.1.9.9.10.1.3.0.2
.1.3.6.1.4.1.9.9.10.1.3.0.3
.1.3.6.1.4.1.9.9.10.1.3.0.4
.1.3.6.1.4.1.9.9.10.1.3.0.5
.1.3.6.1.4.1.9.9.10.1.3.0.6
.1.3.6.1.4.1.9.9.10.1.3.0.7
.1.3.6.1.4.1.9.9.10.1.3.0.8
frame-relayRFC1315-MIBfrDLCIStatusChange.1.3.6.1.2.1.10.32.0.1
frame-relay multilink bundle-mismatchFR-MFR-MIBmfrMibTrapBundleLinkMismatch.1.3.6.1.2.1.10.47.4.0.1
fru-ctrlCISCO-ENTITY-FRU-CONTROL-MIBcefcModuleStatusChange
cefcPowerStatusChange
cefcFRUInserted
cefcFRURemoved
cefcUnrecognizedFRU
cefcFanTrayStatusChange
cefcPowerSupplyOutputChange
.1.3.6.1.4.1.9.9.117.2.0.1
.1.3.6.1.4.1.9.9.117.2.0.2
.1.3.6.1.4.1.9.9.117.2.0.3
.1.3.6.1.4.1.9.9.117.2.0.4
.1.3.6.1.4.1.9.9.117.2.0.5
.1.3.6.1.4.1.9.9.117.2.0.6
.1.3.6.1.4.1.9.9.117.2.0.7
gatekeeperCISCO-GATEKEEPER-MIBciscoGatekeeperEvent.1.3.6.1.4.1.9.10.40.2.0.1
hsrpCISCO-HSRP-MIBcHsrpStateChange.1.3.6.1.4.1.9.9.106.2.0.1
imaIMA-MIBimaFailureAlarm.1.3.6.1.4.1.353.5.7.1.2.0.1
ipmobileMIP-MIB
CISCO-MOBILE-IP-MIB
mipAuthFailure
cmiMrStateChange
cmiMrCoaChange
cmiMrNewMA
cmiHaMnRegReqFailed
.1.3.6.1.2.1.44.2.0.1
.1.3.6.1.4.1.9.9.174.0.1
.1.3.6.1.4.1.9.9.174.0.2
.1.3.6.1.4.1.9.9.174.0.3
.1.3.6.1.4.1.9.9.174.0.4
ipmulticastCISCO-IPMROUTE-MIBciscoIpMRouteMissingHeartBeats.1.3.6.1.4.1.9.10.2.3.1.0.1
ipsecCISCO-IPSEC-FLOW-MONITOR-MIB
CISCO-IPSEC-MIB
cipSecTunnelStart
cipSecTunnelStop
cipsCryptomapAdded
cipsCryptomapDeleted
cipsCryptomapSetAttached
cipsCryptomapSetDetached
cipsTooManySAs
.1.3.6.1.4.1.9.9.171.2.0.7
.1.3.6.1.4.1.9.9.171.2.0.8
.1.3.6.1.4.1.9.10.62.2.0.3
.1.3.6.1.4.1.9.10.62.2.0.4
.1.3.6.1.4.1.9.10.62.2.0.5
.1.3.6.1.4.1.9.10.62.2.0.6
.1.3.6.1.4.1.9.10.62.2.0.7
ipsla (rtr)CISCO-RTTMON-MIBrttMonConnectionChangeNotification
rttMonTimeoutNotification
rttMonThresholdNotification
rttMonVerifyErrorNotification
rttMonNotification
rttMonLpdDiscoveryNotification
rttMonLpdGrpStatusNotification
.1.3.6.1.4.1.9.9.42.2.0.1
.1.3.6.1.4.1.9.9.42.2.0.2
.1.3.6.1.4.1.9.9.42.2.0.3
.1.3.6.1.4.1.9.9.42.2.0.4
.1.3.6.1.4.1.9.9.42.2.0.5
.1.3.6.1.4.1.9.9.42.2.0.6
.1.3.6.1.4.1.9.9.42.2.0.7
isakmpCISCO-IPSEC-FLOW-MONITOR-MIB
CISCO-IPSEC-MIB
cikeTunnelStart
cikeTunnelStop
cipsIsakmpPolicyAdded
cipsIsakmpPolicyDeleted
.1.3.6.1.4.1.9.9.171.2.0.1
.1.3.6.1.4.1.9.9.171.2.0.2
.1.3.6.1.4.1.9.10.62.2.0.1
.1.3.6.1.4.1.9.10.62.2.0.2
isdnCISCO-ISDN-MIB
CISCO-ISDNU-IF-MIB
demandNbrCallInformation
demandNbrCallDetails
demandNbrLayer2Change
demandNbrCNANotification
ciuIfLoopStatusNotification
.1.3.6.1.4.1.9.9.26.2.0.1
.1.3.6.1.4.1.9.9.26.2.0.2
.1.3.6.1.4.1.9.9.26.2.0.3
.1.3.6.1.4.1.9.9.26.2.0.4
.1.3.6.1.4.1.9.9.18.2.0.1
isisCISCO-IETF-ISIS-MIBciiDatabaseOverload
ciiManualAddressDrops
ciiCorruptedLSPDetected
ciiAttemptToExceedMaxSequence
ciiIDLenMismatch
ciiMaxAreaAddressesMismatch
ciiOwnLSPPurge
ciiSequenceNumberSkip
ciiAuthenticationTypeFailure
ciiAuthenticationFailure
ciiVersionSkew
ciiAreaMismatch
ciiRejectedAdjacency
ciiLSPTooLargeToPropagate
ciiOrigLSPBuffSizeMismatch
ciiProtocolsSupportedMismatch
ciiAdjacencyChange
ciiLSPErrorDetected
.1.3.6.1.4.1.9.10.118.0.1
.1.3.6.1.4.1.9.10.118.0.2
.1.3.6.1.4.1.9.10.118.0.3
.1.3.6.1.4.1.9.10.118.0.4
.1.3.6.1.4.1.9.10.118.0.5
.1.3.6.1.4.1.9.10.118.0.6
.1.3.6.1.4.1.9.10.118.0.7
.1.3.6.1.4.1.9.10.118.0.8
.1.3.6.1.4.1.9.10.118.0.9
.1.3.6.1.4.1.9.10.118.0.10
.1.3.6.1.4.1.9.10.118.0.11
.1.3.6.1.4.1.9.10.118.0.12
.1.3.6.1.4.1.9.10.118.0.13
.1.3.6.1.4.1.9.10.118.0.14
.1.3.6.1.4.1.9.10.118.0.15
.1.3.6.1.4.1.9.10.118.0.16
.1.3.6.1.4.1.9.10.118.0.17
.1.3.6.1.4.1.9.10.118.0.18
l2tunCISCO-VPDN-MGMT-MIBcvpdnNotifSession
cvpdnTrapDeadcacheEvent
.1.3.6.1.4.1.9.10.24.0.3
.1.3.6.1.4.1.9.10.24.0.4
mpls fast-reroute protectedCISCO-IETF-FRR-MIBcmplsFrrProtected.1.3.6.1.4.1.9.10.98.0.1
mpls ldpMPLS-LDP-MIBmplsLdpInitSesThresholdExceeded
mplsLdpPVLMismatch
mplsLdpSessionUp
mplsLdpSessionDown
.1.3.6.1.4.1.9.10.65.2.0.1
.1.3.6.1.4.1.9.10.65.2.0.2
.1.3.6.1.4.1.9.10.65.2.0.3
.1.3.6.1.4.1.9.10.65.2.0.4
mpls rfc ldpMPLS-LDP-STD-MIBmplsLdpInitSessionThresholdExceeded
mplsLdpPathVectorLimitMismatch
mplsLdpSessionUp
mplsLdpSessionDown
.1.3.6.1.2.1.10.166.4.0.1
.1.3.6.1.2.1.10.166.4.0.2
.1.3.6.1.2.1.10.166.4.0.3
.1.3.6.1.2.1.10.166.4.0.4
mpls traffic-engMPLS-TE-MIBmplsTunnelUp
mplsTunnelDown
mplsTunnelRerouted
.1.3.6.1.3.95.3.0.1
.1.3.6.1.3.95.3.0.2
.1.3.6.1.3.95.3.0.3
mpls vpnMPLS-VPN-MIBmplsVrfIfUp
mplsVrfIfDown
mplsNumVrfRouteMidThreshExceeded
mplsNumVrfRouteMaxThreshExceeded
mplsNumVrfSecIllegalLabelThreshExceeded
.1.3.6.1.3.118.0.1
.1.3.6.1.3.118.0.2
.1.3.6.1.3.118.0.3
.1.3.6.1.3.118.0.4
.1.3.6.1.3.118.0.5
msdpDRAFT-MSDP-MIB
CISCO-IETF-MSDP-MIB
msdpEstablished
msdpBackwardTransition
cMsdpEstablished
cMsdpBackwardTransition
.1.3.6.1.3.92.1.1.7.0.1
.1.3.6.1.3.92.1.1.7.0.2
.1.3.6.1.4.1.9.10.130.1.1.0.1
.1.3.6.1.4.1.9.10.130.1.1.0.2
mvpnCISCO-MVPN-MIBciscoMvpnMvrfChange.1.3.6.1.4.1.9.10.113.0.2
nhrpCISCO-NHRP-EXT-MIBcneNotifNextHopRegServerUp
cneNotifNextHopRegServerDown
cneNotifNextHopRegClientUp
cneNotifNextHopRegClientDown
cneNotifNextHopPeerUp
cneNotifNextHopPeerDown
cneNotifRateLimitExceeded
.1.3.6.1.4.1.9.9.680.0.1
.1.3.6.1.4.1.9.9.680.0.2
.1.3.6.1.4.1.9.9.680.0.3
.1.3.6.1.4.1.9.9.680.0.4
.1.3.6.1.4.1.9.9.680.0.5
.1.3.6.1.4.1.9.9.680.0.6
.1.3.6.1.4.1.9.9.680.0.7
ospfOSPF-TRAP-MIBospfVirtIfStateChange
ospfNbrStateChange
ospfVirtNbrStateChange
ospfIfConfigError
ospfVirtIfConfigError
ospfIfAuthFailure
ospfVirtIfAuthFailure
ospfIfRxBadPacket
ospfVirtIfRxBadPacket
ospfTxRetransmit
ospfVirtIfTxRetransmit
ospfOriginateLsa
ospfMaxAgeLsa
ospfLsdbOverflow
ospfLsdbApproachingOverflow
ospfIfStateChange
ospfNssaTranslatorStatusChange
ospfRestartStatusChange
ospfNbrRestartHelperStatusChange
ospfVirtNbrRestartHelperStatusChange
.1.3.6.1.2.1.14.16.2.0.1
.1.3.6.1.2.1.14.16.2.0.2
.1.3.6.1.2.1.14.16.2.0.3
.1.3.6.1.2.1.14.16.2.0.4
.1.3.6.1.2.1.14.16.2.0.5
.1.3.6.1.2.1.14.16.2.0.6
.1.3.6.1.2.1.14.16.2.0.7
.1.3.6.1.2.1.14.16.2.0.8
.1.3.6.1.2.1.14.16.2.0.9
.1.3.6.1.2.1.14.16.2.0.10
.1.3.6.1.2.1.14.16.2.0.11
.1.3.6.1.2.1.14.16.2.0.12
.1.3.6.1.2.1.14.16.2.0.13
.1.3.6.1.2.1.14.16.2.0.14
.1.3.6.1.2.1.14.16.2.0.15
.1.3.6.1.2.1.14.16.2.0.16
.1.3.6.1.2.1.14.16.2.0.17
.1.3.6.1.2.1.14.16.2.0.18
.1.3.6.1.2.1.14.16.2.0.19
.1.3.6.1.2.1.14.16.2.0.20
ospf cisco-specificCISCO-OSPF-TRAP-MIBcospfIfConfigError
cospfVirtIfConfigError
cospfTxRetransmit
cospfVirtIfTxRetransmit
cospfOriginateLsa
cospfMaxAgeLsa
cospfNssaTranslatorStatusChange
cospfShamLinkStateChange
cospfShamLinkNbrStateChange
cospfShamLinkConfigError
cospfShamLinkAuthFailure
cospfShamLinkRxBadPacket
cospfShamLinkTxRetransmit
cospfShamLinksStateChange
.1.3.6.1.4.1.9.10.101.0.1
.1.3.6.1.4.1.9.10.101.0.2
.1.3.6.1.4.1.9.10.101.0.3
.1.3.6.1.4.1.9.10.101.0.4
.1.3.6.1.4.1.9.10.101.0.5
.1.3.6.1.4.1.9.10.101.0.6
.1.3.6.1.4.1.9.10.101.0.7
.1.3.6.1.4.1.9.10.101.0.8
.1.3.6.1.4.1.9.10.101.0.9
.1.3.6.1.4.1.9.10.101.0.10
.1.3.6.1.4.1.9.10.101.0.11
.1.3.6.1.4.1.9.10.101.0.12
.1.3.6.1.4.1.9.10.101.0.13
.1.3.6.1.4.1.9.10.101.0.14
pimPIM-MIB
CISCO-IETF-PIM-MIB
CISCO-PIM-MIB
pimNeighborLoss
cPimNbrLoss
ciscoPimInterfaceUp
ciscoPimInterfaceDown
ciscoPimRPMappingChange
ciscoPimInvalidRegister
ciscoPimInvalidJoinPrune
.1.3.6.1.3.61.1.0.1
.1.3.6.1.4.1.9.10.119.0.2
.1.3.6.1.4.1.9.9.184.2.0.1
.1.3.6.1.4.1.9.9.184.2.0.2
.1.3.6.1.4.1.9.9.184.2.0.3
.1.3.6.1.4.1.9.9.184.2.0.4
.1.3.6.1.4.1.9.9.184.2.0.5
pppoeCISCO-PPPOE-MIBcPppoeSystemSessionThresholdTrap
cPppoeVcSessionThresholdTrap
cPppoeSystemSessionPerMACLimitNotif
cPppoeSystemSessionPerMACThrottleNotif
cPppoeSystemSessionPerVLANLimitNotif
cPppoeSystemSessionPerVLANThrottleNotif
cPppoeSystemSessionPerVCLimitNotif
cPppoeSystemSessionPerVCThrottleNotif
cPppoeSystemSessionLossThresholdNotif
cPppoePerInterfaceSessionLossThresholdNotif
cPppoeSystemSessionLossPercentNotif
cPppoePerInterfaceSessionLossPercentNotif
.1.3.6.1.4.1.9.9.194.2.0.1
.1.3.6.1.4.1.9.9.194.2.0.2
.1.3.6.1.4.1.9.9.194.2.0.3
.1.3.6.1.4.1.9.9.194.2.0.4
.1.3.6.1.4.1.9.9.194.2.0.5
.1.3.6.1.4.1.9.9.194.2.0.6
.1.3.6.1.4.1.9.9.194.2.0.7
.1.3.6.1.4.1.9.9.194.2.0.8
.1.3.6.1.4.1.9.9.194.2.0.9
.1.3.6.1.4.1.9.9.194.2.0.10
.1.3.6.1.4.1.9.9.194.2.0.11
.1.3.6.1.4.1.9.9.194.2.0.12
pwCISCO-IETF-PW-MIBcpwVcDown
cpwVcUp
.1.3.6.1.4.1.9.10.106.2.0.1
.1.3.6.1.4.1.9.10.106.2.0.2
resource-policyCISCO-ERM-MIBciscoErmGlobalPolicyViolation
ciscoErmLocalPolicyViolation
.1.3.6.1.4.1.9.9.510.0.1
.1.3.6.1.4.1.9.9.510.0.2
rfCISCO-RF-MIBciscoRFSwactNotif
ciscoRFProgressionNotif
ciscoRFIssuStateNotif
ciscoRFIssuStateNotifRev1
.1.3.6.1.4.1.9.9.176.2.0.1
.1.3.6.1.4.1.9.9.176.2.0.2
.1.3.6.1.4.1.9.9.176.2.0.3
.1.3.6.1.4.1.9.9.176.2.0.4
rsvpRSVP-MIBnewFlow
lostFlow
.1.3.6.1.2.1.51.3.0.1
.1.3.6.1.2.1.51.3.0.2
snmpSNMPv2-MIB
IF-MIB
CISCOTRAP-MIB
coldStart
warmStart
linkDown
linkUp
authenticationFailure
.1.3.6.1.6.3.1.1.5.1
.1.3.6.1.6.3.1.1.5.2
.1.3.6.1.6.3.1.1.5.3
.1.3.6.1.6.3.1.1.5.4
.1.3.6.1.6.3.1.1.5.5
srpCISCO-SRP-MIBsrpTrapRingWrapped
srpTrapRingRestored
.1.3.6.1.4.1.9.10.60.5.0.1
.1.3.6.1.4.1.9.10.60.5.0.2
srstCISCO-SRST-MIBcsrstStateChange
csrstFailNotif
csrstSipPhoneUnRegThresholdExceed
csrstSipPhoneRegFailed
csrstConferenceFailed
.1.3.6.1.4.1.9.9.441.0.1
.1.3.6.1.4.1.9.9.441.0.2
.1.3.6.1.4.1.9.9.441.0.3
.1.3.6.1.4.1.9.9.441.0.4
.1.3.6.1.4.1.9.9.441.0.5
syslogCISCO-SYSLOG-MIBclogMessageGenerated.1.3.6.1.4.1.9.9.41.2.0.1
ttyCISCOTRAP-MIBtcpConnectionClose.1.3.6.1.4.1.9.0.1
voiceCISCO-VOICE-DIAL-CONTROL-MIBcvdcPoorQoVNotification
cvdcPoorQoVNotificationRev1
cvdcActiveDS0sHighNotification
cvdcActiveDS0sLowNotification
cvdcFallbackNotification
.1.3.6.1.4.1.9.9.63.2.0.1
.1.3.6.1.4.1.9.9.63.2.0.2
.1.3.6.1.4.1.9.9.63.2.0.3
.1.3.6.1.4.1.9.9.63.2.0.4
.1.3.6.1.4.1.9.9.63.2.0.5
vrfmibCISCO-VRF-MIBcvVrfIfUp
cvVrfIfDown
cvVnetTrunkUp
cvVnetTrunkDown
.1.3.6.1.4.1.9.9.711.0.1
.1.3.6.1.4.1.9.9.711.0.2
.1.3.6.1.4.1.9.9.711.0.3
.1.3.6.1.4.1.9.9.711.0.4
vrrpVRRP-MIB
CISCO-IETF-VRRP-MIB
vrrpTrapNewMaster
vrrpTrapAuthFailure
cVrrpNotificationNewMaster
cVrrpNotificationProtoError
.1.3.6.1.2.1.68.0.1
.1.3.6.1.2.1.68.0.2
.1.3.6.1.4.1.9.10.999.0.1
.1.3.6.1.4.1.9.10.999.0.3
xgcpXGCP-MIBxgcpUpDownNotification.1.3.6.1.3.90.2.0.1
今回は例として、上記の通知タイプの中から snmp と hsrp のトラップ定義を作成することにします。

2. MIB ファイルのダウンロード

snmpttconvertmib コマンドでトラップ定義ファイルを作成するためには、そのトラップを定義している MIB ファイルと、その関連ファイルが必要になります。

先程の表にも記載していますが、snmp という通知タイプに属する 5 種類のトラップのうち、coldStart / warmStart / authenticationFailure の 3 つは SNMPv2-MIB に、linkDown / linkUp の 2 つは IF-MIB に定義されており、さらに warmStart を除く 4 種のトラップが CISCOTRAP-MIB で再定義されています。従って、これらのトラップの定義ファイルを作成するためには、SNMPv2-MIB、IF-MIB、CISCOTRAP-MIB の 3 つのモジュールを定義するファイルと、その関連ファイルが必要です。

ここで「関連ファイルとは何か」を説明する前に、CISCOTRAP-MIB で IETF の標準トラップの再定義を行う意味について簡単に説明しておきます。

通常、Cisco が RFC ベースのトラップを拡張及び再定義する場合には、CISCO-<オリジナルの MIB モジュール名> というモジュールを作成し、その中で Cisco 独自の OID を使用することが多いのですが、上記一般トラップについては元の OID をそのまま置き換えています。従って、同じ linkDown トラップを発行するのでも、IETF 準拠の機器と Cisco のルータでは異なるフォーマットのトラップを投げることになります(Cisco のルータでも、設定で IETF 準拠のトラップを発行するよう設定することは可能ですが、デフォルトは Cisco 独自フォーマットです)。

それでは、IETF 準拠のトラップと、Cisco が再定義したトラップの違いを見てみましょう。以下は、IF-MIB と CISCOTRAP-MIB が linkDown を定義している部分を抜き出したものです。

IF-MIB
linkDown NOTIFICATION-TYPE
  OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
  STATUS current
  DESCRIPTION
      "A linkDown trap signifies that the SNMP entity, acting in
      an agent role, has detected that the ifOperStatus object for
      one of its communication links is about to enter the down
      state from some other state (but not from the notPresent
      state). This other state is indicated by the included value
      of ifOperStatus."
  ::= { snmpTraps 3 }
CISCOTRAP-MIB
linkDown TRAP-TYPE
  ENTERPRISE snmp
  VARIABLES  { ifIndex, ifDescr, ifType, locIfReason }
  DESCRIPTION
        "A linkDown trap signifies that the sending
        protocol entity recognizes a failure in one of
        the communication links represented in the
        agent's configuration."
  ::= 2
そもそも書式が違いますが、これは IF-MIB が SNMPv2 用の書式(SMIv2)で書かれている一方で、CISCOTRAP-MIB が SNMPv1 用の書式(SMIv1)で書かれているためです。通常、Cisco の MIB には SMIv2 で記述されたもの(例:CISCO-HSRP-MIB.my)とその SMIv1 版(例:CISCO-HSRP-MIB-V1SMI.my)が存在しますが、CISCOTRAP-MIB には SMIv1 版しか存在しないため、このように異なる書式のものを並べています。この点についてはここではあまり重要ではないので、気にしないで下さい。

重要なのは VARIABLES に続く変数バインディングの違いです。もともと linkDown トラップに含まれるインターフェースの識別情報は ifIndex のみでしたが、CISCOTRAP-MIB の定義ではこれに ifDescr が加わることで、FastEthernet0/0 といった分かりやすいインターフェース名を監視に利用することができるようになっています。また、ifAdminStatus と ifOperStatus というインターフェースの状態を表す変数バインディングが、locIfReason に置き換えられています。

実際にトラップの中身を見てみましょう。次の画像は標準状態の Cisco ルータが発行する v1 の linkDown トラップをキャプチャしたものです。

snmptt_2-1.png

次の画像は、Net-SNMP を使用して IETF 準拠のフォーマットで v1 の linkDown トラップを発行した際のキャプチャイメージです。

snmptt_2-3.png

これを見てわかるように、Cisco 独自フォーマットの場合、ダウンしたインターフェース名を特定するにはトラップに含まれる ifDescr の値を見ればよいのですが、IETF 準拠のフォーマットでは別途 interfaces テーブルの情報を取得し、ifIndex の値に対応する ifDescr の値を確認する必要があります。

また、IETF フォーマットの場合、トラップの発生原因がケーブルの抜けなのか管理者による shutdown なのかを特定するためには ifAdminStatus と ifOperStatus の値の組み合わせを解釈しなければなりません(ifAdminStatus=down & ifOperStatus=down → 管理者による shutdown、ifAdminStatus=up & ifOperStatus=down → ケーブル抜け、等)。それに対して、Cisco 独自フォーマットに含まれる locIfReason はインターフェースがなぜダウンしたかという理由をよりわかりやすい形("administratively down", "Keepalive OK" 等)で表示してくれます。

その他、coldStart / authenticationFailure トラップでも、それぞれ以下のような変数バインディングの拡張が行われています。

トラップ内容
coldStart変数バインディングに sysUpTime と whyReload が追加され、再起動してからの時間と再起動の理由が確認できるようになった。
authenticationFailure変数バインディングに authAddr が追加され、不正なコミュニティ名によるリクエストを実行しているノードのアドレスが確認できるようになった。
なお、先程も述べたように、Cisco のルータ・スイッチでも IETF 準拠のトラップを発行するよう設定することは可能です。次の画像は、snmp-server trap link ietf コマンドを設定して、IETF 準拠のトラップを発行するよう設定した Cisco ルータの linkDown トラップをキャプチャしたものです。

snmptt_2-2.png

この画像を見て、「IETF 準拠といいつつ、結局変数バインディングに ifDescr や locIfReason が入っているじゃないか」と思われるかもしれませんが、IF-MIB で定義された変数バインディングが、定義された順番の通りに並んでいる点に注目して下さい。これにより、Net-SNMP のトラップなどと同じメッセージフォーマットを利用して監視を行うことも、新規にフォーマットを定義して ifDescr や locIfReason を監視に利用することもできます。

とはいえ、新規にフォーマットを定義するのであれば、変数バインディングが増えてトラップのサイズが大きくなること、あるいは全ての Cisco 機器にコマンドを設定する手間を考えると、デフォルトの Cisco 独自フォーマットのままで利用するのが現実的でしょう。



さて、CISCOTRAP-MIB によるトラップの再定義の意味が理解できたところで、再び必要ファイルの洗い出しに戻ります。

先程、SNMPv2-MIB、IF-MIB、CISCOTRAP-MIB の 3 つのモジュールを定義したファイルと、その関連ファイルが必要という話をしました。SNMPv2-MIB、IF-MIB については、通常 Net-SNMP の MIB ディレクトリ(/usr/share/snmp/mibs)にそれぞれ SNMPv2-MIB.txt、IF-MIB.txt という名前のテキストが存在するので、そちらを利用すればよいでしょう。また、CISCOTRAP-MIB については Cisco の FTP サイトの v1 ディレクトリにある CISCO-GENERAL-TRAPS.my をダウンロードして下さい。

手間がかかるのが関連ファイルの調査です。MIB モジュールには依存関係があるため、例えば CISCOTRAPS-MIB を使用してトラップ定義を作成するには、CISCOTRAPS-MIB が依存している以下の MIB モジュールを予めロードしておく必要があります。

RFC1213-MIB
RFC-1215
CISCO-SMI
OLD-CISCO-SYSTEM-MIB
OLD-CISCO-INTERFACES-MIB
OLD-CISCO-TS-MIB
OLD-CISCO-TCP-MIB


また、当然ながらこれらの MIB モジュールにも依存関係があるため、さらに以下の MIB モジュールが必要となります。

SNMPv2-SMI
SNMPv2-TC
IANAifType-MIB
RFC1155-SMI
RFC-1212


MIB の依存関係については、MIB ファイルの先頭に記述されている IMPORTS ブロックを確認する方法が基本ですが、Cisco の MIB であれば SNMP Object Navigator を利用することもできます。



CISCOTRAP-MIB の IMPORTS ブロックを確認する場合(青字部分は追記)

    CISCOTRAP-MIB DEFINITIONS ::= BEGIN

          IMPORTS
              snmp
                   FROM SNMPv2-MIB
              sysUpTime, ifIndex, ifDescr, ifType, egpNeighAddr, 
              tcpConnState
                   FROM RFC1213-MIB
              cisco
                   FROM CISCO-SMI
              whyReload, authAddr
                   FROM OLD-CISCO-SYSTEM-MIB
              locIfReason
                   FROM OLD-CISCO-INTERFACES-MIB
              tslineSesType, tsLineUser
                   FROM OLD-CISCO-TS-MIB
              loctcpConnElapsed, loctcpConnInBytes, loctcpConnOutBytes
                   FROM OLD-CISCO-TCP-MIB
              TRAP-TYPE
                   FROM RFC-1215;
    ~以下省略~

ここでは「FROM ~」という記述のある SNMPv2-MIB、RFC1213-MIB、CISCO-SMI、OLD-CISCO-SYSTEM-MIB、OLD-CISCO-INTERFACES-MIB、OLD-CISCO-TS-MIB、OLD-CISCO-TCP-MIB、RFC-1215 が必要であることが分かります。


SNMP Object Navigator を利用する場合

① VIEW & DOWNLOAD MIBS タブを開き、リストから CISCO-GENERAL-TRAPS を選択、View MIB dependencies and download MIB をチェックして Submit ボタンをクリックします。

snmptt_2-5.png

② 依存関係のある MIB の一覧が表示されるので、必要に応じてダウンロードします。

snmptt_2-6.png

ここでは SNMPv2-SMI、SNMPv2-TC、IANAifType-MIB、RFC1155-SMI、RFC-1212、RFC1213-MIB、CISCO-SMI、OLD-CISCO-SYSTEM-MIB、OLD-CISCO-INTERFACES-MIB、OLD-CISCO-TS-MIB、OLD-CISCO-TCP-MIB、RFC-1215 が必要であることがわかります。

SNMP Object Navigator は関連する MIB の依存関係について一括で表示してくれるため、複雑な依存関係を持った MIB を読み込む際には非常に有用です。


これらの MIB モジュールの内、Cisco のエンタープライズ MIB 以外のものは Net-SNMP の MIB ディレクトリにデフォルトで存在するため、それをそのまま使用すればよいでしょう。Cisco の MIB に関しては、FTP サイトからダウンロードして、その他の MIB と同様に MIB ディレクトリに配置して下さい。

今回は HSRP の MIB も使用するため、最終的に MIB ディレクトリに配置されるファイルは以下のようになります(青字が今回必要なファイル)。

[root@centos6 ~]# ls -l /usr/share/snmp/mibs/
合計 1876
-rw-r--r--. 1 root root  17455  6月 25 12:01 2011 AGENTX-MIB.txt
-rw-r--r--. 1 root root  50948  6月 25 12:01 2011 BRIDGE-MIB.txt
-rw-r--r--. 1 root root  20731  1月  7 12:11 2006 CISCO-HSRP-MIB.my
-rw-r--r--. 1 root root   9195  7月  6 16:00 2000 CISCO-SMI.my
-rw-r--r--. 1 root root  68104  6月 25 12:01 2011 DISMAN-EVENT-MIB.txt
-rw-r--r--. 1 root root  24613  6月 25 12:01 2011 DISMAN-SCHEDULE-MIB.txt
-rw-r--r--. 1 root root  64311  6月 25 12:01 2011 DISMAN-SCRIPT-MIB.txt
-rw-r--r--. 1 root root  84492  6月 25 12:01 2011 EtherLike-MIB.txt
-rw-r--r--. 1 root root   4660  6月 25 12:01 2011 HCNUM-TC.txt
-rw-r--r--. 1 root root  52544  6月 25 12:01 2011 HOST-RESOURCES-MIB.txt
-rw-r--r--. 1 root root  10583  6月 25 12:01 2011 HOST-RESOURCES-TYPES.txt
-rw-r--r--. 1 root root   4819  6月 25 12:01 2011 IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
-rw-r--r--. 1 root root   4299  6月 25 12:01 2011 IANA-LANGUAGE-MIB.txt
-rw-r--r--. 1 root root   3513  6月 25 12:01 2011 IANA-RTPROTO-MIB.txt
-rw-r--r--. 1 root root  29665  6月 25 12:01 2011 IANAifType-MIB.txt
-rw-r--r--. 1 root root   5066  6月 25 12:01 2011 IF-INVERTED-STACK-MIB.txt
-rw-r--r--. 1 root root  71691  6月 25 12:01 2011 IF-MIB.txt
-rw-r--r--. 1 root root  16782  6月 25 12:01 2011 INET-ADDRESS-MIB.txt
-rw-r--r--. 1 root root  46286  6月 25 12:01 2011 IP-FORWARD-MIB.txt
-rw-r--r--. 1 root root 185667  6月 25 12:01 2011 IP-MIB.txt
-rw-r--r--. 1 root root  15936  6月 25 12:01 2011 IPV6-ICMP-MIB.txt
-rw-r--r--. 1 root root  48703  6月 25 12:01 2011 IPV6-MIB.txt
-rw-r--r--. 1 root root   2367  6月 25 12:01 2011 IPV6-TC.txt
-rw-r--r--. 1 root root   7257  6月 25 12:01 2011 IPV6-TCP-MIB.txt
-rw-r--r--. 1 root root   4400  6月 25 12:01 2011 IPV6-UDP-MIB.txt
-rw-r--r--. 1 root root   5931  6月 25 12:01 2011 LM-SENSORS-MIB.txt
-rw-r--r--. 1 root root  42375  6月 25 12:01 2011 MTA-MIB.txt
-rw-r--r--. 1 root root  15732  6月 25 12:01 2011 NET-SNMP-AGENT-MIB.txt
-rw-r--r--. 1 root root   9160  6月 25 12:01 2011 NET-SNMP-EXAMPLES-MIB.txt
-rw-r--r--. 1 root root   9198  6月 25 12:01 2011 NET-SNMP-EXTEND-MIB.txt
-rw-r--r--. 1 root root   2036  6月 25 12:01 2011 NET-SNMP-MIB.txt
-rw-r--r--. 1 root root   3351  6月 25 12:01 2011 NET-SNMP-PASS-MIB.txt
-rw-r--r--. 1 root root   4686  6月 25 12:01 2011 NET-SNMP-TC.txt
-rw-r--r--. 1 root root   5039  6月 25 12:01 2011 NET-SNMP-VACM-MIB.txt
-rw-r--r--. 1 root root  21006  6月 25 12:01 2011 NETWORK-SERVICES-MIB.txt
-rw-r--r--. 1 root root  24694  6月 25 12:01 2011 NOTIFICATION-LOG-MIB.txt
-rw-r--r--. 1 root root  50604  6月 25 16:00 1999 OLD-CISCO-INTERFACES-MIB.my
-rw-r--r--. 1 root root   8311  6月 25 16:00 1999 OLD-CISCO-SYSTEM-MIB.my
-rw-r--r--. 1 root root   4129  6月 25 16:00 1999 OLD-CISCO-TCP-MIB.my
-rw-r--r--. 1 root root  18982  6月 25 16:00 1999 OLD-CISCO-TS-MIB.my
-rw-r--r--. 1 root root   1174  6月 25 12:01 2011 RFC-1215.txt
-rw-r--r--. 1 root root   3067  6月 25 12:01 2011 RFC1155-SMI.txt
-rw-r--r--. 1 root root  79667  6月 25 12:01 2011 RFC1213-MIB.txt
-rw-r--r--. 1 root root 147822  6月 25 12:01 2011 RMON-MIB.txt
-rw-r--r--. 1 root root  45323  6月 25 12:01 2011 SCTP-MIB.txt
-rw-r--r--. 1 root root   4595  6月 25 12:01 2011 SMUX-MIB.txt
-rw-r--r--. 1 root root  15490  6月 25 12:01 2011 SNMP-COMMUNITY-MIB.txt
-rw-r--r--. 1 root root  22342  6月 25 12:01 2011 SNMP-FRAMEWORK-MIB.txt
-rw-r--r--. 1 root root   5496  6月 25 12:01 2011 SNMP-MPD-MIB.txt
-rw-r--r--. 1 root root  20014  6月 25 12:01 2011 SNMP-NOTIFICATION-MIB.txt
-rw-r--r--. 1 root root   9106  6月 25 12:01 2011 SNMP-PROXY-MIB.txt
-rw-r--r--. 1 root root  22769  6月 25 12:01 2011 SNMP-TARGET-MIB.txt
-rw-r--r--. 1 root root  39201  6月 25 12:01 2011 SNMP-USER-BASED-SM-MIB.txt
-rw-r--r--. 1 root root   2205  6月 25 12:01 2011 SNMP-USM-AES-MIB.txt
-rw-r--r--. 1 root root  21101  6月 25 12:01 2011 SNMP-USM-DH-OBJECTS-MIB.txt
-rw-r--r--. 1 root root  34162  6月 25 12:01 2011 SNMP-VIEW-BASED-ACM-MIB.txt
-rw-r--r--. 1 root root   8263  6月 25 12:01 2011 SNMPv2-CONF.txt
-rw-r--r--. 1 root root  29305  6月 25 12:01 2011 SNMPv2-MIB.txt
-rw-r--r--. 1 root root   8924  6月 25 12:01 2011 SNMPv2-SMI.txt
-rw-r--r--. 1 root root  38034  6月 25 12:01 2011 SNMPv2-TC.txt
-rw-r--r--. 1 root root   5775  6月 25 12:01 2011 SNMPv2-TM.txt
-rw-r--r--. 1 root root  28564  6月 25 12:01 2011 TCP-MIB.txt
-rw-r--r--. 1 root root  16418  6月 25 12:01 2011 TRANSPORT-ADDRESS-MIB.txt
-rw-r--r--. 1 root root   2163  6月 25 12:01 2011 UCD-DEMO-MIB.txt
-rw-r--r--. 1 root root   4402  6月 25 12:01 2011 UCD-DISKIO-MIB.txt
-rw-r--r--. 1 root root   3010  6月 25 12:01 2011 UCD-DLMOD-MIB.txt
-rw-r--r--. 1 root root   8118  6月 25 12:01 2011 UCD-IPFWACC-MIB.txt
-rw-r--r--. 1 root root  46150  6月 25 12:01 2011 UCD-SNMP-MIB.txt
-rw-r--r--. 1 root root  20882  6月 25 12:01 2011 UDP-MIB.txt

3. トラップ定義ファイルの作成

MIBS 環境変数を export し、MIB ディレクトリ内の全ての MIB モジュールをロードするよう設定します。

[root@centos6 ~]# export MIBS=+ALL

snmpttconvertmib のコマンドラインオプションを確認しておきます。必須オプションは --in と --out、その他よく使うオプションとして、SDESC-EDESC ブロックに変数バインディングの詳細な説明を含むよう指定する --net_snmp_perl があります。

[root@centos6 ~]# snmpttconvertmib --h

SNMPTTCONVERTMIB v1.3
(c) 2002-2007 Alex Burger
http://snmptt.sourceforge.net

Usage:
  snmpttconvertmib --in= --out= []
Options:
  --debug=n              Set debug level (1 or 2)
  --help                 Display this message
  --version              Display author and version information
  --net_snmp_perl        Enable NET-SNMP Perl integration (see below)
  --in=filename          Input file
  --out=filename         Output file
  --nodes=name or file   If specified, will insert a NODES line after FORMAT or
                         EXEC.  The host name(s) separated by spaces, or the
                         name of the nodes file.  Use quotes for multiple
                         entries.  See NODES section in readme.html for examples
  --no_description       Do not save the description
  --no_variables         Do not save the variable list in the description
  --no_format_summary    Do not use the --#SUMMARY lines for FORMAT / EXEC
  --no_format_desc       Do not use the description line for FORMAT / EXEC
  --no_severity          Do not use the --#SEVERITY line for EVENT line.  Default
                         severity of "Normal" will be used, unless --severity= is
                         set
  --severity=s           Severity level for EVENT line.  Only used if there is no
                         --#SEVERITY line, or --no_severity is set.  Must NOT
                         contain any spaces.
                         Example:
                           Critical
  --format=n             FORMAT / EXEC order preference
                           0 = --#SUMMARY or description
                           1 = description or --#SUMMARY
                           2 = --#SUMMARY and description
                           3 = description and --#SUMMARY
  --format_desc=n        How to convert the description line for FORMAT / EXEC
                           0 = First line of description
                           n = n sentence(s) of description
  --no_desc_wildcard     To prevent $* from being appended to the end of
                         description text when used on the FORMAT / EXEC
                         lines.  A wildcard is only used if the description
                         line contained no variable definitions (%n).
  --exec=command         Command line to use for EXEC line.  Use SINGLE quotes
                         with Unix.  Example:
                           'qpage -f TRAP notifygroup1'

  Note:  The only benefit in using the --net_snmp_perl switch (which requires the
         Net-SNMP Perl module to be installed) is that the Variables: description section
         will include:
           -variable syntax
           -variable description
           -variable enums

           For example:
           2: globalStatus
              Syntax="INTEGER"
                2: ok
                4: failure
              Descr="Current status of the entire library system"

snmpttconvertmib コマンドを実行し、CISCOTRAP-MIB のトラップ定義を作成します。

[root@centos6 ~]# snmpttconvertmib --in=/usr/share/snmp/mibs/CISCO-GENERAL-TRAPS.my --out=/etc/snmp/snmptt-cisco.conf --net_snmp_perl


*****  UCD-SNMP / NET-SNMP Perl module enabled *****



*****  Processing MIB file *****

snmptranslate version: NET-SNMP version: 5.5
severity: Normal

File to load is:        /usr/share/snmp/mibs/CISCO-GENERAL-TRAPS.my
File to APPEND TO:      /etc/snmp/snmptt-cisco.conf

MIBS environment var:   /usr/share/snmp/mibs/CISCO-GENERAL-TRAPS.my
mib name: CISCOTRAP-MIB


*****  Using UCD-SNMP / NET-SNMP Perl module *****



Processing MIB:         CISCOTRAP-MIB
#
skipping a TRAP-TYPE / NOTIFICATION-TYPE line - probably an import line.
#
Line: 23
TRAP-TYPE: coldStart
Variables: sysUpTime whyReload
Looking up via snmptranslate: CISCOTRAP-MIB::coldStart
OID: .1.3.6.1.2.1.11.0.0
#
Line: 33
TRAP-TYPE: linkDown
Variables: ifIndex ifDescr ifType locIfReason
Looking up via snmptranslate: CISCOTRAP-MIB::linkDown
OID: .1.3.6.1.2.1.11.0.2
#
Line: 43
TRAP-TYPE: linkUp
Variables: ifIndex ifDescr ifType locIfReason
Looking up via snmptranslate: CISCOTRAP-MIB::linkUp
OID: .1.3.6.1.2.1.11.0.3
#
Line: 53
TRAP-TYPE: authenticationFailure
Variables: authAddr
Looking up via snmptranslate: CISCOTRAP-MIB::authenticationFailure
OID: .1.3.6.1.2.1.11.0.4
#
Line: 67
TRAP-TYPE: egpNeighborLoss
Variables: egpNeighAddr
Looking up via snmptranslate: CISCOTRAP-MIB::egpNeighborLoss
OID: .1.3.6.1.2.1.11.0.5
#
Line: 79
TRAP-TYPE: reload
Variables: sysUpTime whyReload
Looking up via snmptranslate: CISCOTRAP-MIB::reload
OID: .1.3.6.1.4.1.9.0.0
#
Line: 89
TRAP-TYPE: tcpConnectionClose
Variables: tslineSesType tcpConnState loctcpConnElapsed loctcpConnInBytes loctcpConnOutBytes tsLineUser
Looking up via snmptranslate: CISCOTRAP-MIB::tcpConnectionClose
OID: .1.3.6.1.4.1.9.0.1


Done

Total translations:        7
Successful translations:   7
Failed translations:       0

同様に、CISCO-HSRP-MIB のトラップ定義を作成します。出力ファイルに既存ファイルを指定した場合は、ファイルの末尾にトラップ定義が追記される動作となります。

[root@centos6 ~]# snmpttconvertmib --in=/usr/share/snmp/mibs/CISCO-HSRP-MIB.my --out=/etc/
snmp/snmptt-cisco.conf --net_snmp_perl


*****  UCD-SNMP / NET-SNMP Perl module enabled *****



*****  Processing MIB file *****

snmptranslate version: NET-SNMP version: 5.5
severity: Normal

File to load is:        /usr/share/snmp/mibs/CISCO-HSRP-MIB.my
File to APPEND TO:      /etc/snmp/snmptt-cisco.conf

MIBS environment var:   /usr/share/snmp/mibs/CISCO-HSRP-MIB.my
mib name: CISCO-HSRP-MIB


*****  Using UCD-SNMP / NET-SNMP Perl module *****



Processing MIB:         CISCO-HSRP-MIB
#
skipping a TRAP-TYPE / NOTIFICATION-TYPE line - probably an import line.
#
Line: 465
NOTIFICATION-TYPE: cHsrpStateChange
Variables: cHsrpGrpStandbyState
Enterprise: cHsrpMIBNotifications
Looking up via snmptranslate: CISCO-HSRP-MIB::cHsrpStateChange
OID: .1.3.6.1.4.1.9.9.106.2.0.1


Done

Total translations:        1
Successful translations:   1
Failed translations:       0

次に、一般トラップのトラップ定義を作成します。出力ファイルを RFC で定義される標準トラップ用のものに切り替えています。

[root@centos6 ~]# snmpttconvertmib --in=/usr/share/snmp/mibs/SNMPv2-MIB.txt --out=/etc/snm
p/snmptt-standard.conf --net_snmp_perl


*****  UCD-SNMP / NET-SNMP Perl module enabled *****



*****  Processing MIB file *****

snmptranslate version: NET-SNMP version: 5.5
severity: Normal

File to load is:        /usr/share/snmp/mibs/SNMPv2-MIB.txt
File to APPEND TO:      /etc/snmp/snmptt-standard.conf

MIBS environment var:   /usr/share/snmp/mibs/SNMPv2-MIB.txt
mib name: SNMPv2-MIB


*****  Using UCD-SNMP / NET-SNMP Perl module *****



Processing MIB:         SNMPv2-MIB
#
skipping a TRAP-TYPE / NOTIFICATION-TYPE line - probably an import line.
#
Line: 420
NOTIFICATION-TYPE: coldStart
Enterprise: snmpTraps
Looking up via snmptranslate: SNMPv2-MIB::coldStart
OID: .1.3.6.1.6.3.1.1.5.1
#
Line: 429
NOTIFICATION-TYPE: warmStart
Enterprise: snmpTraps
Looking up via snmptranslate: SNMPv2-MIB::warmStart
OID: .1.3.6.1.6.3.1.1.5.2
#
Line: 442
NOTIFICATION-TYPE: authenticationFailure
Enterprise: snmpTraps
Looking up via snmptranslate: SNMPv2-MIB::authenticationFailure
OID: .1.3.6.1.6.3.1.1.5.5


Done

Total translations:        3
Successful translations:   3
Failed translations:       0
[root@centos6 ~]# snmpttconvertmib --in=/usr/share/snmp/mibs/IF-MIB.txt --out=/etc/snmp/sn
mptt-standard.conf --net_snmp_perl


*****  UCD-SNMP / NET-SNMP Perl module enabled *****



*****  Processing MIB file *****

snmptranslate version: NET-SNMP version: 5.5
severity: Normal

File to load is:        /usr/share/snmp/mibs/IF-MIB.txt
File to APPEND TO:      /etc/snmp/snmptt-standard.conf

MIBS environment var:   /usr/share/snmp/mibs/IF-MIB.txt
mib name: IF-MIB


*****  Using UCD-SNMP / NET-SNMP Perl module *****



Processing MIB:         IF-MIB
#
skipping a TRAP-TYPE / NOTIFICATION-TYPE line - probably an import line.
#
Line: 1105
NOTIFICATION-TYPE: linkDown
Variables: ifIndex ifAdminStatus ifOperStatus
Enterprise: snmpTraps
Looking up via snmptranslate: IF-MIB::linkDown
OID: .1.3.6.1.6.3.1.1.5.3
#
Line: 1117
NOTIFICATION-TYPE: linkUp
Variables: ifIndex ifAdminStatus ifOperStatus
Enterprise: snmpTraps
Looking up via snmptranslate: IF-MIB::linkUp
OID: .1.3.6.1.6.3.1.1.5.4


Done

Total translations:        2
Successful translations:   2
Failed translations:       0

作成した定義ファイルの内容を確認します。

[root@centos6 ~]# cat /etc/snmp/snmptt-cisco.conf
#
#
#
#
MIB: CISCOTRAP-MIB (file:/usr/share/snmp/mibs/CISCO-GENERAL-TRAPS.my) converted on Thu Jul 21 18:20:05 2011 using snmpttconvertmib v1.3
#
#
#
EVENT coldStart .1.3.6.1.2.1.11.0.0 "Status Events" Normal
FORMAT A coldStart trap signifies that the sending $*
SDESC
A coldStart trap signifies that the sending
protocol entity is reinitializing itself such
that the agent's configuration or the protocol
entity implementation may be altered.
Variables:
  1: sysUpTime
     Syntax="TICKS"
     Descr="The time (in hundredths of a second) since the
            network management portion of the system was last
            re-initialized."
  2: whyReload
     Syntax="OCTETSTR"
     Descr="This variable contains a printable octet
                           string which contains the reason why the
                           system was last restarted."
EDESC
#
#
#
EVENT linkDown .1.3.6.1.2.1.11.0.2 "Status Events" Normal
FORMAT A linkDown trap signifies that the sending $*
SDESC
A linkDown trap signifies that the sending
protocol entity recognizes a failure in one of
the communication links represented in the
agent's configuration.
Variables:
  1: ifIndex
     Syntax="INTEGER"
     Descr="A unique value for each interface.  Its value
            ranges between 1 and the value of ifNumber.  The
            value for each interface must remain constant at
            least from one re-initialization of the entity's
            network management system to the next re-
            initialization."
  2: ifDescr
     Syntax="OCTETSTR"
     Descr="A textual string containing information about the
            interface.  This string should include the name of
            the manufacturer, the product name and the version
            of the hardware interface."
  3: ifType
     Syntax="INTEGER"
       1: other
       10: iso88026-man
       11: starLan
       12: proteon-10Mbit
       13: proteon-80Mbit
       14: hyperchannel
       15: fddi
       16: lapb
       17: sdlc
       18: ds1
       19: e1
       2: regular1822
       20: basicISDN
       21: primaryISDN
       22: propPointToPointSerial
       23: ppp
       24: softwareLoopback
       25: eon
       26: ethernet-3Mbit
       27: nsip
       28: slip
       29: ultra
       3: hdh1822
       30: ds3
       31: sip
       32: frame-relay
       4: ddn-x25
       5: rfc877-x25
       6: ethernet-csmacd
       7: iso88023-csmacd
       8: iso88024-tokenBus
       9: iso88025-tokenRing
     Descr="The type of interface, distinguished according to
            the physical/link protocol(s) immediately `below'
            the network layer in the protocol stack."
  4: locIfReason
     Syntax="OCTETSTR"
     Descr="Reason for interface last status change."
EDESC
#
#
#
EVENT linkUp .1.3.6.1.2.1.11.0.3 "Status Events" Normal
FORMAT A linkUp trap signifies that the sending $*
SDESC
A linkUp trap signifies that the sending
protocol entity recognizes that one of the
communication links represented in the agent's
configuration has come up.
Variables:
  1: ifIndex
     Syntax="INTEGER"
     Descr="A unique value for each interface.  Its value
            ranges between 1 and the value of ifNumber.  The
            value for each interface must remain constant at
            least from one re-initialization of the entity's
            network management system to the next re-
            initialization."
  2: ifDescr
     Syntax="OCTETSTR"
     Descr="A textual string containing information about the
            interface.  This string should include the name of
            the manufacturer, the product name and the version
            of the hardware interface."
  3: ifType
     Syntax="INTEGER"
       1: other
       10: iso88026-man
       11: starLan
       12: proteon-10Mbit
       13: proteon-80Mbit
       14: hyperchannel
       15: fddi
       16: lapb
       17: sdlc
       18: ds1
       19: e1
       2: regular1822
       20: basicISDN
       21: primaryISDN
       22: propPointToPointSerial
       23: ppp
       24: softwareLoopback
       25: eon
       26: ethernet-3Mbit
       27: nsip
       28: slip
       29: ultra
       3: hdh1822
       30: ds3
       31: sip
       32: frame-relay
       4: ddn-x25
       5: rfc877-x25
       6: ethernet-csmacd
       7: iso88023-csmacd
       8: iso88024-tokenBus
       9: iso88025-tokenRing
     Descr="The type of interface, distinguished according to
            the physical/link protocol(s) immediately `below'
            the network layer in the protocol stack."
  4: locIfReason
     Syntax="OCTETSTR"
     Descr="Reason for interface last status change."
EDESC
#
#
#
EVENT authenticationFailure .1.3.6.1.2.1.11.0.4 "Status Events" Normal
FORMAT An authenticationFailure trap signifies that $*
SDESC
An authenticationFailure trap signifies that
the sending protocol entity is the addressee
of a protocol message that is not properly
authenticated.  While implementations of the
SNMP must be capable of generating this trap,
they must also be capable of suppressing the
emission of such traps via an implementation-
specific mechanism.
Variables:
  1: authAddr
     Syntax="IPADDR"
     Descr="This variable contains the last SNMP
                           authorization failure IP address."
EDESC
#
#
#
EVENT egpNeighborLoss .1.3.6.1.2.1.11.0.5 "Status Events" Normal
FORMAT An egpNeighborLoss trap signifies that an EGP $*
SDESC
An egpNeighborLoss trap signifies that an EGP
neighbor for whom the sending protocol entity
was an EGP peer has been marked down and the
peer relationship no longer obtains.
Variables:
  1: egpNeighAddr
     Syntax="IPADDR"
     Descr="The IP address of this entry's EGP neighbor."
EDESC
#
#
#
EVENT reload .1.3.6.1.4.1.9.0.0 "Status Events" Normal
FORMAT A reload trap signifies that the sending $*
SDESC
A reload trap signifies that the sending
protocol entity is reinitializing itself such
that the agent's configuration or the protocol
entity implementation may be altered.
Variables:
  1: sysUpTime
     Syntax="TICKS"
     Descr="The time (in hundredths of a second) since the
            network management portion of the system was last
            re-initialized."
  2: whyReload
     Syntax="OCTETSTR"
     Descr="This variable contains a printable octet
                           string which contains the reason why the
                           system was last restarted."
EDESC
#
#
#
EVENT tcpConnectionClose .1.3.6.1.4.1.9.0.1 "Status Events" Normal
FORMAT A tty trap signifies that a TCP connection, $*
SDESC
A tty trap signifies that a TCP connection,
previously established with the sending
protocol entity for the purposes of a tty
session, has been terminated.
Variables:
  1: tslineSesType
     Syntax="INTEGER"
       1: unknown
       10: xremote
       11: rshell
       2: pad
       3: stream
       4: rlogin
       5: telnet
       6: tcp
       7: lat
       8: mop
       9: slip
     Descr="Type of session."
  2: tcpConnState
     Syntax="INTEGER"
       1: closed
       10: closing
       11: timeWait
       12: deleteTCB
       2: listen
       3: synSent
       4: synReceived
       5: established
       6: finWait1
       7: finWait2
       8: closeWait
       9: lastAck
     Descr="The state of this TCP connection.

            The only value which may be set by a management
            station is deleteTCB(12).  Accordingly, it is
            appropriate for an agent to return a `badValue'
            response if a management station attempts to set
            this object to any other value.

            If a management station sets this object to the
            value deleteTCB(12), then this has the effect of
            deleting the TCB (as defined in RFC 793) of the
            corresponding connection on the managed node,
            resulting in immediate termination of the
            connection.

            As an implementation-specific option, a RST

            segment may be sent from the managed node to the
            other TCP endpoint (note however that RST segments
            are not sent reliably)."
  3: loctcpConnElapsed
     Syntax="TICKS"
     Descr="How long this TCP connection has been
                           established."
  4: loctcpConnInBytes
     Syntax="INTEGER"
     Descr="Bytes input for this TCP connection."
  5: loctcpConnOutBytes
     Syntax="INTEGER"
     Descr="Bytes output for this TCP connection."
  6: tsLineUser
     Syntax="OCTETSTR"
     Descr="TACACS user name, if TACACS enabled, of user
                           on this line."
EDESC
#
#
#
#
MIB: CISCO-HSRP-MIB (file:/usr/share/snmp/mibs/CISCO-HSRP-MIB.my) converted on Thu Jul 21 18:20:28 2011 using snmpttconvertmib v1.3
#
#
#
EVENT cHsrpStateChange .1.3.6.1.4.1.9.9.106.2.0.1 "Status Events" Normal
FORMAT A cHsrpStateChange notification is sent when a $*
SDESC
A cHsrpStateChange notification is sent when a
cHsrpGrpStandbyState transitions to either active or
standby state, or leaves active or standby state. There
will be only one notification issued when the state change
is from standby to active and vice versa.
Variables:
  1: cHsrpGrpStandbyState
     Syntax="INTEGER"
       1: initial
       2: learn
       3: listen
       4: speak
       5: standby
       6: active
     Descr="The current HSRP state of this group on this interface."
EDESC

[root@centos6 ~]# cat /etc/snmp/snmptt-standard.conf
#
#
#
#
MIB: SNMPv2-MIB (file:/usr/share/snmp/mibs/SNMPv2-MIB.txt) converted on Thu Jul 21 18:44:23 2011 using snmpttconvertmib v1.3
#
#
#
EVENT coldStart .1.3.6.1.6.3.1.1.5.1 "Status Events" Normal
FORMAT A coldStart trap signifies that the SNMP entity, $*
SDESC
A coldStart trap signifies that the SNMP entity,
supporting a notification originator application, is
reinitializing itself and that its configuration may
have been altered.
EDESC
#
#
#
EVENT warmStart .1.3.6.1.6.3.1.1.5.2 "Status Events" Normal
FORMAT A warmStart trap signifies that the SNMP entity, $*
SDESC
A warmStart trap signifies that the SNMP entity,
supporting a notification originator application,
is reinitializing itself such that its configuration
is unaltered.
EDESC
#
#
#
EVENT authenticationFailure .1.3.6.1.6.3.1.1.5.5 "Status Events" Normal
FORMAT An authenticationFailure trap signifies that the SNMP $*
SDESC
An authenticationFailure trap signifies that the SNMP
entity has received a protocol message that is not
properly authenticated.  While all implementations
of SNMP entities MAY be capable of generating this
trap, the snmpEnableAuthenTraps object indicates
whether this trap will be generated.
EDESC
#
#
#
#
MIB: IF-MIB (file:/usr/share/snmp/mibs/IF-MIB.txt) converted on Thu Jul 21 18:44:33 2011 using snmpttconvertmib v1.3
#
#
#
EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Normal
FORMAT A linkDown trap signifies that the SNMP entity, acting in $*
SDESC
A linkDown trap signifies that the SNMP entity, acting in
an agent role, has detected that the ifOperStatus object for
one of its communication links is about to enter the down
state from some other state (but not from the notPresent
state).  This other state is indicated by the included value
of ifOperStatus.
Variables:
  1: ifIndex
     Syntax="INTEGER32"
     Descr="A unique value, greater than zero, for each interface.  It
            is recommended that values are assigned contiguously
            starting from 1.  The value for each interface sub-layer
            must remain constant at least from one re-initialization of
            the entity's network management system to the next re-
            initialization."
  2: ifAdminStatus
     Syntax="INTEGER"
       1: up
       2: down
       3: testing
     Descr="The desired state of the interface.  The testing(3) state
            indicates that no operational packets can be passed.  When a
            managed system initializes, all interfaces start with
            ifAdminStatus in the down(2) state.  As a result of either
            explicit management action or per configuration information
            retained by the managed system, ifAdminStatus is then
            changed to either the up(1) or testing(3) states (or remains
            in the down(2) state)."
  3: ifOperStatus
     Syntax="INTEGER"
       1: up
       2: down
       3: testing
       4: unknown
       5: dormant
       6: notPresent
       7: lowerLayerDown
     Descr="The current operational state of the interface.  The
            testing(3) state indicates that no operational packets can
            be passed.  If ifAdminStatus is down(2) then ifOperStatus
            should be down(2).  If ifAdminStatus is changed to up(1)
            then ifOperStatus should change to up(1) if the interface is
            ready to transmit and receive network traffic; it should
            change to dormant(5) if the interface is waiting for
            external actions (such as a serial line waiting for an
            incoming connection); it should remain in the down(2) state
            if and only if there is a fault that prevents it from going
            to the up(1) state; it should remain in the notPresent(6)
            state if the interface has missing (typically, hardware)
            components."
EDESC
#
#
#
EVENT linkUp .1.3.6.1.6.3.1.1.5.4 "Status Events" Normal
FORMAT A linkUp trap signifies that the SNMP entity, acting in an $*
SDESC
A linkUp trap signifies that the SNMP entity, acting in an
agent role, has detected that the ifOperStatus object for
one of its communication links left the down state and
transitioned into some other state (but not into the
notPresent state).  This other state is indicated by the
included value of ifOperStatus.
Variables:
  1: ifIndex
     Syntax="INTEGER32"
     Descr="A unique value, greater than zero, for each interface.  It
            is recommended that values are assigned contiguously
            starting from 1.  The value for each interface sub-layer
            must remain constant at least from one re-initialization of
            the entity's network management system to the next re-
            initialization."
  2: ifAdminStatus
     Syntax="INTEGER"
       1: up
       2: down
       3: testing
     Descr="The desired state of the interface.  The testing(3) state
            indicates that no operational packets can be passed.  When a
            managed system initializes, all interfaces start with
            ifAdminStatus in the down(2) state.  As a result of either
            explicit management action or per configuration information
            retained by the managed system, ifAdminStatus is then
            changed to either the up(1) or testing(3) states (or remains
            in the down(2) state)."
  3: ifOperStatus
     Syntax="INTEGER"
       1: up
       2: down
       3: testing
       4: unknown
       5: dormant
       6: notPresent
       7: lowerLayerDown
     Descr="The current operational state of the interface.  The
            testing(3) state indicates that no operational packets can
            be passed.  If ifAdminStatus is down(2) then ifOperStatus
            should be down(2).  If ifAdminStatus is changed to up(1)
            then ifOperStatus should change to up(1) if the interface is
            ready to transmit and receive network traffic; it should
            change to dormant(5) if the interface is waiting for
            external actions (such as a serial line waiting for an
            incoming connection); it should remain in the down(2) state
            if and only if there is a fault that prevents it from going
            to the up(1) state; it should remain in the notPresent(6)
            state if the interface has missing (typically, hardware)
            components."
EDESC

これらのファイルはそのままでは使用できないため、修正を行います。修正のポイントは以下の点になります。

① EVENT 行のカテゴリ
② EVENT 行の重要度
③ FORMAT 行のメッセージフォーマット


また、一般トラップと重複した OID を使用している CISCOTRAP-MIB については、追加で以下の修正も必要となります。

④ EVENT 行のイベント OID
⑤ NODES 行の追加


各項目における修正のポイントは以下の通りです。

① カテゴリ

ダブルクォーテーション(")に囲まれた空白を含む任意の文字列を指定可能で、デフォルトの値は "Status Events" です。

カテゴリ分類の基本的な考え方としては、"障害"、"管理"、"リソース監視" など個別のトラップが示す事象の内容によって分類する、"Cisco"、"HP"、"F5" どトラップの発行元ベンダーによって分類する、あるいは両者を組み合わせるといったやり方が考えられます。

また、特別なカテゴリとして "IGNORE" と "LOGONLY" の 2 つがあり、それぞれ以下のような特徴があります。

カテゴリログ出力コマンド実行
IGNORE出力されない実行されない
LOGONLY出力される実行されない
その他出力される実行される
これらの 2 つのカテゴリはいずれも監視が不要であるにも関わらず送信元で発行を停止できないトラップに対して用いられますが、"IGNORE" は無条件で監視を停止したい場合に、"LOGONLY" は Nagios のような外部の監視ツールにコマンドでメッセージを通知している環境で、ログは残しておきたいが監視ツールへのメッセージ通知は停止したいといった場合に用いられます。

ちなみに、"LOGONLY" についてはそもそもトラップ定義で EXEC 行を追加しないか、EXEC 行をコメントアウトすることでも同等のことが実現できるので、こうした制御方法もあるということを参考程度に覚えておけばよいでしょう。

② 重要度

イベントの重要度を表す空白を含まない任意の文字列を指定可能で、デフォルトの値は Normal です。

NNM 7.x 以前の trapd.conf との互換性を重視する場合は、Normal, Warning, Minor, Major, Critical の 5 段階の重要度を指定すればよいでしょう。また、連携先の監視ツールのイベント重要度に合わせる、あるいは Syslog の Priority に合わせるという考え方もあります。

いずれにしても、トラップ定義ファイルを記述する上で最も判断に迷うところが、各トラップにどのレベルの重要度を指定すればよいか、という点です。HP の Insight Management MIB などのように、「--#SEVERITY」という特殊なコメント行の指定により、MIB モジュールの中にベンダーが適切と考える重要度を直接記述してくれているものもありますが、その他の殆どの MIB においては重要度は管理者が判断して定義しなければなりません。

管理者による判断の基準として、例えば下表のように緊急度等に応じた重要度の割り当て指針を設定しておくとよいでしょう。

重要度Syslog Priority緊急度
NormalInformational管理者による対処が不要なイベント。
WarningNotice
Warning
管理者による即時の対処は不要だが、何らかの対応が検討されなければならないイベント。
MinorError緊急性の高くない障害。所定の時間内に解消される必要がある。
MajorAlert緊急性の高い障害。可能な限り早期に解消される必要がある。
CriticalCritical緊急性の高い障害の内、特に現用システムに影響のあるもの。可能な限り早期に解消される必要がある。
また、トラップの発行と同時に Syslog メッセージが出力されるイベントについては、Syslog のプライオリティをトラップの重要度に当てはめる方法もあります。例えば Cisco のルータでリンクが切れた際には以下のようなメッセージが出力されますが、このメッセージのプライオリティである Error を linkDown トラップの重要度に割り当るといったやり方です。

%LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down

ただ、どのようなポリシーを採用した場合でも、個別の調整は必要になってくるという点は忘れないで下さい。例えば上記の方針は主に障害管理の観点からのものですが、セキュリティの観点から見た場合に同じトラップの重要度の評価が全く異なるものになる場合があります。

③ メッセージフォーマット

空白を含む任意の文字列を指定可能で、デフォルトの値は MIB の Description の 1 行目の内容になります。

メッセージフォーマットの中では、以下の変数を使用可能です。

変数名説明注意事項
$Aagent-addr のホスト名1
$aAagent-addr の IP アドレス 
$BesecurityEngineID (snmpEngineID)7
$BusecurityName (snmpCommunitySecurityName)7
$BEcontextEngineID (snmpCommunityContextEngineID)7
$BncontextName (snmpCommunityContextName)7
$cカテゴリ 
$Cコミュニティ名 
$Dsnmptt.conf もしくは MIB ファイルの Description テキスト6
$Eシンボル名形式の Enterprise OID 
$e数値形式の Enterprise OID 
$Faアラーム (bell) (BEL) 
$Ff改ページ(FF) 
$Fn改行 (LF, NL) 
$Fr復帰 (CR) 
$Ftタブ (HT, TAB) 
$Fz変換済みの FORMAT 行(EXEC のみ) 
$Ggeneric-trap フィールドの値(企業固有トラップの場合は 0) 
$HSNMPTT が動作しているシステムのホスト名 
$Sspecific-trap フィールドの値(標準トラップの場合は 0) 
$Nsnmptt.conf ファイルで定義されたイベント名 
$isnmptt.conf ファイルで定義されたイベント OID(ワイルドカード OID も対象) 
$Oシンボル名形式のトラップ OID4
$o数値形式のトラップ OID4
$R, $rトラップホスト名1
$aR, $arIP アドレス 
$s重要度 
$TUptime(トラップ送信元が初期化されてからの時間) 
$Xデーモンモード時のスプール時刻、スタンドアロンモード時のトラップ受信時刻 
$xデーモンモード時のスプール日付、スタンドアロンモード時のトラップ受信日付 
$#変数バインディングの個数 
$$$ を文字として表示 
$@デーモンモード時のスプール時刻、スタンドアロンモード時のトラップ受信時刻のエポック秒表示 
$nn 番目の変数バインディングを展開する2,5
$+nn 番目の変数バインディングを「変数名:値」の形式で展開する2,3,5
$-nn 番目の変数バインディングを「変数名(変数型):値」の形式で展開する2,3,5
$vnn 番目の変数バインディングの変数名を展開する3
$*全ての変数バインディングを展開する5
$+*全ての変数バインディングを「変数名:値」の形式で展開する2,3,5
$-*全ての変数バインディングを「変数名(変数型):値」の形式で展開する2,3,5
注 1: 名前解決を有効にするためには、dns_enable オプションを有効化する必要があります。$A/$aA と $R/$aR の違いとして、前者は SNMPv1 トラップの送信元アドレスに agent-addr フィールドを使用し、後者は IP ヘッダーの送信元アドレスを使用します。

注 2: 列挙型オブジェクトの名前解決を有効にするためには、 Net-SNMP Perl モジュールをインストールし、snmptt.ini で translate_integers 及び net_snmp_perl_enable を有効化した上で、適切な MIB モジュールをロードするよう MIBS 環境変数を設定する必要があります。

注 3: 変数バインディングの変数名の名前解決及びデータ型のテキスト名変換を有効にするためには、Net-SNMP Perl モジュールをインストールし、snmptt.ini で net_snmp_perl_enable を有効化した上で、適切な MIB モジュールをロードするよう MIBS 環境変数を設定する必要があります。

注 4: トラップ OID の名前解決を有効にするためには、Net-SNMP Perl モジュールをインストールし、snmptt.ini で translate_trap_oid 及び net_snmp_perl_enable を有効化した上で、適切な MIB モジュールをロードするよう MIBS 環境変数を設定する必要があります。

注 5: 変数バインディングの値に含まれる OID の名前解決を有効にするためには、Net-SNMP Perl モジュールをインストールし、snmptt.ini で translate_oids 及び net_snmp_perl_enable を有効化した上で、適切な MIB モジュールをロードするよう MIBS 環境変数を設定する必要があります。

注 6: この変数を有効化するためには、snmptt.ini で description_mode に 1 もしくは 2 を設定する必要があります。1 を設定した場合、snmptt.conf の Description が使用され、2 を設定した場合、MIB ファイルの Description が使用されます。

注 7: これらの変数は Embedded trap handler(snmptthandler-embedded)でのみ使用可能です。

メッセージフォーマットの指定は、トラップ定義ファイルの作成において重要度の次に難しいポイントになります。

まずフォーマットを英語にするか日本語にするかを決め、英語にする場合は MIB の Description の内容を短くまとめ、日本語にする場合はさらにそれを日本語化する、というのが基本的な方針になります。その際、変数バインディングには発生している事象の理解に有用な情報が含まれることが多いため、極力メッセージに組み込むようにしましょう。

EVENT cHsrpStateChange .1.3.6.1.4.1.9.9.106.2.0.1 "Status Events" Major
FORMAT HSRP グループの状態が変化しました。状態:$1
SDESC
A cHsrpStateChange notification is sent when a
cHsrpGrpStandbyState transitions to either active or
standby state, or leaves active or standby state. There
will be only one notification issued when the state change
is from standby to active and vice versa.
Variables:
  1: cHsrpGrpStandbyState
     Syntax="INTEGER"
       1: initial
       2: learn
       3: listen
       4: speak
       5: standby
       6: active
     Descr="The current HSRP state of this group on this interface."
EDESC

なお、大量のトラップ定義があってメッセージフォーマットを個別に作成することが難しい場合には、「$N を受信しました。$+*」といった共通フォーマットを使用してもよいでしょう。

④ イベント OID

snmpttconvermib コマンドで SMIv1 形式の MIB からトラップ定義ファイルを作成した場合、イベント OID は <Enterprise OID>.0.<specific-trap 番号> になります。そのため、CISCOTRAP-MIB から作成される coldStart のイベント OID は .1.3.6.1.2.1.11.0.0 となり、SNMPv2-MIB に定義されている coldStart(OID は .1.3.6.1.6.3.1.1.5.1)とは異なるトラップとして扱われます。また、Cisco の FTP サイトからダウンロードできる SNMPv2-MIB-V1SMI.my から作成される coldStart の定義についても、同じ理由からイベント OID が .1.3.6.1.6.3.1.1.5.0.0 となってしまい、実際の coldStart トラップにマッチしません。

こうした動作について、以下のような内容のトラップ定義ファイルを作成して確認してみましょう。

EVENT coldStart .1.3.6.1.2.1.11.0.0 "Status Events" Normal
FORMAT CISCOTRAP-MIB coldStart OID=$o
#
EVENT coldStart .1.3.6.1.6.3.1.1.5.0.0 "Status Events" Normal
FORMAT SNMPv2-MIB-V1SMI OID=$o
#
EVENT coldStart .1.3.6.1.6.3.1.1.5.1 "Status Events" Normal
FORMAT SNMPv2-MIB OID=$o

以下のコマンドを実行して、テストトラップを発行します。

[root@centos6 ~]# snmptrap -v 1 -c public localhost snmp localhost 0 0 ''
[root@centos6 ~]# snmptrap -v 1 -c public localhost snmp localhost 6 0 ''
[root@centos6 ~]# snmptrap -v 1 -c public localhost snmpTraps localhost 0 0 ''
[root@centos6 ~]# snmptrap -v 1 -c public localhost snmpTraps localhost 6 0 ''

ログ出力はそれぞれ以下のようになります。

Fri Jul 22 11:13:18 2011 coldStart Normal "Status Events" localhost - SNMPv2-MIB OID=.1.3.6.1.6.3.1.1.5.1
Fri Jul 22 11:13:26 2011 coldStart Normal "Status Events" localhost - CISCOTRAP-MIB coldStart OID=.1.3.6.1.2.1.11.0.0
Fri Jul 22 11:13:31 2011 coldStart Normal "Status Events" localhost - SNMPv2-MIB OID=.1.3.6.1.6.3.1.1.5.1
Fri Jul 22 11:13:34 2011 snmpTraps.0.0 Normal "Status Events" localhost - SNMPv2-MIB-V1SMI OID=.1.3.6.1.6.3.1.1.5.0.0

この結果から、Generic Type が 0 の標準トラップの OID は、Enterprise の値に関わらず .1.3.6.1.6.3.1.1.5.1 として認識され、SNMPv2-MIB-V1SMI.my や CISCO-GENERAL-TRAPS.my から作成されたトラップ定義にはマッチしないことが分かります。また、この動作は linkDown トラップなどの他の標準トラップについても同様です。

SNMPv2-MIB や IF-MIB については本来の SMIv2 形式の MIB ファイルを使用すればよいだけなので問題はありませんが、CISCOTRAP-MIB については SMIv2 形式の MIB ファイルが存在しないため、snmpttconvertmib で作成されたトラップ定義を手で修正する必要があります。

以上の結果を踏まえ、snmptt-cisco.conf の該当箇所を以下のように修正します。

EVENT coldStart .1.3.6.1.6.3.1.1.5.1 "Cisco Status Events" Normal
:
EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Cisco Status Events" Critical
:
EVENT linkUp .1.3.6.1.6.3.1.1.5.4 "Cisco Status Events" Normal
:
EVENT authenticationFailure .1.3.6.1.6.3.1.1.5.5 "Cisco Management Events" Warning
:
EVENT egpNeighborLoss .1.3.6.1.6.3.1.1.5.6 "Cisco Status Events" Critical
:

⑤ NODES 行の追加

CISCOTRAP-MIB で作成される標準トラップの定義が Cisco 機器からのイベントにのみ適用されるよう、snmptt-cisco.conf を編集して NODES 行の指定を行います。

EVENT coldStart .1.3.6.1.6.3.1.1.5.1 "Status Events" Normal
FORMAT エージェントが再起動しました。種別:coldStart, 理由:$2
NODES /etc/snmp/snmptt-cisco.nodes
:
EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Critical
FORMAT インターフェース $2 が停止しました。状態:$4
NODES /etc/snmp/snmptt-cisco.nodes
:
EVENT linkUp .1.3.6.1.6.3.1.1.5.4 "Status Events" Normal
FORMAT インターフェース $2 が動作を開始しました。状態:$4
NODES /etc/snmp/snmptt-cisco.nodes
:
EVENT authenticationFailure .1.3.6.1.6.3.1.1.5.5 "Device Management Events" Warning
FORMAT コミュニティ名が不正です。リクエスト送信元:$1
NODES /etc/snmp/snmptt-cisco.nodes
:
EVENT egpNeighborLoss .1.3.6.1.6.3.1.1.5.6 "Status Events" Critical
FORMAT EGP ネイバーとの接続が切断されました。ネイバー:$1
NODES /etc/snmp/snmptt-cisco.nodes
:


4. SNMPTT への組み込み

最終的に作成されたトラップ定義ファイルを確認します。

/etc/snmp/snmptt-standard.conf
##########################################################################################
#
# Unknown Trap
#
##########################################################################################
EVENT standardDefault .1.3.6.1.* "Management Events" Warning
FORMAT 不明なトラップを受信しました。$*
SDESC
snmptt-standard.conf に定義が存在しないトラップを受信した際に
使用されるイベントです。
EDESC
##########################################################################################
#
# SNMPv2-MIB
#
##########################################################################################
EVENT coldStart .1.3.6.1.6.3.1.1.5.1 "Status Events" Normal
FORMAT エージェントが再起動しました。種別:coldStart
SDESC
A coldStart trap signifies that the SNMPv2 entity, acting
in an agent role, is reinitializing itself and that its
configuration may have been altered.
EDESC
#
#
#
EVENT warmStart .1.3.6.1.6.3.1.1.5.2 "Status Events" Normal
FORMAT エージェントが再起動しました。種別:warmStart
SDESC
A warmStart trap signifies that the SNMPv2 entity, acting
in an agent role, is reinitializing itself such that its
configuration is unaltered.
EDESC
#
#
#
EVENT authenticationFailure .1.3.6.1.6.3.1.1.5.5 "Status Events" Warning
FORMAT コミュニティ名が不正です。
SDESC
An authenticationFailure trap signifies that the SNMP
entity has received a protocol message that is not
properly authenticated.  While all implementations
of SNMP entities MAY be capable of generating this
trap, the snmpEnableAuthenTraps object indicates
whether this trap will be generated.
EDESC
##########################################################################################
#
# IF-MIB
#
##########################################################################################
EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Status Events" Critical
FORMAT インターフェース $1 が停止しました。状態:$2/$3
SDESC
A linkDown trap signifies that the SNMP entity, acting in
an agent role, has detected that the ifOperStatus object for
one of its communication links is about to enter the down
state from some other state (but not from the notPresent
state).  This other state is indicated by the included value
of ifOperStatus.
Variables:
  1: ifIndex
     Syntax="INTEGER32"
     Descr="A unique value, greater than zero, for each interface.  It
            is recommended that values are assigned contiguously
            starting from 1.  The value for each interface sub-layer
            must remain constant at least from one re-initialization of
            the entity's network management system to the next re-
            initialization."
  2: ifAdminStatus
     Syntax="INTEGER"
       1: up
       2: down
       3: testing
     Descr="The desired state of the interface.  The testing(3) state
            indicates that no operational packets can be passed.  When a
            managed system initializes, all interfaces start with
            ifAdminStatus in the down(2) state.  As a result of either
            explicit management action or per configuration information
            retained by the managed system, ifAdminStatus is then
            changed to either the up(1) or testing(3) states (or remains
            in the down(2) state)."
  3: ifOperStatus
     Syntax="INTEGER"
       1: up
       2: down
       3: testing
       4: unknown
       5: dormant
       6: notPresent
       7: lowerLayerDown
     Descr="The current operational state of the interface.  The
            testing(3) state indicates that no operational packets can
            be passed.  If ifAdminStatus is down(2) then ifOperStatus
            should be down(2).  If ifAdminStatus is changed to up(1)
            then ifOperStatus should change to up(1) if the interface is
            ready to transmit and receive network traffic; it should
            change to dormant(5) if the interface is waiting for
            external actions (such as a serial line waiting for an
            incoming connection); it should remain in the down(2) state
            if and only if there is a fault that prevents it from going
            to the up(1) state; it should remain in the notPresent(6)
            state if the interface has missing (typically, hardware)
            components."
EDESC
#
#
#
EVENT linkUp .1.3.6.1.6.3.1.1.5.4 "Status Events" Normal
FORMAT インターフェース $1 が動作を開始しました。状態:$2/$3
SDESC
A linkUp trap signifies that the SNMP entity, acting in an
agent role, has detected that the ifOperStatus object for
one of its communication links left the down state and
transitioned into some other state (but not into the
notPresent state).  This other state is indicated by the
included value of ifOperStatus.
Variables:
  1: ifIndex
     Syntax="INTEGER"
     Descr="A unique value, greater than zero, for each interface.  It
        is recommended that values are assigned contiguously
        starting from 1.  The value for each interface sub-layer
        must remain constant at least from one re-initialization of
        the entity's network management system to the next re-
        initialization."
  2: ifAdminStatus
     Syntax="INTEGER"
       1: up
       2: down
       3: testing
     Descr="The desired state of the interface.  The testing(3) state
        indicates that no operational packets can be passed.  When a
        managed system initializes, all interfaces start with
        ifAdminStatus in the down(2) state.  As a result of either
        explicit management action or per configuration information
        retained by the managed system, ifAdminStatus is then
        changed to either the up(1) or testing(3) states (or remains
        in the down(2) state)."
  3: ifOperStatus
     Syntax="INTEGER"
       1: up
       2: down
       3: testing
       4: unknown
       5: dormant
       6: notPresent
       7: lowerLayerDown
     Descr="The current operational state of the interface.  The
        testing(3) state indicates that no operational packets can
        be passed.  If ifAdminStatus is down(2) then ifOperStatus
        should be down(2).  If ifAdminStatus is changed to up(1)
        then ifOperStatus should change to up(1) if the interface is
        ready to transmit and receive network traffic; it should
        change to dormant(5) if the interface is waiting for
        external actions (such as a serial line waiting for an
        incoming connection); it should remain in the down(2) state
        if and only if there is a fault that prevents it from going
        to the up(1) state; it should remain in the notPresent(6)
        state if the interface has missing (typically, hardware)
        components."
EDESC

/etc/snmpt/snmptt-cisco.conf
##########################################################################################
#
# Cisco Unknown Trap
#
##########################################################################################
EVENT ciscoDefault .1.3.6.1.4.1.9.* "Cisco Management Events" Warning
FORMAT 不明な Cisco トラップを受信しました。$*
SDESC
snmptt-cisco.conf に定義が存在しないトラップを Cisco 機器から
受信した際に使用されるイベントです。
EDESC
##########################################################################################
#
# CISCOTRAP-MIB
#
##########################################################################################
EVENT coldStart .1.3.6.1.6.3.1.1.5.1 "Cisco Status Events" Normal
FORMAT エージェントが再起動しました。種別:coldStart, 理由:$2
NODES /etc/snmp/snmptt-cisco.nodes
SDESC
A coldStart trap signifies that the sending
protocol entity is reinitializing itself such
that the agent's configuration or the protocol
entity implementation may be altered.
Variables:
  1: sysUpTime
     Syntax="TICKS"
     Descr="The time (in hundredths of a second) since the
                      network management portion of the system was last
                      re-initialized."
  2: whyReload
     Syntax=""
EDESC
#
#
#
EVENT linkDown .1.3.6.1.6.3.1.1.5.3 "Cisco Status Events" Critical
FORMAT インターフェース $2 が停止しました。状態:$4
NODES /etc/snmp/snmptt-cisco.nodes
SDESC
A linkDown trap signifies that the sending
protocol entity recognizes a failure in one of
the communication links represented in the
agent's configuration.
Variables:
  1: ifIndex
     Syntax="INTEGER"
     Descr="A unique value for each interface.  Its value
                      ranges between 1 and the value of ifNumber.  The
                      value for each interface must remain constant at
                      least from one re-initialization of the entity's
                      network management system to the next re-
                      initialization."
  2: ifDescr
     Syntax="OCTETSTR"
     Descr="A textual string containing information about the
                      interface.  This string should include the name of
                      the manufacturer, the product name and the version
                      of the hardware interface."
  3: ifType
     Syntax="INTEGER"
       1: other
       10: iso88026-man
       11: starLan
       12: proteon-10Mbit
       13: proteon-80Mbit
       14: hyperchannel
       15: fddi
       16: lapb
       17: sdlc
       18: ds1
       19: e1
       2: regular1822
       20: basicISDN
       21: primaryISDN
       22: propPointToPointSerial
       23: ppp
       24: softwareLoopback
       25: eon
       26: ethernet-3Mbit
       27: nsip
       28: slip
       29: ultra
       3: hdh1822
       30: ds3
       31: sip
       32: frame-relay
       4: ddn-x25
       5: rfc877-x25
       6: ethernet-csmacd
       7: iso88023-csmacd
       8: iso88024-tokenBus
       9: iso88025-tokenRing
     Descr="The type of interface, distinguished according to
                      the physical/link protocol(s) immediately `below'
                      the network layer in the protocol stack."
  4: locIfReason
     Syntax="OCTETSTR"
     Descr="Reason for interface last status change."
EDESC
#
#
#
EVENT linkUp .1.3.6.1.6.3.1.1.5.4 "Cisco Status Events" Normal
FORMAT インターフェース $2 が動作を開始しました。状態:$4
NODES /etc/snmp/snmptt-cisco.nodes
SDESC
A linkUp trap signifies that the sending
protocol entity recognizes that one of the
communication links represented in the agent's
configuration has come up.
Variables:
  1: ifIndex
     Syntax="INTEGER"
     Descr="A unique value for each interface.  Its value
                      ranges between 1 and the value of ifNumber.  The
                      value for each interface must remain constant at
                      least from one re-initialization of the entity's
                      network management system to the next re-
                      initialization."
  2: ifDescr
     Syntax="OCTETSTR"
     Descr="A textual string containing information about the
                      interface.  This string should include the name of
                      the manufacturer, the product name and the version
                      of the hardware interface."
  3: ifType
     Syntax="INTEGER"
       1: other
       10: iso88026-man
       11: starLan
       12: proteon-10Mbit
       13: proteon-80Mbit
       14: hyperchannel
       15: fddi
       16: lapb
       17: sdlc
       18: ds1
       19: e1
       2: regular1822
       20: basicISDN
       21: primaryISDN
       22: propPointToPointSerial
       23: ppp
       24: softwareLoopback
       25: eon
       26: ethernet-3Mbit
       27: nsip
       28: slip
       29: ultra
       3: hdh1822
       30: ds3
       31: sip
       32: frame-relay
       4: ddn-x25
       5: rfc877-x25
       6: ethernet-csmacd
       7: iso88023-csmacd
       8: iso88024-tokenBus
       9: iso88025-tokenRing
     Descr="The type of interface, distinguished according to
                      the physical/link protocol(s) immediately `below'
                      the network layer in the protocol stack."
  4: locIfReason
     Syntax="OCTETSTR"
     Descr="Reason for interface last status change."
EDESC
#
#
#
EVENT authenticationFailure .1.3.6.1.6.3.1.1.5.5 "Cisco Management Events" Warning
FORMAT コミュニティ名が不正です。リクエスト送信元:$1
NODES /etc/snmp/snmptt-cisco.nodes
SDESC
An authenticationFailure trap signifies that
the sending protocol entity is the addressee
of a protocol message that is not properly
authenticated.  While implementations of the
SNMP must be capable of generating this trap,
they must also be capable of suppressing the
emission of such traps via an implementation-
specific mechanism.
Variables:
  1: authAddr
     Syntax=""
EDESC
#
#
#
EVENT egpNeighborLoss .1.3.6.1.6.3.1.1.5.6 "Cisco Status Events" Critical
FORMAT EGP ネイバーとの接続が切断されました。ネイバー:$1
NODES /etc/snmp/snmptt-cisco.nodes
SDESC
An egpNeighborLoss trap signifies that an EGP
neighbor for whom the sending protocol entity
was an EGP peer has been marked down and the
peer relationship no longer obtains.
Variables:
  1: egpNeighAddr
     Syntax="IPADDR"
     Descr="The IP address of this entry's EGP neighbor."
EDESC
#
#
#
EVENT reload .1.3.6.1.4.1.9.0.0 "Status Events" Minor
FORMAT ノードの再起動を開始します。理由:$2
SDESC
A reload trap signifies that the sending
protocol entity is reinitializing itself such
that the agent's configuration or the protocol
entity implementation may be altered.
Variables:
  1: sysUpTime
     Syntax="TICKS"
     Descr="The time (in hundredths of a second) since the
                      network management portion of the system was last
                      re-initialized."
  2: whyReload
     Syntax=""
EDESC
#
#
#
EVENT tcpConnectionClose .1.3.6.1.4.1.9.0.1 "Cisco Management Events" Normal
FORMAT TTY セッションが終了しました。セッション種別:$1
SDESC
A tty trap signifies that a TCP connection,
previously established with the sending
protocol entity for the purposes of a tty
session, has been terminated.
Variables:
  1: tslineSesType
     Syntax="INTEGER"
       1: unknown
       10: xremote
       11: rshell
       12: ipc
       13: udptn
       2: pad
       3: stream
       4: rlogin
       5: telnet
       6: tcp
       7: lat
       8: mop
       9: slip
     Descr="Type of session."
  2: tcpConnState
     Syntax="INTEGER"
       1: closed
       10: closing
       11: timeWait
       12: deleteTCB
       2: listen
       3: synSent
       4: synReceived
       5: established
       6: finWait1
       7: finWait2
       8: closeWait
       9: lastAck
     Descr="The state of this TCP connection.

                      The only value which may be set by a management
                      station is deleteTCB(12).  Accordingly, it is
                      appropriate for an agent to return a `badValue'
                      response if a management station attempts to set
                      this object to any other value.

                      If a management station sets this object to the
                      value deleteTCB(12), then this has the effect of
                      deleting the TCB (as defined in RFC 793) of the
                      corresponding connection on the managed node,
                      resulting in immediate termination of the
                      connection.

                      As an implementation-specific option, a RST
                      segment may be sent from the managed node to the
                      other TCP endpoint (note however that RST segments
                      are not sent reliably)."
  3: loctcpConnElapsed
     Syntax="TICKS"
     Descr="How long this TCP connection has been
                           established."
  4: loctcpConnInBytes
     Syntax="INTEGER"
     Descr="Bytes input for this TCP connection."
  5: loctcpConnOutBytes
     Syntax="INTEGER"
     Descr="Bytes output for this TCP connection."
  6: tsLineUser
     Syntax="OCTETSTR"
     Descr="TACACS user name, if TACACS enabled, of user
                           on this line."
EDESC
##########################################################################################
#
# CISCO-HSRP-MIB
#
##########################################################################################
EVENT cHsrpStateChange .1.3.6.1.4.1.9.9.106.2.0.1 "Cisco Status Events" Critical
FORMAT HSRP グループの状態が変化しました。状態:$1
SDESC
A cHsrpStateChange notification is sent when a
cHsrpGrpStandbyState transitions to either active or
standby state, or leaves active or standby state. There
will be only one notification issued when the state change
is from standby to active and vice versa.
Variables:
  1: cHsrpGrpStandbyState
     Syntax="INTEGER"
       1: initial
       2: learn
       3: listen
       4: speak
       5: standby
       6: active
     Descr="The current HSRP state of this group on this interface."
EDESC

作成したファイルを snmptt.ini に組み込みます。マッチングは上から順に行われるため、必ず /etc/snmp/snmptt-standard.conf が一番下になるように記述してください。

[TrapFiles]
# A list of snmptt.conf files (this is NOT the snmptrapd.conf file).  The COMPLETE path
# and filename.  Ex: '/etc/snmp/snmptt.conf'
snmptt_conf_files = <<END
/etc/snmp/snmptt-cisco.conf
/etc/snmp/snmptt-standard.conf
END

スタンドアロンモードの場合は以上で完了です。デーモンモードの場合は、snmptt や snmptrapd の再起動を行いましょう。

関連記事

テーマ : おすすめソフトウェア
ジャンル : コンピュータ

トラックバック


この記事にトラックバックする(FC2ブログユーザー)

-

管理人の承認後に表示されます

-

管理人の承認後に表示されます

コメントの投稿

非公開コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます
プロフィール

米麹

筆者: 米麹
某社に勤務する SE です。
ここでは本職とは関係のない趣味的な検証情報などを書いていきます。

注意事項とお願い
記事の内容は掲載時点のもので、現在は異なる可能性があります。情報に誤りや不適切な事項があった場合には、コメントやメールフォームでご指摘下さい。
また、本サイトの情報を利用することによって生じたいかなる損害についても、筆者は責任を負いかねますのでご了承下さい。
カレンダー
07 | 2018/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
最新記事
月別アーカイブ
カテゴリ
全記事表示リンク

全ての記事を表示する

検索フォーム
メールフォーム

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。