telemetry-snmp 0.1.0

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 (131) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rspec.yml +44 -0
  3. data/.github/workflows/rubocop.yml +28 -0
  4. data/.github/workflows/sourcehawk-scan.yml +20 -0
  5. data/.gitignore +14 -0
  6. data/.rspec +4 -0
  7. data/.rubocop.yml +26 -0
  8. data/CHANGELOG.md +4 -0
  9. data/CODE_OF_CONDUCT.md +75 -0
  10. data/CONTRIBUTING.md +54 -0
  11. data/Gemfile +10 -0
  12. data/INDIVIDUAL_CONTRIBUTOR_LICENSE.md +30 -0
  13. data/LICENSE +201 -0
  14. data/NOTICE.txt +9 -0
  15. data/README.md +54 -0
  16. data/attribution.txt +1 -0
  17. data/config.ru +15 -0
  18. data/exe/snmp_collector +55 -0
  19. data/lib/telemetry/snmp.rb +23 -0
  20. data/lib/telemetry/snmp/api.rb +55 -0
  21. data/lib/telemetry/snmp/auth.rb +54 -0
  22. data/lib/telemetry/snmp/auth/defaults.rb +41 -0
  23. data/lib/telemetry/snmp/client.rb +104 -0
  24. data/lib/telemetry/snmp/controllers/device_creds.rb +105 -0
  25. data/lib/telemetry/snmp/controllers/devices.rb +94 -0
  26. data/lib/telemetry/snmp/controllers/oid_groups.rb +71 -0
  27. data/lib/telemetry/snmp/controllers/oids.rb +80 -0
  28. data/lib/telemetry/snmp/controllers/users.rb +81 -0
  29. data/lib/telemetry/snmp/controllers/walks.rb +89 -0
  30. data/lib/telemetry/snmp/data.rb +69 -0
  31. data/lib/telemetry/snmp/data/default_opts.rb +73 -0
  32. data/lib/telemetry/snmp/data/migrations/001_device_creds.rb +19 -0
  33. data/lib/telemetry/snmp/data/migrations/002_create_devices_table.rb +31 -0
  34. data/lib/telemetry/snmp/data/migrations/003_create_oids_tables.rb +16 -0
  35. data/lib/telemetry/snmp/data/migrations/004_create_oid_groups.rb +15 -0
  36. data/lib/telemetry/snmp/data/migrations/005_create_oids_oid_groups.rb +17 -0
  37. data/lib/telemetry/snmp/data/migrations/006_device_to_oid_group.rb +15 -0
  38. data/lib/telemetry/snmp/data/migrations/007_create_users.rb +20 -0
  39. data/lib/telemetry/snmp/data/migrations/008_create_walks_table.rb +14 -0
  40. data/lib/telemetry/snmp/data/migrations/009_create_tag_name_column.rb +7 -0
  41. data/lib/telemetry/snmp/data/migrations/010_create_user_audit_table.rb +18 -0
  42. data/lib/telemetry/snmp/data/models/device.rb +11 -0
  43. data/lib/telemetry/snmp/data/models/device_cred.rb +11 -0
  44. data/lib/telemetry/snmp/data/models/oid.rb +10 -0
  45. data/lib/telemetry/snmp/data/models/oid_group.rb +10 -0
  46. data/lib/telemetry/snmp/data/models/oid_oid_groups.rb +10 -0
  47. data/lib/telemetry/snmp/data/models/oid_walk.rb +10 -0
  48. data/lib/telemetry/snmp/data/models/user.rb +10 -0
  49. data/lib/telemetry/snmp/data/models/user_audit_log.rb +19 -0
  50. data/lib/telemetry/snmp/mibs/AGENTX-MIB.txt +527 -0
  51. data/lib/telemetry/snmp/mibs/AIRPORT-BASESTATION-3-MIB.txt +461 -0
  52. data/lib/telemetry/snmp/mibs/BRIDGE-MIB.txt +1472 -0
  53. data/lib/telemetry/snmp/mibs/DISMAN-EVENT-MIB.txt +1882 -0
  54. data/lib/telemetry/snmp/mibs/DISMAN-SCHEDULE-MIB.txt +699 -0
  55. data/lib/telemetry/snmp/mibs/DISMAN-SCRIPT-MIB.txt +1764 -0
  56. data/lib/telemetry/snmp/mibs/EtherLike-MIB.txt +1862 -0
  57. data/lib/telemetry/snmp/mibs/HCNUM-TC.txt +118 -0
  58. data/lib/telemetry/snmp/mibs/HOST-RESOURCES-MIB.txt +1540 -0
  59. data/lib/telemetry/snmp/mibs/HOST-RESOURCES-TYPES.txt +389 -0
  60. data/lib/telemetry/snmp/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt +123 -0
  61. data/lib/telemetry/snmp/mibs/IANA-LANGUAGE-MIB.txt +123 -0
  62. data/lib/telemetry/snmp/mibs/IANA-RTPROTO-MIB.txt +91 -0
  63. data/lib/telemetry/snmp/mibs/IANAifType-MIB.txt +619 -0
  64. data/lib/telemetry/snmp/mibs/IF-INVERTED-STACK-MIB.txt +149 -0
  65. data/lib/telemetry/snmp/mibs/IF-MIB.txt +1814 -0
  66. data/lib/telemetry/snmp/mibs/INET-ADDRESS-MIB.txt +402 -0
  67. data/lib/telemetry/snmp/mibs/IP-FORWARD-MIB.txt +1277 -0
  68. data/lib/telemetry/snmp/mibs/IP-MIB.txt +4993 -0
  69. data/lib/telemetry/snmp/mibs/IPV6-FLOW-LABEL-MIB.txt +58 -0
  70. data/lib/telemetry/snmp/mibs/IPV6-ICMP-MIB.txt +529 -0
  71. data/lib/telemetry/snmp/mibs/IPV6-MIB.txt +1443 -0
  72. data/lib/telemetry/snmp/mibs/IPV6-TC.txt +67 -0
  73. data/lib/telemetry/snmp/mibs/IPV6-TCP-MIB.txt +211 -0
  74. data/lib/telemetry/snmp/mibs/IPV6-UDP-MIB.txt +141 -0
  75. data/lib/telemetry/snmp/mibs/NET-SNMP-AGENT-MIB.txt +554 -0
  76. data/lib/telemetry/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt +285 -0
  77. data/lib/telemetry/snmp/mibs/NET-SNMP-EXTEND-MIB.txt +325 -0
  78. data/lib/telemetry/snmp/mibs/NET-SNMP-MIB.txt +67 -0
  79. data/lib/telemetry/snmp/mibs/NET-SNMP-PASS-MIB.txt +124 -0
  80. data/lib/telemetry/snmp/mibs/NET-SNMP-TC.txt +128 -0
  81. data/lib/telemetry/snmp/mibs/NET-SNMP-VACM-MIB.txt +154 -0
  82. data/lib/telemetry/snmp/mibs/NOTIFICATION-LOG-MIB.txt +753 -0
  83. data/lib/telemetry/snmp/mibs/PAN-COMMON-MIB.md5 +1 -0
  84. data/lib/telemetry/snmp/mibs/PAN-COMMON-MIB.my +2293 -0
  85. data/lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.md5 +1 -0
  86. data/lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.my +293 -0
  87. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.md5 +1 -0
  88. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.my +84 -0
  89. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.md5 +1 -0
  90. data/lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.my +68 -0
  91. data/lib/telemetry/snmp/mibs/PAN-LC-MIB.md5 +1 -0
  92. data/lib/telemetry/snmp/mibs/PAN-LC-MIB.my +204 -0
  93. data/lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.md5 +1 -0
  94. data/lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.my +305 -0
  95. data/lib/telemetry/snmp/mibs/PAN-TRAPS.md5 +1 -0
  96. data/lib/telemetry/snmp/mibs/PAN-TRAPS.my +7809 -0
  97. data/lib/telemetry/snmp/mibs/RFC-1215.txt +38 -0
  98. data/lib/telemetry/snmp/mibs/RFC1155-SMI.txt +119 -0
  99. data/lib/telemetry/snmp/mibs/RFC1213-MIB.txt +2613 -0
  100. data/lib/telemetry/snmp/mibs/RMON-MIB.txt +3980 -0
  101. data/lib/telemetry/snmp/mibs/SCTP-MIB.txt +1342 -0
  102. data/lib/telemetry/snmp/mibs/SMUX-MIB.txt +160 -0
  103. data/lib/telemetry/snmp/mibs/SNMP-COMMUNITY-MIB.txt +429 -0
  104. data/lib/telemetry/snmp/mibs/SNMP-FRAMEWORK-MIB.txt +526 -0
  105. data/lib/telemetry/snmp/mibs/SNMP-MPD-MIB.txt +145 -0
  106. data/lib/telemetry/snmp/mibs/SNMP-NOTIFICATION-MIB.txt +589 -0
  107. data/lib/telemetry/snmp/mibs/SNMP-PROXY-MIB.txt +294 -0
  108. data/lib/telemetry/snmp/mibs/SNMP-TARGET-MIB.txt +660 -0
  109. data/lib/telemetry/snmp/mibs/SNMP-USER-BASED-SM-MIB.txt +912 -0
  110. data/lib/telemetry/snmp/mibs/SNMP-USM-AES-MIB.txt +62 -0
  111. data/lib/telemetry/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.txt +532 -0
  112. data/lib/telemetry/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.txt +830 -0
  113. data/lib/telemetry/snmp/mibs/SNMPv2-CONF.txt +322 -0
  114. data/lib/telemetry/snmp/mibs/SNMPv2-MIB.txt +854 -0
  115. data/lib/telemetry/snmp/mibs/SNMPv2-SMI.txt +344 -0
  116. data/lib/telemetry/snmp/mibs/SNMPv2-TC.txt +772 -0
  117. data/lib/telemetry/snmp/mibs/SNMPv2-TM.txt +176 -0
  118. data/lib/telemetry/snmp/mibs/TCP-MIB.txt +785 -0
  119. data/lib/telemetry/snmp/mibs/TRANSPORT-ADDRESS-MIB.txt +421 -0
  120. data/lib/telemetry/snmp/mibs/TUNNEL-MIB.txt +738 -0
  121. data/lib/telemetry/snmp/mibs/UCD-DEMO-MIB.txt +74 -0
  122. data/lib/telemetry/snmp/mibs/UCD-DISKIO-MIB.txt +171 -0
  123. data/lib/telemetry/snmp/mibs/UCD-DLMOD-MIB.txt +124 -0
  124. data/lib/telemetry/snmp/mibs/UCD-IPFWACC-MIB.txt +327 -0
  125. data/lib/telemetry/snmp/mibs/UCD-SNMP-MIB.txt +1712 -0
  126. data/lib/telemetry/snmp/mibs/UDP-MIB.txt +549 -0
  127. data/lib/telemetry/snmp/publisher.rb +130 -0
  128. data/lib/telemetry/snmp/version.rb +7 -0
  129. data/sourcehawk.yml +4 -0
  130. data/telemetry-snmp.gemspec +48 -0
  131. metadata +456 -0
@@ -0,0 +1,130 @@
1
+ require 'telemetry/amqp'
2
+
3
+ module Telemetry
4
+ module Snmp
5
+ module Publisher
6
+ class << self
7
+ def start!(**opts)
8
+ @opts = opts
9
+ @opts[:amqp] = {} if opts[:amqp].nil?
10
+
11
+ @session = nil
12
+ @channel = nil
13
+ @exchange = nil
14
+ session
15
+ channel
16
+ true
17
+ end
18
+
19
+ def opts
20
+ @opts ||= { amqp: {} }
21
+ end
22
+
23
+ def username
24
+ if ENV.key? 'telemetry.snmp.amqp.username'
25
+ ENV['telemetry.snmp.amqp.username']
26
+ elsif opts[:amqp].key? :username
27
+ opts[:amqp][:username]
28
+ else
29
+ 'guest'
30
+ end
31
+ end
32
+
33
+ def password
34
+ ENV['telemetry.snmp.amqp.password'] || opts[:amqp][:password] || 'guest'
35
+ end
36
+
37
+ def vhost
38
+ ENV['telemetry.snmp.amqp.vhost'] || opts[:amqp][:vhost] || 'telemetry'
39
+ end
40
+
41
+ def port
42
+ if ENV.key? 'telemetry.snmp.amqp.port'
43
+ ENV['telemetry.snmp.amqp.port'].to_i
44
+ elsif opts[:amqp].key? :port
45
+ opts[:amqp][:port]
46
+ elsif use_ssl?
47
+ 5671
48
+ else
49
+ 5672
50
+ end
51
+ end
52
+
53
+ def use_ssl?
54
+ if ENV.key? 'telemetry.snmp.amqp.use_ssl'
55
+ %w[1 true].include? ENV['telemetry.snmp.amqp.use_ssl']
56
+ elsif opts[:amqp].key?(:use_ssl)
57
+ opts[:amqp][:use_ssl]
58
+ else
59
+ false
60
+ end
61
+ end
62
+
63
+ def nodes
64
+ if ENV.key?('telemetry.snmp.amqp.nodes')
65
+ ENV['telemetry.snmp.amqp.nodes'].split(',')
66
+ elsif opts[:amqp].key?(:nodes)
67
+ opts[:amqp][:nodes]
68
+ else
69
+ ['localhost']
70
+ end
71
+ end
72
+
73
+ def exchange_name
74
+ ENV['telemetry.snmp.amqp.exchange_name'] || opts[:amqp][:exchange_name] || 'telemetry.snmp'
75
+ end
76
+
77
+ def session
78
+ @session ||= Telemetry::AMQP::Base.new(
79
+ auto_start: true,
80
+ vhost: vhost,
81
+ application: 'Telemetry::Snmp',
82
+ app_version: Telemetry::Snmp::VERSION,
83
+ username: username,
84
+ password: password,
85
+ port: port,
86
+ nodes: nodes
87
+ )
88
+ end
89
+
90
+ def push_lines(lines)
91
+ line_exchange.publish(lines.join("\n"), **publish_opts, routing_key: 'snmp')
92
+ end
93
+
94
+ def channel
95
+ if !@channel_thread.nil? && !@channel_thread.value.nil? && @channel_thread.value.open?
96
+ return @channel_thread.value
97
+ end
98
+
99
+ @channel_thread = Concurrent::ThreadLocalVar.new(nil) if @channel_thread.nil?
100
+ @channel_thread.value = session.create_channel
101
+ @channel_thread.value
102
+ end
103
+
104
+ def line_exchange
105
+ @exchange ||= channel.topic(
106
+ exchange_name,
107
+ durable: true,
108
+ auto_delete: false,
109
+ internal: false,
110
+ passive: false
111
+ )
112
+ rescue Bunny::PreconditionFailed
113
+ @exchange ||= channel.topic(exchange_name, passive: true)
114
+ end
115
+
116
+ def publish_opts
117
+ {
118
+ routing_key: 'snmp',
119
+ persistent: true,
120
+ mandatory: false,
121
+ timstamp: Time.now.to_i,
122
+ type: 'metric',
123
+ content_type: 'application/json',
124
+ content_encoding: 'identity'
125
+ }
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telemetry
4
+ module Snmp
5
+ VERSION = '0.1.0'
6
+ end
7
+ end
data/sourcehawk.yml ADDED
@@ -0,0 +1,4 @@
1
+
2
+ config-locations:
3
+ - https://raw.githubusercontent.com/optum/.github/main/sourcehawk.yml
4
+
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/telemetry/snmp/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'telemetry-snmp'
7
+ spec.version = Telemetry::Snmp::VERSION
8
+ spec.authors = ['Esity']
9
+ spec.email = ['matt.iverson@optum.com']
10
+
11
+ spec.summary = 'Telemetry snmp gem for collecting snmp data'
12
+ spec.description = 'A gem that grabs data from SNMP sources and sends it to Telemetry::AMQP'
13
+ spec.homepage = 'https://github.com/Optum/telemetry-snmp'
14
+ spec.license = 'Apache-2.0'
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.5.0')
16
+
17
+ spec.metadata['homepage_uri'] = spec.homepage
18
+ spec.metadata['source_code_uri'] = 'https://github.com/Optum/telemetry-snmp'
19
+ spec.metadata['bug_tracker_uri'] = 'https://github.com/Optum/telemetry-snmp/issues'
20
+ spec.metadata['changelog_uri'] = 'https://github.com/Optum/telemetry-snmp/blob/main/CHANGELOG.md'
21
+
22
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
23
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
24
+ end
25
+ spec.require_paths = ['lib']
26
+
27
+ spec.add_dependency 'concurrent-ruby', '>= 1.1.7'
28
+ spec.add_dependency 'concurrent-ruby-ext', '>= 1.1.7'
29
+ spec.add_dependency 'connection_pool', '>= 2.2.3'
30
+ spec.add_dependency 'faraday'
31
+ spec.add_dependency 'faraday_middleware'
32
+ spec.add_dependency 'faraday-request-timer'
33
+ spec.add_dependency 'multi_json'
34
+ spec.add_dependency 'mysql2'
35
+ spec.add_dependency 'net-http-persistent'
36
+ spec.add_dependency 'net-ldap'
37
+ spec.add_dependency 'netsnmp', '<= 0.4.0'
38
+ spec.add_dependency 'oj', '>= 3.11'
39
+ spec.add_dependency 'puma', '>= 5.1.1'
40
+ spec.add_dependency 'rack', '>= 2.2.3'
41
+ spec.add_dependency 'sequel'
42
+ spec.add_dependency 'sinatra', '>= 2.1.0'
43
+ spec.add_dependency 'sinatra-contrib'
44
+
45
+ spec.add_dependency 'telemetry-amqp'
46
+ spec.add_dependency 'telemetry-logger'
47
+ spec.add_dependency 'telemetry-metrics-parser'
48
+ end
metadata ADDED
@@ -0,0 +1,456 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: telemetry-snmp
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Esity
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-08-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: concurrent-ruby
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.7
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.7
27
+ - !ruby/object:Gem::Dependency
28
+ name: concurrent-ruby-ext
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.7
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.7
41
+ - !ruby/object:Gem::Dependency
42
+ name: connection_pool
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 2.2.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 2.2.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: faraday
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: faraday_middleware
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: faraday-request-timer
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: multi_json
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: mysql2
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: net-http-persistent
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: net-ldap
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: netsnmp
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "<="
158
+ - !ruby/object:Gem::Version
159
+ version: 0.4.0
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "<="
165
+ - !ruby/object:Gem::Version
166
+ version: 0.4.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: oj
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '3.11'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '3.11'
181
+ - !ruby/object:Gem::Dependency
182
+ name: puma
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ version: 5.1.1
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - ">="
193
+ - !ruby/object:Gem::Version
194
+ version: 5.1.1
195
+ - !ruby/object:Gem::Dependency
196
+ name: rack
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: 2.2.3
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: 2.2.3
209
+ - !ruby/object:Gem::Dependency
210
+ name: sequel
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: sinatra
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: 2.1.0
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: 2.1.0
237
+ - !ruby/object:Gem::Dependency
238
+ name: sinatra-contrib
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :runtime
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: telemetry-amqp
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :runtime
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ - !ruby/object:Gem::Dependency
266
+ name: telemetry-logger
267
+ requirement: !ruby/object:Gem::Requirement
268
+ requirements:
269
+ - - ">="
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ type: :runtime
273
+ prerelease: false
274
+ version_requirements: !ruby/object:Gem::Requirement
275
+ requirements:
276
+ - - ">="
277
+ - !ruby/object:Gem::Version
278
+ version: '0'
279
+ - !ruby/object:Gem::Dependency
280
+ name: telemetry-metrics-parser
281
+ requirement: !ruby/object:Gem::Requirement
282
+ requirements:
283
+ - - ">="
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
286
+ type: :runtime
287
+ prerelease: false
288
+ version_requirements: !ruby/object:Gem::Requirement
289
+ requirements:
290
+ - - ">="
291
+ - !ruby/object:Gem::Version
292
+ version: '0'
293
+ description: A gem that grabs data from SNMP sources and sends it to Telemetry::AMQP
294
+ email:
295
+ - matt.iverson@optum.com
296
+ executables: []
297
+ extensions: []
298
+ extra_rdoc_files: []
299
+ files:
300
+ - ".github/workflows/rspec.yml"
301
+ - ".github/workflows/rubocop.yml"
302
+ - ".github/workflows/sourcehawk-scan.yml"
303
+ - ".gitignore"
304
+ - ".rspec"
305
+ - ".rubocop.yml"
306
+ - CHANGELOG.md
307
+ - CODE_OF_CONDUCT.md
308
+ - CONTRIBUTING.md
309
+ - Gemfile
310
+ - INDIVIDUAL_CONTRIBUTOR_LICENSE.md
311
+ - LICENSE
312
+ - NOTICE.txt
313
+ - README.md
314
+ - attribution.txt
315
+ - config.ru
316
+ - exe/snmp_collector
317
+ - lib/telemetry/snmp.rb
318
+ - lib/telemetry/snmp/api.rb
319
+ - lib/telemetry/snmp/auth.rb
320
+ - lib/telemetry/snmp/auth/defaults.rb
321
+ - lib/telemetry/snmp/client.rb
322
+ - lib/telemetry/snmp/controllers/device_creds.rb
323
+ - lib/telemetry/snmp/controllers/devices.rb
324
+ - lib/telemetry/snmp/controllers/oid_groups.rb
325
+ - lib/telemetry/snmp/controllers/oids.rb
326
+ - lib/telemetry/snmp/controllers/users.rb
327
+ - lib/telemetry/snmp/controllers/walks.rb
328
+ - lib/telemetry/snmp/data.rb
329
+ - lib/telemetry/snmp/data/default_opts.rb
330
+ - lib/telemetry/snmp/data/migrations/001_device_creds.rb
331
+ - lib/telemetry/snmp/data/migrations/002_create_devices_table.rb
332
+ - lib/telemetry/snmp/data/migrations/003_create_oids_tables.rb
333
+ - lib/telemetry/snmp/data/migrations/004_create_oid_groups.rb
334
+ - lib/telemetry/snmp/data/migrations/005_create_oids_oid_groups.rb
335
+ - lib/telemetry/snmp/data/migrations/006_device_to_oid_group.rb
336
+ - lib/telemetry/snmp/data/migrations/007_create_users.rb
337
+ - lib/telemetry/snmp/data/migrations/008_create_walks_table.rb
338
+ - lib/telemetry/snmp/data/migrations/009_create_tag_name_column.rb
339
+ - lib/telemetry/snmp/data/migrations/010_create_user_audit_table.rb
340
+ - lib/telemetry/snmp/data/models/device.rb
341
+ - lib/telemetry/snmp/data/models/device_cred.rb
342
+ - lib/telemetry/snmp/data/models/oid.rb
343
+ - lib/telemetry/snmp/data/models/oid_group.rb
344
+ - lib/telemetry/snmp/data/models/oid_oid_groups.rb
345
+ - lib/telemetry/snmp/data/models/oid_walk.rb
346
+ - lib/telemetry/snmp/data/models/user.rb
347
+ - lib/telemetry/snmp/data/models/user_audit_log.rb
348
+ - lib/telemetry/snmp/mibs/AGENTX-MIB.txt
349
+ - lib/telemetry/snmp/mibs/AIRPORT-BASESTATION-3-MIB.txt
350
+ - lib/telemetry/snmp/mibs/BRIDGE-MIB.txt
351
+ - lib/telemetry/snmp/mibs/DISMAN-EVENT-MIB.txt
352
+ - lib/telemetry/snmp/mibs/DISMAN-SCHEDULE-MIB.txt
353
+ - lib/telemetry/snmp/mibs/DISMAN-SCRIPT-MIB.txt
354
+ - lib/telemetry/snmp/mibs/EtherLike-MIB.txt
355
+ - lib/telemetry/snmp/mibs/HCNUM-TC.txt
356
+ - lib/telemetry/snmp/mibs/HOST-RESOURCES-MIB.txt
357
+ - lib/telemetry/snmp/mibs/HOST-RESOURCES-TYPES.txt
358
+ - lib/telemetry/snmp/mibs/IANA-ADDRESS-FAMILY-NUMBERS-MIB.txt
359
+ - lib/telemetry/snmp/mibs/IANA-LANGUAGE-MIB.txt
360
+ - lib/telemetry/snmp/mibs/IANA-RTPROTO-MIB.txt
361
+ - lib/telemetry/snmp/mibs/IANAifType-MIB.txt
362
+ - lib/telemetry/snmp/mibs/IF-INVERTED-STACK-MIB.txt
363
+ - lib/telemetry/snmp/mibs/IF-MIB.txt
364
+ - lib/telemetry/snmp/mibs/INET-ADDRESS-MIB.txt
365
+ - lib/telemetry/snmp/mibs/IP-FORWARD-MIB.txt
366
+ - lib/telemetry/snmp/mibs/IP-MIB.txt
367
+ - lib/telemetry/snmp/mibs/IPV6-FLOW-LABEL-MIB.txt
368
+ - lib/telemetry/snmp/mibs/IPV6-ICMP-MIB.txt
369
+ - lib/telemetry/snmp/mibs/IPV6-MIB.txt
370
+ - lib/telemetry/snmp/mibs/IPV6-TC.txt
371
+ - lib/telemetry/snmp/mibs/IPV6-TCP-MIB.txt
372
+ - lib/telemetry/snmp/mibs/IPV6-UDP-MIB.txt
373
+ - lib/telemetry/snmp/mibs/NET-SNMP-AGENT-MIB.txt
374
+ - lib/telemetry/snmp/mibs/NET-SNMP-EXAMPLES-MIB.txt
375
+ - lib/telemetry/snmp/mibs/NET-SNMP-EXTEND-MIB.txt
376
+ - lib/telemetry/snmp/mibs/NET-SNMP-MIB.txt
377
+ - lib/telemetry/snmp/mibs/NET-SNMP-PASS-MIB.txt
378
+ - lib/telemetry/snmp/mibs/NET-SNMP-TC.txt
379
+ - lib/telemetry/snmp/mibs/NET-SNMP-VACM-MIB.txt
380
+ - lib/telemetry/snmp/mibs/NOTIFICATION-LOG-MIB.txt
381
+ - lib/telemetry/snmp/mibs/PAN-COMMON-MIB.md5
382
+ - lib/telemetry/snmp/mibs/PAN-COMMON-MIB.my
383
+ - lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.md5
384
+ - lib/telemetry/snmp/mibs/PAN-ENTITY-EXT-MIB.my
385
+ - lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.md5
386
+ - lib/telemetry/snmp/mibs/PAN-GLOBAL-REG-MIB.my
387
+ - lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.md5
388
+ - lib/telemetry/snmp/mibs/PAN-GLOBAL-TC-MIB.my
389
+ - lib/telemetry/snmp/mibs/PAN-LC-MIB.md5
390
+ - lib/telemetry/snmp/mibs/PAN-LC-MIB.my
391
+ - lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.md5
392
+ - lib/telemetry/snmp/mibs/PAN-PRODUCT-MIB.my
393
+ - lib/telemetry/snmp/mibs/PAN-TRAPS.md5
394
+ - lib/telemetry/snmp/mibs/PAN-TRAPS.my
395
+ - lib/telemetry/snmp/mibs/RFC-1215.txt
396
+ - lib/telemetry/snmp/mibs/RFC1155-SMI.txt
397
+ - lib/telemetry/snmp/mibs/RFC1213-MIB.txt
398
+ - lib/telemetry/snmp/mibs/RMON-MIB.txt
399
+ - lib/telemetry/snmp/mibs/SCTP-MIB.txt
400
+ - lib/telemetry/snmp/mibs/SMUX-MIB.txt
401
+ - lib/telemetry/snmp/mibs/SNMP-COMMUNITY-MIB.txt
402
+ - lib/telemetry/snmp/mibs/SNMP-FRAMEWORK-MIB.txt
403
+ - lib/telemetry/snmp/mibs/SNMP-MPD-MIB.txt
404
+ - lib/telemetry/snmp/mibs/SNMP-NOTIFICATION-MIB.txt
405
+ - lib/telemetry/snmp/mibs/SNMP-PROXY-MIB.txt
406
+ - lib/telemetry/snmp/mibs/SNMP-TARGET-MIB.txt
407
+ - lib/telemetry/snmp/mibs/SNMP-USER-BASED-SM-MIB.txt
408
+ - lib/telemetry/snmp/mibs/SNMP-USM-AES-MIB.txt
409
+ - lib/telemetry/snmp/mibs/SNMP-USM-DH-OBJECTS-MIB.txt
410
+ - lib/telemetry/snmp/mibs/SNMP-VIEW-BASED-ACM-MIB.txt
411
+ - lib/telemetry/snmp/mibs/SNMPv2-CONF.txt
412
+ - lib/telemetry/snmp/mibs/SNMPv2-MIB.txt
413
+ - lib/telemetry/snmp/mibs/SNMPv2-SMI.txt
414
+ - lib/telemetry/snmp/mibs/SNMPv2-TC.txt
415
+ - lib/telemetry/snmp/mibs/SNMPv2-TM.txt
416
+ - lib/telemetry/snmp/mibs/TCP-MIB.txt
417
+ - lib/telemetry/snmp/mibs/TRANSPORT-ADDRESS-MIB.txt
418
+ - lib/telemetry/snmp/mibs/TUNNEL-MIB.txt
419
+ - lib/telemetry/snmp/mibs/UCD-DEMO-MIB.txt
420
+ - lib/telemetry/snmp/mibs/UCD-DISKIO-MIB.txt
421
+ - lib/telemetry/snmp/mibs/UCD-DLMOD-MIB.txt
422
+ - lib/telemetry/snmp/mibs/UCD-IPFWACC-MIB.txt
423
+ - lib/telemetry/snmp/mibs/UCD-SNMP-MIB.txt
424
+ - lib/telemetry/snmp/mibs/UDP-MIB.txt
425
+ - lib/telemetry/snmp/publisher.rb
426
+ - lib/telemetry/snmp/version.rb
427
+ - sourcehawk.yml
428
+ - telemetry-snmp.gemspec
429
+ homepage: https://github.com/Optum/telemetry-snmp
430
+ licenses:
431
+ - Apache-2.0
432
+ metadata:
433
+ homepage_uri: https://github.com/Optum/telemetry-snmp
434
+ source_code_uri: https://github.com/Optum/telemetry-snmp
435
+ bug_tracker_uri: https://github.com/Optum/telemetry-snmp/issues
436
+ changelog_uri: https://github.com/Optum/telemetry-snmp/blob/main/CHANGELOG.md
437
+ post_install_message:
438
+ rdoc_options: []
439
+ require_paths:
440
+ - lib
441
+ required_ruby_version: !ruby/object:Gem::Requirement
442
+ requirements:
443
+ - - ">="
444
+ - !ruby/object:Gem::Version
445
+ version: 2.5.0
446
+ required_rubygems_version: !ruby/object:Gem::Requirement
447
+ requirements:
448
+ - - ">="
449
+ - !ruby/object:Gem::Version
450
+ version: '0'
451
+ requirements: []
452
+ rubygems_version: 3.1.6
453
+ signing_key:
454
+ specification_version: 4
455
+ summary: Telemetry snmp gem for collecting snmp data
456
+ test_files: []