logstash-integration-snmp 4.0.0-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (324) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +23 -0
  3. data/CONTRIBUTORS +20 -0
  4. data/Gemfile +11 -0
  5. data/LICENSE +202 -0
  6. data/README.md +89 -0
  7. data/VERSION +1 -0
  8. data/docs/index.asciidoc +202 -0
  9. data/docs/input-snmp.asciidoc +524 -0
  10. data/docs/input-snmptrap.asciidoc +392 -0
  11. data/lib/logstash/inputs/snmp.rb +369 -0
  12. data/lib/logstash/inputs/snmptrap.rb +190 -0
  13. data/lib/logstash/plugin_mixins/snmp/common.rb +197 -0
  14. data/lib/logstash-integration-snmp_jars.rb +6 -0
  15. data/lib/mibs/ietf/ACCOUNTING-CONTROL-MIB.dic +1316 -0
  16. data/lib/mibs/ietf/ADSL-LINE-EXT-MIB.dic +1724 -0
  17. data/lib/mibs/ietf/ADSL-LINE-MIB.dic +7297 -0
  18. data/lib/mibs/ietf/ADSL-TC-MIB.dic +160 -0
  19. data/lib/mibs/ietf/ADSL2-LINE-MIB.dic +8663 -0
  20. data/lib/mibs/ietf/ADSL2-LINE-TC-MIB.dic +1462 -0
  21. data/lib/mibs/ietf/AGENTX-MIB.dic +817 -0
  22. data/lib/mibs/ietf/AGGREGATE-MIB.dic +708 -0
  23. data/lib/mibs/ietf/ALARM-MIB.dic +1734 -0
  24. data/lib/mibs/ietf/APM-MIB.dic +2870 -0
  25. data/lib/mibs/ietf/APPC-MIB.dic +8687 -0
  26. data/lib/mibs/ietf/APPLETALK-MIB.dic +4399 -0
  27. data/lib/mibs/ietf/APPLICATION-MIB.dic +3750 -0
  28. data/lib/mibs/ietf/APPN-DLUR-MIB.dic +972 -0
  29. data/lib/mibs/ietf/APPN-MIB.dic +9364 -0
  30. data/lib/mibs/ietf/APPN-TRAP-MIB.dic +664 -0
  31. data/lib/mibs/ietf/APS-MIB.dic +2430 -0
  32. data/lib/mibs/ietf/ARC-MIB.dic +552 -0
  33. data/lib/mibs/ietf/ATM-ACCOUNTING-INFORMATION-MIB.dic +816 -0
  34. data/lib/mibs/ietf/ATM-MIB.dic +4104 -0
  35. data/lib/mibs/ietf/ATM-TC-MIB.dic +914 -0
  36. data/lib/mibs/ietf/ATM2-MIB.dic +4715 -0
  37. data/lib/mibs/ietf/BFD-STD-MIB.dic +2367 -0
  38. data/lib/mibs/ietf/BFD-TC-STD-MIB.dic +202 -0
  39. data/lib/mibs/ietf/BGP4-MIB.dic +1931 -0
  40. data/lib/mibs/ietf/BLDG-HVAC-MIB.dic +812 -0
  41. data/lib/mibs/ietf/BRIDGE-MIB.dic +2257 -0
  42. data/lib/mibs/ietf/CAPWAP-BASE-MIB.dic +4128 -0
  43. data/lib/mibs/ietf/CAPWAP-DOT11-MIB.dic +482 -0
  44. data/lib/mibs/ietf/CHARACTER-MIB.dic +1140 -0
  45. data/lib/mibs/ietf/CIRCUIT-IF-MIB.dic +493 -0
  46. data/lib/mibs/ietf/CLNS-MIB.dic +1702 -0
  47. data/lib/mibs/ietf/COFFEE-POT-MIB.dic +282 -0
  48. data/lib/mibs/ietf/COPS-CLIENT-MIB.dic +1270 -0
  49. data/lib/mibs/ietf/DECNET-PHIV-MIB.dic +5837 -0
  50. data/lib/mibs/ietf/DIAL-CONTROL-MIB.dic +2139 -0
  51. data/lib/mibs/ietf/DIFFSERV-CONFIG-MIB.dic +378 -0
  52. data/lib/mibs/ietf/DIFFSERV-MIB.dic +5073 -0
  53. data/lib/mibs/ietf/DIRECTORY-SERVER-MIB.dic +1041 -0
  54. data/lib/mibs/ietf/DISMAN-EVENT-MIB.dic +3151 -0
  55. data/lib/mibs/ietf/DISMAN-EXPRESSION-MIB.dic +1716 -0
  56. data/lib/mibs/ietf/DISMAN-NSLOOKUP-MIB.dic +698 -0
  57. data/lib/mibs/ietf/DISMAN-PING-MIB.dic +2635 -0
  58. data/lib/mibs/ietf/DISMAN-SCHEDULE-MIB.dic +1744 -0
  59. data/lib/mibs/ietf/DISMAN-SCRIPT-MIB.dic +2820 -0
  60. data/lib/mibs/ietf/DISMAN-TRACEROUTE-MIB.dic +3239 -0
  61. data/lib/mibs/ietf/DLSW-MIB.dic +5635 -0
  62. data/lib/mibs/ietf/DNS-RESOLVER-MIB.dic +1765 -0
  63. data/lib/mibs/ietf/DNS-SERVER-MIB.dic +1593 -0
  64. data/lib/mibs/ietf/DOCS-BPI-MIB.dic +2634 -0
  65. data/lib/mibs/ietf/DOCS-CABLE-DEVICE-MIB.dic +5042 -0
  66. data/lib/mibs/ietf/DOCS-IETF-BPI2-MIB.dic +5478 -0
  67. data/lib/mibs/ietf/DOCS-IETF-CABLE-DEVICE-NOTIFICATION-MIB.dic +2447 -0
  68. data/lib/mibs/ietf/DOCS-IETF-QOS-MIB.dic +4886 -0
  69. data/lib/mibs/ietf/DOCS-IETF-SUBMGT-MIB.dic +1331 -0
  70. data/lib/mibs/ietf/DOCS-IF-MIB.dic +7980 -0
  71. data/lib/mibs/ietf/DOT12-IF-MIB.dic +1066 -0
  72. data/lib/mibs/ietf/DOT12-RPTR-MIB.dic +2669 -0
  73. data/lib/mibs/ietf/DOT3-EPON-MIB.dic +3297 -0
  74. data/lib/mibs/ietf/DOT3-OAM-MIB.dic +2830 -0
  75. data/lib/mibs/ietf/DS0-MIB.dic +466 -0
  76. data/lib/mibs/ietf/DS0BUNDLE-MIB.dic +468 -0
  77. data/lib/mibs/ietf/DS1-MIB.dic +4890 -0
  78. data/lib/mibs/ietf/DS3-MIB.dic +2719 -0
  79. data/lib/mibs/ietf/DSA-MIB.dic +888 -0
  80. data/lib/mibs/ietf/DSMON-MIB.dic +6177 -0
  81. data/lib/mibs/ietf/DVB-RCS-MIB.dic +5764 -0
  82. data/lib/mibs/ietf/EBN-MIB.dic +1026 -0
  83. data/lib/mibs/ietf/EFM-CU-MIB.dic +4335 -0
  84. data/lib/mibs/ietf/ENTITY-MIB.dic +2235 -0
  85. data/lib/mibs/ietf/ENTITY-SENSOR-MIB.dic +653 -0
  86. data/lib/mibs/ietf/ENTITY-STATE-MIB.dic +457 -0
  87. data/lib/mibs/ietf/ENTITY-STATE-TC-MIB.dic +260 -0
  88. data/lib/mibs/ietf/ETHER-CHIPSET-MIB.dic +787 -0
  89. data/lib/mibs/ietf/EtherLike-MIB.dic +2548 -0
  90. data/lib/mibs/ietf/FC-MGMT-MIB.dic +3465 -0
  91. data/lib/mibs/ietf/FCIP-MGMT-MIB.dic +1596 -0
  92. data/lib/mibs/ietf/FDDI-SMT73-MIB.dic +3378 -0
  93. data/lib/mibs/ietf/FIBRE-CHANNEL-FE-MIB.dic +2504 -0
  94. data/lib/mibs/ietf/FLOAT-TC-MIB.dic +128 -0
  95. data/lib/mibs/ietf/FLOW-METER-MIB.dic +3201 -0
  96. data/lib/mibs/ietf/FORCES-MIB.dic +598 -0
  97. data/lib/mibs/ietf/FR-ATM-PVC-SERVICE-IWF-MIB.dic +1601 -0
  98. data/lib/mibs/ietf/FR-MFR-MIB.dic +1351 -0
  99. data/lib/mibs/ietf/FRAME-RELAY-DTE-MIB.dic +1688 -0
  100. data/lib/mibs/ietf/FRNETSERV-MIB.dic +3940 -0
  101. data/lib/mibs/ietf/FRSLD-MIB.dic +2580 -0
  102. data/lib/mibs/ietf/Finisher-MIB.dic +1416 -0
  103. data/lib/mibs/ietf/GMPLS-LABEL-STD-MIB.dic +965 -0
  104. data/lib/mibs/ietf/GMPLS-LSR-STD-MIB.dic +693 -0
  105. data/lib/mibs/ietf/GMPLS-TC-STD-MIB.dic +180 -0
  106. data/lib/mibs/ietf/GMPLS-TE-STD-MIB.dic +2542 -0
  107. data/lib/mibs/ietf/GSMP-MIB.dic +2468 -0
  108. data/lib/mibs/ietf/HC-ALARM-MIB.dic +1050 -0
  109. data/lib/mibs/ietf/HC-PerfHist-TC-MIB.dic +310 -0
  110. data/lib/mibs/ietf/HC-RMON-MIB.dic +4456 -0
  111. data/lib/mibs/ietf/HDSL2-SHDSL-LINE-MIB.dic +3955 -0
  112. data/lib/mibs/ietf/HOST-RESOURCES-MIB.dic +2453 -0
  113. data/lib/mibs/ietf/HPR-IP-MIB.dic +640 -0
  114. data/lib/mibs/ietf/HPR-MIB.dic +1959 -0
  115. data/lib/mibs/ietf/IANA-ITU-ALARM-TC-MIB.dic +936 -0
  116. data/lib/mibs/ietf/IF-CAP-STACK-MIB.dic +356 -0
  117. data/lib/mibs/ietf/IF-INVERTED-STACK-MIB.dic +220 -0
  118. data/lib/mibs/ietf/IF-MIB.dic +2753 -0
  119. data/lib/mibs/ietf/IFCP-MGMT-MIB.dic +1717 -0
  120. data/lib/mibs/ietf/IGMP-STD-MIB.dic +809 -0
  121. data/lib/mibs/ietf/INET-ADDRESS-MIB.dic +570 -0
  122. data/lib/mibs/ietf/INTEGRATED-SERVICES-GUARANTEED-MIB.dic +319 -0
  123. data/lib/mibs/ietf/INTEGRATED-SERVICES-MIB.dic +1196 -0
  124. data/lib/mibs/ietf/INTERFACETOPN-MIB.dic +1705 -0
  125. data/lib/mibs/ietf/IP-FORWARD-MIB.dic +1853 -0
  126. data/lib/mibs/ietf/IP-MIB.dic +7064 -0
  127. data/lib/mibs/ietf/IPATM-IPMC-MIB.dic +4830 -0
  128. data/lib/mibs/ietf/IPFIX-MIB.dic +2334 -0
  129. data/lib/mibs/ietf/IPFIX-SELECTOR-MIB.dic +215 -0
  130. data/lib/mibs/ietf/IPMCAST-MIB.dic +3390 -0
  131. data/lib/mibs/ietf/IPMROUTE-STD-MIB.dic +1246 -0
  132. data/lib/mibs/ietf/IPOA-MIB.dic +2372 -0
  133. data/lib/mibs/ietf/IPS-AUTH-MIB.dic +1609 -0
  134. data/lib/mibs/ietf/IPSEC-SPD-MIB.dic +3989 -0
  135. data/lib/mibs/ietf/IPV6-FLOW-LABEL-MIB.dic +110 -0
  136. data/lib/mibs/ietf/IPV6-ICMP-MIB.dic +748 -0
  137. data/lib/mibs/ietf/IPV6-MIB.dic +2028 -0
  138. data/lib/mibs/ietf/IPV6-MLD-MIB.dic +659 -0
  139. data/lib/mibs/ietf/IPV6-TCP-MIB.dic +332 -0
  140. data/lib/mibs/ietf/IPV6-UDP-MIB.dic +209 -0
  141. data/lib/mibs/ietf/ISCSI-MIB.dic +4613 -0
  142. data/lib/mibs/ietf/ISDN-MIB.dic +1796 -0
  143. data/lib/mibs/ietf/ISIS-MIB.dic +6215 -0
  144. data/lib/mibs/ietf/ISNS-MIB.dic +6578 -0
  145. data/lib/mibs/ietf/ITU-ALARM-MIB.dic +665 -0
  146. data/lib/mibs/ietf/ITU-ALARM-TC-MIB.dic +137 -0
  147. data/lib/mibs/ietf/Job-Monitoring-MIB.dic +2519 -0
  148. data/lib/mibs/ietf/L2TP-MIB.dic +4050 -0
  149. data/lib/mibs/ietf/LANGTAG-TC-MIB.dic +104 -0
  150. data/lib/mibs/ietf/LISP-MIB.dic +4067 -0
  151. data/lib/mibs/ietf/LMP-MIB.dic +5166 -0
  152. data/lib/mibs/ietf/MALLOC-MIB.dic +2156 -0
  153. data/lib/mibs/ietf/MAU-MIB.dic +2619 -0
  154. data/lib/mibs/ietf/MIDCOM-MIB.dic +2856 -0
  155. data/lib/mibs/ietf/MIOX25-MIB.dic +828 -0
  156. data/lib/mibs/ietf/MIP-MIB.dic +3473 -0
  157. data/lib/mibs/ietf/MOBILEIPV6-MIB.dic +5228 -0
  158. data/lib/mibs/ietf/MPLS-FTN-STD-MIB.dic +1594 -0
  159. data/lib/mibs/ietf/MPLS-L3VPN-STD-MIB.dic +2548 -0
  160. data/lib/mibs/ietf/MPLS-LC-ATM-STD-MIB.dic +491 -0
  161. data/lib/mibs/ietf/MPLS-LC-FR-STD-MIB.dic +395 -0
  162. data/lib/mibs/ietf/MPLS-LDP-ATM-STD-MIB.dic +1019 -0
  163. data/lib/mibs/ietf/MPLS-LDP-FRAME-RELAY-STD-MIB.dic +862 -0
  164. data/lib/mibs/ietf/MPLS-LDP-GENERIC-STD-MIB.dic +445 -0
  165. data/lib/mibs/ietf/MPLS-LDP-STD-MIB.dic +3657 -0
  166. data/lib/mibs/ietf/MPLS-LSR-STD-MIB.dic +3103 -0
  167. data/lib/mibs/ietf/MPLS-TC-STD-MIB.dic +911 -0
  168. data/lib/mibs/ietf/MPLS-TE-STD-MIB.dic +3673 -0
  169. data/lib/mibs/ietf/MSDP-MIB.dic +1893 -0
  170. data/lib/mibs/ietf/MTA-MIB.dic +1898 -0
  171. data/lib/mibs/ietf/Modem-MIB.dic +2054 -0
  172. data/lib/mibs/ietf/NAT-MIB.dic +3866 -0
  173. data/lib/mibs/ietf/NETWORK-SERVICES-MIB.dic +1034 -0
  174. data/lib/mibs/ietf/NHDP-MIB.dic +3005 -0
  175. data/lib/mibs/ietf/NHRP-MIB.dic +3660 -0
  176. data/lib/mibs/ietf/NOTIFICATION-LOG-MIB.dic +1156 -0
  177. data/lib/mibs/ietf/NTPv4-MIB.dic +1535 -0
  178. data/lib/mibs/ietf/OPT-IF-MIB.dic +8972 -0
  179. data/lib/mibs/ietf/OSPF-MIB.dic +5963 -0
  180. data/lib/mibs/ietf/OSPF-TRAP-MIB.dic +1190 -0
  181. data/lib/mibs/ietf/OSPFV3-MIB.dic +5708 -0
  182. data/lib/mibs/ietf/P-BRIDGE-MIB.dic +1499 -0
  183. data/lib/mibs/ietf/PARALLEL-MIB.dic +476 -0
  184. data/lib/mibs/ietf/PIM-MIB.dic +1393 -0
  185. data/lib/mibs/ietf/PIM-STD-MIB.dic +6819 -0
  186. data/lib/mibs/ietf/PINT-MIB.dic +830 -0
  187. data/lib/mibs/ietf/PKTC-IETF-MTA-MIB.dic +3191 -0
  188. data/lib/mibs/ietf/PKTC-IETF-SIG-MIB.dic +4713 -0
  189. data/lib/mibs/ietf/PMIPV6-MIB.dic +3010 -0
  190. data/lib/mibs/ietf/PMIPV6-TC-MIB.dic +293 -0
  191. data/lib/mibs/ietf/POLICY-BASED-MANAGEMENT-MIB.dic +3316 -0
  192. data/lib/mibs/ietf/POWER-ETHERNET-MIB.dic +959 -0
  193. data/lib/mibs/ietf/PPP-BRIDGE-NCP-MIB.dic +587 -0
  194. data/lib/mibs/ietf/PPP-IP-NCP-MIB.dic +269 -0
  195. data/lib/mibs/ietf/PPP-LCP-MIB.dic +994 -0
  196. data/lib/mibs/ietf/PPP-SEC-MIB.dic +411 -0
  197. data/lib/mibs/ietf/PSAMP-MIB.dic +998 -0
  198. data/lib/mibs/ietf/PTOPO-MIB.dic +1135 -0
  199. data/lib/mibs/ietf/PW-ATM-MIB.dic +1642 -0
  200. data/lib/mibs/ietf/PW-CEP-STD-MIB.dic +3661 -0
  201. data/lib/mibs/ietf/PW-STD-MIB.dic +3592 -0
  202. data/lib/mibs/ietf/PW-TC-STD-MIB.dic +437 -0
  203. data/lib/mibs/ietf/PW-TDM-MIB.dic +1896 -0
  204. data/lib/mibs/ietf/PerfHist-TC-MIB.dic +152 -0
  205. data/lib/mibs/ietf/Printer-MIB.dic +6665 -0
  206. data/lib/mibs/ietf/Q-BRIDGE-MIB.dic +3115 -0
  207. data/lib/mibs/ietf/RADIUS-ACC-CLIENT-MIB.dic +991 -0
  208. data/lib/mibs/ietf/RADIUS-ACC-SERVER-MIB.dic +1183 -0
  209. data/lib/mibs/ietf/RADIUS-AUTH-CLIENT-MIB.dic +1073 -0
  210. data/lib/mibs/ietf/RADIUS-AUTH-SERVER-MIB.dic +1251 -0
  211. data/lib/mibs/ietf/RADIUS-DYNAUTH-CLIENT-MIB.dic +1116 -0
  212. data/lib/mibs/ietf/RADIUS-DYNAUTH-SERVER-MIB.dic +1003 -0
  213. data/lib/mibs/ietf/RAQMON-MIB.dic +2695 -0
  214. data/lib/mibs/ietf/RBRIDGE-MIB.dic +2981 -0
  215. data/lib/mibs/ietf/RDBMS-MIB.dic +1935 -0
  216. data/lib/mibs/ietf/RFC1065-SMI.dic +108 -0
  217. data/lib/mibs/ietf/RFC1155-SMI.dic +118 -0
  218. data/lib/mibs/ietf/RFC1158-MIB.dic +2440 -0
  219. data/lib/mibs/ietf/RFC1213-MIB.dic +3434 -0
  220. data/lib/mibs/ietf/RFC1269-MIB.dic +557 -0
  221. data/lib/mibs/ietf/RFC1271-MIB.dic +4135 -0
  222. data/lib/mibs/ietf/RFC1285-MIB.dic +2842 -0
  223. data/lib/mibs/ietf/RFC1316-MIB.dic +800 -0
  224. data/lib/mibs/ietf/RFC1381-MIB.dic +1347 -0
  225. data/lib/mibs/ietf/RFC1382-MIB.dic +3820 -0
  226. data/lib/mibs/ietf/RFC1414-MIB.dic +214 -0
  227. data/lib/mibs/ietf/RIPv2-MIB.dic +773 -0
  228. data/lib/mibs/ietf/RMON-MIB.dic +5551 -0
  229. data/lib/mibs/ietf/RMON2-MIB.dic +8224 -0
  230. data/lib/mibs/ietf/ROHC-MIB.dic +1613 -0
  231. data/lib/mibs/ietf/ROHC-RTP-MIB.dic +859 -0
  232. data/lib/mibs/ietf/ROHC-UNCOMPRESSED-MIB.dic +267 -0
  233. data/lib/mibs/ietf/RPKI-ROUTER-MIB.dic +1363 -0
  234. data/lib/mibs/ietf/RS-232-MIB.dic +1335 -0
  235. data/lib/mibs/ietf/RSERPOOL-MIB.dic +2501 -0
  236. data/lib/mibs/ietf/RSTP-MIB.dic +427 -0
  237. data/lib/mibs/ietf/RSVP-MIB.dic +4135 -0
  238. data/lib/mibs/ietf/RTP-MIB.dic +1376 -0
  239. data/lib/mibs/ietf/SCSI-MIB.dic +3804 -0
  240. data/lib/mibs/ietf/SCTP-MIB.dic +1924 -0
  241. data/lib/mibs/ietf/SFLOW-MIB.dic +568 -0
  242. data/lib/mibs/ietf/SIP-COMMON-MIB.dic +2769 -0
  243. data/lib/mibs/ietf/SIP-MIB.dic +1438 -0
  244. data/lib/mibs/ietf/SIP-SERVER-MIB.dic +1150 -0
  245. data/lib/mibs/ietf/SIP-TC-MIB.dic +257 -0
  246. data/lib/mibs/ietf/SIP-UA-MIB.dic +268 -0
  247. data/lib/mibs/ietf/SLAPM-MIB.dic +4527 -0
  248. data/lib/mibs/ietf/SMON-MIB.dic +1758 -0
  249. data/lib/mibs/ietf/SNA-NAU-MIB.dic +4042 -0
  250. data/lib/mibs/ietf/SNA-SDLC-MIB.dic +3858 -0
  251. data/lib/mibs/ietf/SNMP-COMMUNITY-MIB.dic +715 -0
  252. data/lib/mibs/ietf/SNMP-FRAMEWORK-MIB.dic +709 -0
  253. data/lib/mibs/ietf/SNMP-MPD-MIB.dic +230 -0
  254. data/lib/mibs/ietf/SNMP-NOTIFICATION-MIB.dic +859 -0
  255. data/lib/mibs/ietf/SNMP-PROXY-MIB.dic +414 -0
  256. data/lib/mibs/ietf/SNMP-REPEATER-MIB.dic +4335 -0
  257. data/lib/mibs/ietf/SNMP-SSH-TM-MIB.dic +447 -0
  258. data/lib/mibs/ietf/SNMP-TARGET-MIB.dic +924 -0
  259. data/lib/mibs/ietf/SNMP-TLS-TM-MIB.dic +1449 -0
  260. data/lib/mibs/ietf/SNMP-TSM-MIB.dic +315 -0
  261. data/lib/mibs/ietf/SNMP-USER-BASED-SM-MIB.dic +1164 -0
  262. data/lib/mibs/ietf/SNMP-USM-AES-MIB.dic +95 -0
  263. data/lib/mibs/ietf/SNMP-USM-DH-OBJECTS-MIB.dic +653 -0
  264. data/lib/mibs/ietf/SNMP-VIEW-BASED-ACM-MIB.dic +1202 -0
  265. data/lib/mibs/ietf/SNMPv2-MIB.dic +1382 -0
  266. data/lib/mibs/ietf/SNMPv2-SMI.dic +223 -0
  267. data/lib/mibs/ietf/SNMPv2-USEC-MIB.dic +405 -0
  268. data/lib/mibs/ietf/SONET-MIB.dic +3308 -0
  269. data/lib/mibs/ietf/SOURCE-ROUTING-MIB.dic +542 -0
  270. data/lib/mibs/ietf/SSPM-MIB.dic +1530 -0
  271. data/lib/mibs/ietf/SYSAPPL-MIB.dic +2092 -0
  272. data/lib/mibs/ietf/T11-FC-FABRIC-ADDR-MGR-MIB.dic +1779 -0
  273. data/lib/mibs/ietf/T11-FC-FABRIC-CONFIG-SERVER-MIB.dic +2822 -0
  274. data/lib/mibs/ietf/T11-FC-FABRIC-LOCK-MIB.dic +700 -0
  275. data/lib/mibs/ietf/T11-FC-FSPF-MIB.dic +1889 -0
  276. data/lib/mibs/ietf/T11-FC-NAME-SERVER-MIB.dic +1775 -0
  277. data/lib/mibs/ietf/T11-FC-ROUTE-MIB.dic +655 -0
  278. data/lib/mibs/ietf/T11-FC-RSCN-MIB.dic +1110 -0
  279. data/lib/mibs/ietf/T11-FC-VIRTUAL-FABRIC-MIB.dic +770 -0
  280. data/lib/mibs/ietf/T11-FC-ZONE-SERVER-MIB.dic +3886 -0
  281. data/lib/mibs/ietf/T11-TC-MIB.dic +110 -0
  282. data/lib/mibs/ietf/TCP-ESTATS-MIB.dic +3926 -0
  283. data/lib/mibs/ietf/TCP-MIB.dic +1319 -0
  284. data/lib/mibs/ietf/TCPIPX-MIB.dic +457 -0
  285. data/lib/mibs/ietf/TE-LINK-STD-MIB.dic +2876 -0
  286. data/lib/mibs/ietf/TE-MIB.dic +2924 -0
  287. data/lib/mibs/ietf/TED-MIB.dic +1749 -0
  288. data/lib/mibs/ietf/TIME-AGGREGATE-MIB.dic +550 -0
  289. data/lib/mibs/ietf/TN3270E-MIB.dic +2785 -0
  290. data/lib/mibs/ietf/TN3270E-RT-MIB.dic +1317 -0
  291. data/lib/mibs/ietf/TOKEN-RING-RMON-MIB.dic +2820 -0
  292. data/lib/mibs/ietf/TOKENRING-MIB.dic +1184 -0
  293. data/lib/mibs/ietf/TOKENRING-STATION-SR-MIB.dic +292 -0
  294. data/lib/mibs/ietf/TRANSPORT-ADDRESS-MIB.dic +610 -0
  295. data/lib/mibs/ietf/TRIP-MIB.dic +3159 -0
  296. data/lib/mibs/ietf/TRIP-TC-MIB.dic +241 -0
  297. data/lib/mibs/ietf/TUNNEL-MIB.dic +1095 -0
  298. data/lib/mibs/ietf/UDP-MIB.dic +751 -0
  299. data/lib/mibs/ietf/UDPLITE-MIB.dic +704 -0
  300. data/lib/mibs/ietf/UPS-MIB.dic +3088 -0
  301. data/lib/mibs/ietf/URI-TC-MIB.dic +193 -0
  302. data/lib/mibs/ietf/UUID-TC-MIB.dic +135 -0
  303. data/lib/mibs/ietf/VDSL-LINE-EXT-MCM-MIB.dic +989 -0
  304. data/lib/mibs/ietf/VDSL-LINE-EXT-SCM-MIB.dic +605 -0
  305. data/lib/mibs/ietf/VDSL-LINE-MIB.dic +4518 -0
  306. data/lib/mibs/ietf/VDSL2-LINE-MIB.dic +11029 -0
  307. data/lib/mibs/ietf/VDSL2-LINE-TC-MIB.dic +3152 -0
  308. data/lib/mibs/ietf/VPN-TC-STD-MIB.dic +121 -0
  309. data/lib/mibs/ietf/VRRP-MIB.dic +1163 -0
  310. data/lib/mibs/ietf/VRRPV3-MIB.dic +1403 -0
  311. data/lib/mibs/ietf/WWW-MIB.dic +1810 -0
  312. data/lib/mibs/logstash/iso.dic +18 -0
  313. data/logstash-integration-snmp.gemspec +40 -0
  314. data/spec/fixtures/RFC1213-MIB.dic +3445 -0
  315. data/spec/fixtures/collision.dic +25 -0
  316. data/spec/integration/inputs/snmp_spec.rb +443 -0
  317. data/spec/integration/inputs/snmptrap_spec.rb +383 -0
  318. data/spec/unit/inputs/common_spec.rb +264 -0
  319. data/spec/unit/inputs/snmp_spec.rb +510 -0
  320. data/spec/unit/inputs/snmptrap_spec.rb +141 -0
  321. data/vendor/jar-dependencies/org/logstash/integrations/plugin/4.0.0/plugin-4.0.0.jar +0 -0
  322. data/vendor/jar-dependencies/org/snakeyaml/snakeyaml-engine/2.7/snakeyaml-engine-2.7.jar +0 -0
  323. data/vendor/jar-dependencies/org/snmp4j/snmp4j/3.8.0/snmp4j-3.8.0.jar +0 -0
  324. metadata +523 -0
@@ -0,0 +1,25 @@
1
+ # python version 1.0 DO NOT EDIT
2
+ #
3
+ # This python file has been generated by smidump version 0.5.0:
4
+ #
5
+ # smidump -f python RFC1213-MIB
6
+
7
+ FILENAME = "tmp/RFC1213-MIB.txt"
8
+
9
+ MIB = {
10
+ "moduleName" : "RFC1213-MIB",
11
+
12
+ "nodes" : {
13
+ "system" : {
14
+ "nodetype" : "node",
15
+ "moduleName" : "RFC1213-MIB",
16
+ "oid" : "0.0.0",
17
+ }, # node
18
+
19
+ "foo" : {
20
+ "nodetype" : "node",
21
+ "moduleName" : "RFC1213-MIB",
22
+ "oid" : "1.3.6.1.2.1.1",
23
+ }, # node
24
+ }, # nodes
25
+ }
@@ -0,0 +1,443 @@
1
+ require 'logstash/devutils/rspec/spec_helper'
2
+ require 'logstash/inputs/snmp'
3
+
4
+ describe LogStash::Inputs::Snmp, :integration => true do
5
+ let(:mib_paths) do
6
+ [
7
+ ::File.join(LogStash::Inputs::Snmp::MIB_BASE_PATH, 'ietf', 'SNMPv2-SMI.dic'),
8
+ ::File.join(LogStash::Inputs::Snmp::MIB_BASE_PATH, 'ietf', 'SNMPv2-MIB.dic'),
9
+ ].map { |path| ::File.expand_path(path) }
10
+ end
11
+ let(:config) { { 'mib_paths' => mib_paths, 'use_provided_mibs' => false } }
12
+ let(:plugin) { LogStash::Inputs::Snmp.new(config) }
13
+
14
+ shared_examples 'snmp plugin return one udp event and one tcp event' do |config|
15
+ it 'should have one udp from snmp1 and one tcp from snmp2' do
16
+ events = input(config) { |_, queue| 2.times.collect { queue.pop } }
17
+ udp = 0; tcp = 0
18
+ events.each do |event|
19
+ if event.get('[@metadata][host_protocol]') == 'udp'
20
+ udp += 1
21
+ expect(event.get('[@metadata][host_protocol]')).to eq('udp')
22
+ expect(event.get('[@metadata][host_address]')).to eq('snmp1')
23
+ expect(event.get('[@metadata][host_port]')).to eq('161')
24
+ else
25
+ tcp += 1
26
+ expect(event.get('[@metadata][host_protocol]')).to eq('tcp')
27
+ expect(event.get('[@metadata][host_address]')).to eq('snmp2')
28
+ expect(event.get('[@metadata][host_port]')).to eq('162')
29
+ end
30
+ end
31
+ expect(udp).to eq(1)
32
+ expect(tcp).to eq(1)
33
+ end
34
+ end
35
+
36
+ describe '`get` operation' do
37
+ let(:config) do
38
+ super().merge({ 'get' => ['1.3.6.1.2.1.1.1.0', '1.3.6.1.2.1.1.7.0', '1.3.6.1.2.1.1.5.0'], 'ecs_compatibility' => 'disabled' })
39
+ end
40
+
41
+ shared_examples 'snmp plugin return single get event' do
42
+ it 'should have OID fields' do
43
+ event = run_plugin_and_get_queue(plugin).pop
44
+ expect(event).to be_a(LogStash::Event)
45
+ expect(event.get('iso.org.dod.internet.mgmt.mib-2.system.sysServices.0')).to be_a Integer
46
+ expect(event.get('iso.org.dod.internet.mgmt.mib-2.system.sysName.0')).to be_a String
47
+ expect(event.get('iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0')).to be_a String
48
+ end
49
+ end
50
+
51
+ describe 'against single snmp server with snmp v1' do
52
+ let(:config) { super().merge({ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '1', 'community' => 'public' }] }) }
53
+ it_behaves_like 'snmp plugin return single get event'
54
+ end
55
+
56
+ describe 'against single snmp server with snmp v2' do
57
+ let(:config) { super().merge({ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '2c', 'community' => 'public' }] }) }
58
+ it_behaves_like 'snmp plugin return single get event'
59
+ end
60
+
61
+ describe 'against single server with snmp v3' do
62
+ let(:config) do
63
+ super().merge(
64
+ 'hosts' => [{ 'host' => "tcp:snmp1/161", 'version' => '3' }],
65
+ 'security_name' => 'user_1',
66
+ 'auth_protocol' => 'sha',
67
+ 'auth_pass' => 'STrP@SSPhr@sE',
68
+ 'priv_protocol' => 'aes',
69
+ 'priv_pass' => 'STr0ngP@SSWRD161',
70
+ 'security_level' => 'authPriv'
71
+ )
72
+ end
73
+
74
+ it_behaves_like 'snmp plugin return single get event'
75
+ end
76
+ end
77
+
78
+ describe '`walk` operation' do
79
+ let(:config) do
80
+ super().merge({ 'walk' => %w[1.3.6.1.2.1.1.9.1.4], 'ecs_compatibility' => 'disabled' })
81
+ end
82
+
83
+ shared_examples 'snmp plugin return single walk event' do
84
+ it 'should have OID fields' do
85
+ event = run_plugin_and_get_queue(plugin).pop
86
+ expect(event).to be_a(LogStash::Event)
87
+ (1..10).each do |index|
88
+ expect(event.get("iso.org.dod.internet.mgmt.mib-2.system.sysORTable.sysOREntry.sysORUpTime.#{index}")).to be_a Integer
89
+ end
90
+ end
91
+ end
92
+
93
+ describe 'against single snmp server with snmp v1' do
94
+ let(:config) { super().merge({ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '1', 'community' => 'public' }] }) }
95
+ it_behaves_like 'snmp plugin return single walk event'
96
+ end
97
+
98
+ describe 'against single snmp server with snmp v2' do
99
+ let(:config) { super().merge({ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '2c', 'community' => 'public' }] }) }
100
+ it_behaves_like 'snmp plugin return single walk event'
101
+ end
102
+
103
+ describe 'against single server with snmp v3' do
104
+ let(:config) do
105
+ super().merge(
106
+ 'hosts' => [{ 'host' => "tcp:snmp1/161", 'version' => '3' }],
107
+ 'security_name' => 'user_1',
108
+ 'auth_protocol' => 'sha',
109
+ 'auth_pass' => 'STrP@SSPhr@sE',
110
+ 'priv_protocol' => 'aes',
111
+ 'priv_pass' => 'STr0ngP@SSWRD161',
112
+ 'security_level' => 'authPriv'
113
+ )
114
+ end
115
+
116
+ it_behaves_like 'snmp plugin return single walk event'
117
+ end
118
+ end
119
+
120
+ describe '`table` operation' do
121
+ let(:config) do
122
+ super().merge({ 'tables' => [{ 'name' => 'sysORUpTimeTable', 'columns' => ['1.3.6.1.2.1.1.9.1.4'] }], 'ecs_compatibility' => 'disabled' })
123
+ end
124
+
125
+ shared_examples 'snmp plugin return single table event' do
126
+ it 'should have OID fields' do
127
+ event = run_plugin_and_get_queue(plugin).pop
128
+ expect(event).to be_a(LogStash::Event)
129
+ table = event.get('sysORUpTimeTable')
130
+ expect(table).to be_a(Array)
131
+
132
+ (0..9).each do |index|
133
+ expect(table[index]["iso.org.dod.internet.mgmt.mib-2.system.sysORTable.sysOREntry.sysORUpTime.#{index + 1}"]).to be_a Integer
134
+ expect(table[index]['index']).to be_a(String)
135
+ end
136
+ end
137
+ end
138
+
139
+ describe 'against single snmp server with snmp v1' do
140
+ let(:config) { super().merge({ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '1', 'community' => 'public' }] }) }
141
+ it_behaves_like 'snmp plugin return single table event'
142
+ end
143
+
144
+ describe 'against single snmp server with snmp v2' do
145
+ let(:config) { super().merge({ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '2c', 'community' => 'public' }] }) }
146
+ it_behaves_like 'snmp plugin return single table event'
147
+ end
148
+
149
+ describe 'against single server with snmp v3' do
150
+ let(:config) do
151
+ super().merge(
152
+ 'hosts' => [{ 'host' => "tcp:snmp1/161", 'version' => '3' }],
153
+ 'security_name' => 'user_1',
154
+ 'auth_protocol' => 'sha',
155
+ 'auth_pass' => 'STrP@SSPhr@sE',
156
+ 'priv_protocol' => 'aes',
157
+ 'priv_pass' => 'STr0ngP@SSWRD161',
158
+ 'security_level' => 'authPriv'
159
+ )
160
+ end
161
+
162
+ it_behaves_like 'snmp plugin return single table event'
163
+ end
164
+ end
165
+
166
+ describe 'multiple operations' do
167
+ let(:config) do
168
+ super().merge({
169
+ 'get' => %w[1.3.6.1.2.1.1.1.0],
170
+ 'walk' => %w[1.3.6.1.2.1.1.9.1.4],
171
+ 'tables' => [{ 'name' => 'sysORUpTimeTable', 'columns' => %w[1.3.6.1.2.1.1.5] }],
172
+ 'ecs_compatibility' => 'disabled'
173
+ })
174
+ end
175
+
176
+ shared_examples 'snmp plugin return single multi-operations event' do
177
+ it 'should have OID fields' do
178
+ event = run_plugin_and_get_queue(plugin).pop
179
+ expect(event).to be_a(LogStash::Event)
180
+
181
+ # get
182
+ expect(event.get('iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0')).to be_a String
183
+
184
+ # walk
185
+ (1..10).each do |index|
186
+ expect(event.get("iso.org.dod.internet.mgmt.mib-2.system.sysORTable.sysOREntry.sysORUpTime.#{index}")).to be_a Integer
187
+ end
188
+
189
+ # table
190
+ table = event.get('sysORUpTimeTable')
191
+ expect(table).to be_a(Array)
192
+ expect(table.length).to be(1)
193
+
194
+ table_oid_data = table[0]
195
+ expect(table_oid_data['iso.org.dod.internet.mgmt.mib-2.system.sysName.0']).to be_a String
196
+ expect(table_oid_data['index']).to be_a String
197
+ end
198
+ end
199
+
200
+ describe 'against single snmp server with snmp v1' do
201
+ let(:config) { super().merge({ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '1', 'community' => 'public' }] }) }
202
+ it_behaves_like 'snmp plugin return single multi-operations event'
203
+ end
204
+
205
+ describe 'against single snmp server with snmp v2' do
206
+ let(:config) { super().merge({ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '2c', 'community' => 'public' }] }) }
207
+ it_behaves_like 'snmp plugin return single multi-operations event'
208
+ end
209
+
210
+ describe 'against single server with snmp v3' do
211
+ let(:config) do
212
+ super().merge(
213
+ 'hosts' => [{ 'host' => "tcp:snmp1/161", 'version' => '3' }],
214
+ 'security_name' => 'user_1',
215
+ 'auth_protocol' => 'sha',
216
+ 'auth_pass' => 'STrP@SSPhr@sE',
217
+ 'priv_protocol' => 'aes',
218
+ 'priv_pass' => 'STr0ngP@SSWRD161',
219
+ 'security_level' => 'authPriv'
220
+ )
221
+ end
222
+
223
+ it_behaves_like 'snmp plugin return single multi-operations event'
224
+ end
225
+ end
226
+
227
+ describe 'single input plugin on single server with snmp v2 and mix of udp and tcp' do
228
+ let(:config) do
229
+ super().merge(
230
+ 'get' => %w[1.3.6.1.2.1.1.1.0],
231
+ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'community' => 'public' }, { 'host' => 'tcp:snmp1/161', 'community' => 'public' }],
232
+ 'ecs_compatibility' => 'disabled'
233
+ )
234
+ end
235
+
236
+ it 'should return two events ' do
237
+ queue = run_plugin_and_get_queue(plugin)
238
+ host_cnt_snmp1 = queue.select { |event| event.get('host') == 'snmp1' }.size
239
+ expect(queue.size).to eq(2)
240
+ expect(host_cnt_snmp1).to eq(2)
241
+ end
242
+ end
243
+
244
+ describe 'single input plugin on multiple udp hosts' do
245
+ let(:config) do
246
+ super().merge({
247
+ 'get' => %w[1.3.6.1.2.1.1.1.0],
248
+ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'community' => 'public' }, { 'host' => 'udp:snmp2/162', 'community' => 'public' }],
249
+ 'ecs_compatibility' => 'disabled'
250
+ })
251
+ end
252
+
253
+ it 'should return two events, one per host' do
254
+ queue = run_plugin_and_get_queue(plugin)
255
+ hosts = queue.map { |event| event.get('host') }.sort
256
+ expect(queue.size).to eq(2)
257
+ expect(hosts).to eq(['snmp1', 'snmp2'])
258
+ end
259
+ end
260
+
261
+ describe 'multiple pipelines and mix of udp and tcp hosts' do
262
+ let(:config) { { 'get' => ['1.3.6.1.2.1.1.1.0'], 'hosts' => [{ 'host' => 'udp:snmp1/161', 'community' => 'public' }], 'ecs_compatibility' => 'disabled' } }
263
+ let(:config2) { { 'get' => ['1.3.6.1.2.1.1.1.0'], 'hosts' => [{ 'host' => 'tcp:snmp2/162', 'community' => 'public' }], 'ecs_compatibility' => 'disabled' } }
264
+ let(:plugin) { LogStash::Inputs::Snmp.new(config) }
265
+ let(:plugin2) { LogStash::Inputs::Snmp.new(config2) }
266
+
267
+ it 'should return two events, one per host' do
268
+ queue = run_plugin_and_get_queue(plugin, timeout: 60)
269
+ queue2 = run_plugin_and_get_queue(plugin2, timeout: 60)
270
+ hosts = [queue.pop, queue2.pop].map { |event| event.get('host') }.sort
271
+ expect(hosts).to eq(%w[snmp1 snmp2])
272
+ end
273
+ end
274
+
275
+ describe 'multiple plugin inputs and mix of udp and tcp hosts' do
276
+ config = <<-CONFIG
277
+ input {
278
+ snmp {
279
+ get => ["1.3.6.1.2.1.1.1.0"]
280
+ hosts => [{host => "udp:snmp1/161" community => "public"}]
281
+ ecs_compatibility => "disabled"
282
+ }
283
+ snmp {
284
+ get => ["1.3.6.1.2.1.1.1.0"]
285
+ hosts => [{host => "tcp:snmp2/162" community => "public"}]
286
+ ecs_compatibility => "disabled"
287
+ }
288
+ }
289
+ CONFIG
290
+
291
+ it_behaves_like 'snmp plugin return one udp event and one tcp event', config
292
+ end
293
+
294
+ describe 'two plugins on different hosts with snmp v3 with same security name with different credentials and mix of udp and tcp' do
295
+ config = <<-CONFIG
296
+ input {
297
+ snmp {
298
+ get => ["1.3.6.1.2.1.1.1.0"]
299
+ hosts => [{host => "udp:snmp1/161" version => "3"}]
300
+ security_name => "user_1"
301
+ auth_protocol => "sha"
302
+ auth_pass => "STrP@SSPhr@sE"
303
+ priv_protocol => "aes"
304
+ priv_pass => "STr0ngP@SSWRD161"
305
+ security_level => "authPriv"
306
+ ecs_compatibility => "disabled"
307
+ }
308
+ snmp {
309
+ get => ["1.3.6.1.2.1.1.1.0"]
310
+ hosts => [{host => "tcp:snmp2/162" version => "3"}]
311
+ security_name => "user_1"
312
+ auth_protocol => "sha"
313
+ auth_pass => "STrP@SSPhr@sE"
314
+ priv_protocol => "aes"
315
+ priv_pass => "STr0ngP@SSWRD162"
316
+ security_level => "authPriv"
317
+ ecs_compatibility => "disabled"
318
+ }
319
+ }
320
+ CONFIG
321
+
322
+ it_behaves_like 'snmp plugin return one udp event and one tcp event', config
323
+ end
324
+
325
+ describe 'single host with tcp over ipv6' do
326
+ let(:config) do
327
+ super().merge({ 'get' => %w[1.3.6.1.2.1.1.1.0], 'hosts' => [{ 'host' => 'tcp:[2001:3984:3989::161]/161' }] })
328
+ end
329
+
330
+ it 'should fetch an event' do
331
+ event = run_plugin_and_get_queue(plugin).pop
332
+ expect(event).to be_a(LogStash::Event)
333
+ end
334
+ end
335
+
336
+ context 'with oid_mapping_format => dotted_string' do
337
+ let(:config) do
338
+ super().merge({
339
+ 'get' => %w[1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.7.0 1.3.6.1.2.1.1.5.0],
340
+ 'oid_mapping_format' => 'dotted_string',
341
+ 'hosts' => [{ 'host' => 'udp:snmp1/161', 'version' => '2c', 'community' => 'public' }]
342
+ })
343
+ end
344
+
345
+ it 'should have OID fields mapped as dotted string' do
346
+ event = run_plugin_and_get_queue(plugin).pop
347
+ expect(event).to be_a(LogStash::Event)
348
+ expect(event.get('1.3.6.1.2.1.1.1.0')).to be_a String
349
+ expect(event.get('1.3.6.1.2.1.1.7.0')).to be_a Integer
350
+ expect(event.get('1.3.6.1.2.1.1.5.0')).to be_a String
351
+ end
352
+ end
353
+
354
+ context 'with oid_mapping_format => ruby_snmp' do
355
+ let(:config) do
356
+ super().merge({
357
+ 'get' => %w[1.3.6.1.2.1.1.1.0 1.3.6.1.2.1.1.7.0 1.3.6.1.2.1.1.5.0],
358
+ 'oid_mapping_format' => 'ruby_snmp',
359
+ 'hosts' => [{ 'host' => 'tcp:snmp1/161', 'version' => '2c', 'community' => 'public' }]
360
+ })
361
+ end
362
+
363
+ it 'should have OID fields mapped as ruby snmp' do
364
+ event = run_plugin_and_get_queue(plugin).pop
365
+ expect(event).to be_a(LogStash::Event)
366
+ expect(event.get('SNMPv2-MIB::sysDescr.0')).to be_a String
367
+ expect(event.get('SNMPv2-MIB::sysServices.0')).to be_a Integer
368
+ expect(event.get('SNMPv2-MIB::sysName.0')).to be_a String
369
+ end
370
+ end
371
+
372
+ context 'with use_provided_mibs => true' do
373
+ let(:config) do
374
+ super().merge({
375
+ 'hosts' => [{ 'host' => "tcp:snmp1/161", 'version' => '2c' }],
376
+ 'get' => ['1.3.6.1.2.1.1.1.0'],
377
+ 'use_provided_mibs' => true,
378
+ 'mib_paths' => []
379
+ })
380
+ end
381
+
382
+ it 'should have OID fields mapped' do
383
+ event = run_plugin_and_get_queue(plugin).pop
384
+ expect(event).to be_a(LogStash::Event)
385
+ expect(event.get('iso.org.dod.internet.mgmt.mib-2.system.sysDescr.0')).to be_a String
386
+ end
387
+ end
388
+
389
+ context 'with oid_map_field_values' do
390
+ let(:oid_map_field_values) { true }
391
+ let(:config) do
392
+ super().merge({
393
+ 'hosts' => [{ 'host' => "tcp:snmp1/161", 'version' => '2c' }],
394
+ 'get' => ['1.3.6.1.2.1.1.2.0'],
395
+ 'use_provided_mibs' => true,
396
+ 'mib_paths' => [],
397
+ 'oid_map_field_values' => oid_map_field_values
398
+ })
399
+ end
400
+
401
+ context 'set to false' do
402
+ let(:oid_map_field_values) { false }
403
+
404
+ it 'should not map OID field values' do
405
+ event = run_plugin_and_get_queue(plugin).pop
406
+ expect(event).to be_a(LogStash::Event)
407
+ expect(event.get('iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0')).to eq('1.3.6.1.4.1.8072.3.2.10')
408
+ end
409
+ end
410
+
411
+ context 'set to true' do
412
+ let(:oid_map_field_values) { true }
413
+
414
+ it 'should map OID field values' do
415
+ event = run_plugin_and_get_queue(plugin).pop
416
+ expect(event).to be_a(LogStash::Event)
417
+ expect(event.get('iso.org.dod.internet.mgmt.mib-2.system.sysObjectID.0')).to eq('iso.org.dod.internet.private.enterprises.8072.3.2.10')
418
+ end
419
+ end
420
+ end
421
+
422
+ def run_plugin_and_get_queue(plugin, timeout: 30, register: true)
423
+ poll_clients_latch = Concurrent::CountDownLatch.new(1)
424
+
425
+ allow(plugin).to receive(:poll_clients).and_wrap_original do |original_method, *args, &block|
426
+ original_method.call(*args, &block)
427
+ poll_clients_latch.count_down
428
+ end
429
+
430
+ plugin.register if register
431
+ Thread.new do
432
+ unless poll_clients_latch.wait(timeout)
433
+ end
434
+ ensure
435
+ plugin.do_close
436
+ plugin.do_stop
437
+ end
438
+
439
+ queue = Concurrent::Array.new
440
+ plugin.run(queue)
441
+ queue
442
+ end
443
+ end