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,73 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module DefaultOpts
5
+ def default_credentials
6
+ {
7
+ adapter: adapter,
8
+ user: username,
9
+ password: password,
10
+ database: database,
11
+ host: host,
12
+ port: port,
13
+ max_connections: max_connections,
14
+ pool_timeout: pool_timeout,
15
+ preconnect: preconnect,
16
+ test: true
17
+ }
18
+ end
19
+ module_function :default_credentials
20
+
21
+ def adapter
22
+ ENV["#{env_key}.adapter"] == 'postgres' ? 'postgres' : 'mysql2'
23
+ end
24
+ module_function :adapter
25
+
26
+ def username
27
+ ENV["#{env_key}.username"] || 'root'
28
+ end
29
+ module_function :username
30
+
31
+ def password
32
+ ENV["#{env_key}.password"] || nil
33
+ end
34
+ module_function :password
35
+
36
+ def database
37
+ ENV["#{env_key}.database"] || 'telemetry_snmp'
38
+ end
39
+ module_function :database
40
+
41
+ def host
42
+ ENV["#{env_key}.host"] || '127.0.0.1'
43
+ end
44
+ module_function :host
45
+
46
+ def port
47
+ ENV.key?("#{env_key}.port") ? ENV["#{env_key}.port"].to_i : 3306
48
+ end
49
+ module_function :port
50
+
51
+ def max_connections
52
+ ENV.key?("#{env_key}.max_connections") ? ENV["#{env_key}.max_connections"].to_i : 16
53
+ end
54
+ module_function :max_connections
55
+
56
+ def pool_timeout
57
+ ENV.key?("#{env_key}.pool_timeout") ? ENV["#{env_key}.pool_timeout"].to_i : 2
58
+ end
59
+ module_function :pool_timeout
60
+
61
+ def preconnect
62
+ ENV["#{env_key}.preconnect"] || 'concurrently'
63
+ end
64
+ module_function :preconnect
65
+
66
+ def env_key
67
+ ENV['conflux.data.key'] || 'telemetry.snmp.data'
68
+ end
69
+ module_function :env_key
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,19 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:device_creds) do
4
+ primary_key :id
5
+ Integer :port, null: false, default: 161
6
+ String :username, null: false, default: 'paf-tig'
7
+ String :auth_password
8
+ String :auth_protocol, null: false, default: 'sha'
9
+ String :priv_password
10
+ String :priv_protocol, null: false, default: 'aes'
11
+ String :security_level, null: false, default: 'auth_priv'
12
+
13
+ DateTime :created
14
+ DateTime :updated
15
+
16
+ index :username
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,31 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:devices) do
4
+ primary_key :id
5
+ String :hostname, null: false, unique: true
6
+ String :ip_address, null: false, unique: true
7
+ TrueClass :active, null: false, default: 1
8
+ Integer :port, null: false, default: 161
9
+ Integer :snmp_version, null: false, default: 3
10
+ foreign_key :device_cred_id, :device_creds, null: true
11
+ Integer :frequency, null: false, default: 60
12
+
13
+ String :environment
14
+ String :datacenter
15
+ String :zone
16
+
17
+ DateTime :last_polled
18
+ DateTime :created
19
+ DateTime :updated
20
+
21
+ index :hostname, unique: true
22
+ index :ip_address, unique: true
23
+ index :active
24
+ index :last_polled
25
+ index :environment
26
+ index :datacenter
27
+ index :zone
28
+ index :snmp_version
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:oids) do
4
+ primary_key :id
5
+ String :oid, null: false, unique: true
6
+ String :name, null: false
7
+ String :description, null: true
8
+
9
+ DateTime :created
10
+ DateTime :updated
11
+
12
+ index :oid
13
+ index :name
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:oid_groups) do
4
+ primary_key :id
5
+ String :name, null: false, unique: true
6
+ TrueClass :active, null: false, default: 1
7
+
8
+ DateTime :created
9
+ DateTime :updated
10
+
11
+ index :name
12
+ index :active
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:oids_oid_groups) do
4
+ primary_key :id
5
+ String :name, null: false, unique: true
6
+ TrueClass :active, null: false, default: 1
7
+ foreign_key :oid_id, :oids, null: true
8
+ foreign_key :oid_group_id, :oid_groups, null: true
9
+
10
+ DateTime :created
11
+ DateTime :updated
12
+
13
+ index :name
14
+ index :active
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:oid_groups_device) do
4
+ primary_key :id
5
+ foreign_key :device_id, :devices, null: false
6
+ foreign_key :oid_group_id, :oid_groups, null: false
7
+
8
+ DateTime :created
9
+ DateTime :updated
10
+
11
+ index :device_id
12
+ index :oid_group_id
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:users) do
4
+ primary_key :id
5
+ String :username, required: true, null: false, unique: true
6
+ String :email, required: true, null: false, unique: true
7
+
8
+ TrueClass :active, null: false, default: 1
9
+ TrueClass :admin, null: false, default: 0
10
+
11
+ DateTime :created
12
+ DateTime :updated
13
+
14
+ unique :username
15
+ unique :email
16
+ index :active
17
+ index :admin
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,14 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:oid_walks) do
4
+ primary_key :id
5
+ String :oid_index
6
+ String :oid_walk
7
+ TrueClass :active, null: false, default: 1
8
+ String :measurement_name, null: false, default: 'snmp'
9
+
10
+ DateTime :created
11
+ DateTime :updated
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,7 @@
1
+ Sequel.migration do
2
+ change do
3
+ alter_table(:oid_walks) do
4
+ add_column :tag_name, String
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ Sequel.migration do
2
+ change do
3
+ create_table(:user_audit_logs) do
4
+ primary_key :id
5
+ TrueClass :success, null: false, default: 1
6
+ foreign_key :user_id, :users, null: false
7
+ foreign_key :device_id, :devices, null: true
8
+ foreign_key :device_cred_id, :device_creds, null: true
9
+ foreign_key :oid_walk_id, :oid_walks, null: true
10
+ foreign_key :oid_id, :oids, null: true
11
+
12
+ String :entry, text: true
13
+
14
+ DateTime :created
15
+ DateTime :updated
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,11 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module Model
5
+ class Device < Sequel::Model
6
+ many_to_one :device_cred
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module Model
5
+ class DeviceCred < Sequel::Model
6
+ one_to_many :devices
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module Model
5
+ class OID < Sequel::Model
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module Model
5
+ class OIDGroup < Sequel::Model
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module Model
5
+ class OIDToGroup < Sequel::Model(:oids_oid_groups)
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module Model
5
+ class OIDWalks < Sequel::Model(:oid_walks)
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module Model
5
+ class User < Sequel::Model
6
+ end
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ module Telemetry
2
+ module Snmp
3
+ module Data
4
+ module Model
5
+ class UserAuditLog < Sequel::Model
6
+ plugin :serialization
7
+ serialize_attributes :json, :entry
8
+
9
+ many_to_one :user
10
+
11
+ many_to_one :device
12
+ many_to_one :device_cred
13
+ many_to_one :oid
14
+ many_to_one :oid_walk
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,527 @@
1
+ AGENTX-MIB DEFINITIONS ::= BEGIN
2
+
3
+ IMPORTS
4
+ MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, mib-2
5
+ FROM SNMPv2-SMI
6
+ SnmpAdminString
7
+ FROM SNMP-FRAMEWORK-MIB
8
+ MODULE-COMPLIANCE, OBJECT-GROUP
9
+ FROM SNMPv2-CONF
10
+ TEXTUAL-CONVENTION, TimeStamp, TruthValue, TDomain
11
+ FROM SNMPv2-TC;
12
+ agentxMIB MODULE-IDENTITY
13
+ LAST-UPDATED "200001100000Z" -- Midnight 10 January 2000
14
+ ORGANIZATION "AgentX Working Group"
15
+ CONTACT-INFO "WG-email: agentx@dorothy.bmc.com
16
+ Subscribe: agentx-request@dorothy.bmc.com
17
+ WG-email Archive: ftp://ftp.peer.com/pub/agentx/archives
18
+ FTP repository: ftp://ftp.peer.com/pub/agentx
19
+ http://www.ietf.org/html.charters/agentx-charter.html
20
+
21
+ Chair: Bob Natale
22
+ ACE*COMM Corporation
23
+ Email: bnatale@acecomm.com
24
+
25
+ WG editor: Mark Ellison
26
+ Ellison Software Consulting, Inc.
27
+ Email: ellison@world.std.com
28
+
29
+ Co-author: Lauren Heintz
30
+ Cisco Systems,
31
+ EMail: lheintz@cisco.com
32
+
33
+ Co-author: Smitha Gudur
34
+ Independent Consultant
35
+ Email: sgudur@hotmail.com
36
+ "
37
+ DESCRIPTION "This is the MIB module for the SNMP Agent Extensibility
38
+ Protocol (AgentX). This MIB module will be implemented by
39
+ the master agent.
40
+ "
41
+
42
+ REVISION "200001100000Z" -- Midnight 10 January 2000
43
+ DESCRIPTION
44
+ "Initial version published as RFC 2742."
45
+ ::= { mib-2 74 }
46
+
47
+ -- Textual Conventions
48
+
49
+ AgentxTAddress ::= TEXTUAL-CONVENTION
50
+ STATUS current
51
+ DESCRIPTION
52
+ "Denotes a transport service address. This is identical to
53
+ the TAddress textual convention (SNMPv2-SMI) except that
54
+ zero-length values are permitted.
55
+ "
56
+ SYNTAX OCTET STRING (SIZE (0..255))
57
+
58
+ -- Administrative assignments
59
+
60
+ agentxObjects OBJECT IDENTIFIER ::= { agentxMIB 1 }
61
+ agentxGeneral OBJECT IDENTIFIER ::= { agentxObjects 1 }
62
+ agentxConnection OBJECT IDENTIFIER ::= { agentxObjects 2 }
63
+ agentxSession OBJECT IDENTIFIER ::= { agentxObjects 3 }
64
+ agentxRegistration OBJECT IDENTIFIER ::= { agentxObjects 4 }
65
+
66
+ agentxDefaultTimeout OBJECT-TYPE
67
+ SYNTAX INTEGER (0..255)
68
+ UNITS "seconds"
69
+ MAX-ACCESS read-only
70
+ STATUS current
71
+ DESCRIPTION
72
+ "The default length of time, in seconds, that the master
73
+ agent should allow to elapse after dispatching a message
74
+ to a session before it regards the subagent as not
75
+ responding. This is a system-wide value that may
76
+ override the timeout value associated with a particular
77
+ session (agentxSessionTimeout) or a particular registered
78
+ MIB region (agentxRegTimeout). If the associated value of
79
+ agentxSessionTimeout and agentxRegTimeout are zero, or
80
+ impractical in accordance with implementation-specific
81
+ procedure of the master agent, the value represented by
82
+ this object will be the effective timeout value for the
83
+
84
+ master agent to await a response to a dispatch from a
85
+ given subagent.
86
+ "
87
+ DEFVAL { 5 }
88
+ ::= { agentxGeneral 1 }
89
+
90
+ agentxMasterAgentXVer OBJECT-TYPE
91
+ SYNTAX INTEGER (1..255)
92
+ MAX-ACCESS read-only
93
+ STATUS current
94
+ DESCRIPTION
95
+ "The AgentX protocol version supported by this master agent.
96
+ The current protocol version is 1. Note that the master agent
97
+ must also allow interaction with earlier version subagents.
98
+ "
99
+ ::= { agentxGeneral 2 }
100
+
101
+ -- The AgentX Subagent Connection Group
102
+
103
+ agentxConnTableLastChange OBJECT-TYPE
104
+ SYNTAX TimeStamp
105
+ MAX-ACCESS read-only
106
+ STATUS current
107
+ DESCRIPTION
108
+ "The value of sysUpTime when the last row creation or deletion
109
+ occurred in the agentxConnectionTable.
110
+ "
111
+ ::= { agentxConnection 1 }
112
+
113
+ agentxConnectionTable OBJECT-TYPE
114
+ SYNTAX SEQUENCE OF AgentxConnectionEntry
115
+ MAX-ACCESS not-accessible
116
+ STATUS current
117
+ DESCRIPTION
118
+ "The agentxConnectionTable tracks all current AgentX transport
119
+ connections. There may be zero, one, or more AgentX sessions
120
+ carried on a given AgentX connection.
121
+ "
122
+ ::= { agentxConnection 2 }
123
+
124
+ agentxConnectionEntry OBJECT-TYPE
125
+ SYNTAX AgentxConnectionEntry
126
+ MAX-ACCESS not-accessible
127
+ STATUS current
128
+ DESCRIPTION
129
+ "An agentxConnectionEntry contains information describing a
130
+ single AgentX transport connection. A connection may be
131
+
132
+ used to support zero or more AgentX sessions. An entry is
133
+ created when a new transport connection is established,
134
+ and is destroyed when the transport connection is terminated.
135
+ "
136
+ INDEX { agentxConnIndex }
137
+ ::= { agentxConnectionTable 1 }
138
+
139
+ AgentxConnectionEntry ::= SEQUENCE {
140
+ agentxConnIndex Unsigned32,
141
+ agentxConnOpenTime TimeStamp,
142
+ agentxConnTransportDomain TDomain,
143
+ agentxConnTransportAddress AgentxTAddress }
144
+
145
+ agentxConnIndex OBJECT-TYPE
146
+ SYNTAX Unsigned32 (1..4294967295)
147
+ MAX-ACCESS not-accessible
148
+ STATUS current
149
+ DESCRIPTION
150
+ "agentxConnIndex contains the value that uniquely identifies
151
+ an open transport connection used by this master agent
152
+ to provide AgentX service. Values of this index should
153
+ not be re-used. The value assigned to a given transport
154
+ connection is constant for the lifetime of that connection.
155
+ "
156
+ ::= { agentxConnectionEntry 1 }
157
+
158
+ agentxConnOpenTime OBJECT-TYPE
159
+ SYNTAX TimeStamp
160
+ MAX-ACCESS read-only
161
+ STATUS current
162
+ DESCRIPTION
163
+ "The value of sysUpTime when this connection was established
164
+ and, therefore, its value when this entry was added to the table.
165
+ "
166
+ ::= { agentxConnectionEntry 2 }
167
+
168
+ agentxConnTransportDomain OBJECT-TYPE
169
+ SYNTAX TDomain
170
+ MAX-ACCESS read-only
171
+ STATUS current
172
+ DESCRIPTION
173
+ "The transport protocol in use for this connection to the
174
+ subagent.
175
+ "
176
+ ::= { agentxConnectionEntry 3 }
177
+
178
+ agentxConnTransportAddress OBJECT-TYPE
179
+ SYNTAX AgentxTAddress
180
+ MAX-ACCESS read-only
181
+ STATUS current
182
+ DESCRIPTION
183
+ "The transport address of the remote (subagent) end of this
184
+ connection to the master agent. This object may be zero-length
185
+ for unix-domain sockets (and possibly other types of transport
186
+ addresses) since the subagent need not bind a filename to its
187
+ local socket.
188
+ "
189
+ ::= { agentxConnectionEntry 4 }
190
+
191
+ -- The AgentX Subagent Session Group
192
+
193
+ agentxSessionTableLastChange OBJECT-TYPE
194
+ SYNTAX TimeStamp
195
+ MAX-ACCESS read-only
196
+ STATUS current
197
+ DESCRIPTION
198
+ "The value of sysUpTime when the last row creation or deletion
199
+ occurred in the agentxSessionTable.
200
+ "
201
+ ::= { agentxSession 1 }
202
+
203
+ agentxSessionTable OBJECT-TYPE
204
+ SYNTAX SEQUENCE OF AgentxSessionEntry
205
+ MAX-ACCESS not-accessible
206
+ STATUS current
207
+ DESCRIPTION
208
+ "A table of AgentX subagent sessions currently in effect.
209
+ "
210
+ ::= { agentxSession 2 }
211
+
212
+ agentxSessionEntry OBJECT-TYPE
213
+ SYNTAX AgentxSessionEntry
214
+ MAX-ACCESS not-accessible
215
+ STATUS current
216
+ DESCRIPTION
217
+ "Information about a single open session between the AgentX
218
+ master agent and a subagent is contained in this entry. An
219
+ entry is created when a new session is successfully established
220
+ and is destroyed either when the subagent transport connection
221
+ has terminated or when the subagent session is closed.
222
+ "
223
+ INDEX { agentxConnIndex, agentxSessionIndex }
224
+ ::= { agentxSessionTable 1 }
225
+
226
+ AgentxSessionEntry ::= SEQUENCE {
227
+ agentxSessionIndex Unsigned32,
228
+ agentxSessionObjectID OBJECT IDENTIFIER,
229
+ agentxSessionDescr SnmpAdminString,
230
+ agentxSessionAdminStatus INTEGER,
231
+ agentxSessionOpenTime TimeStamp,
232
+ agentxSessionAgentXVer INTEGER,
233
+ agentxSessionTimeout INTEGER
234
+ }
235
+
236
+ agentxSessionIndex OBJECT-TYPE
237
+ SYNTAX Unsigned32 (0..4294967295)
238
+ MAX-ACCESS not-accessible
239
+ STATUS current
240
+ DESCRIPTION
241
+ "A unique index for the subagent session. It is the same as
242
+ h.sessionID defined in the agentx header. Note that if
243
+ a subagent's session with the master agent is closed for
244
+ any reason its index should not be re-used.
245
+ A value of zero(0) is specifically allowed in order
246
+ to be compatible with the definition of h.sessionId.
247
+ "
248
+ ::= { agentxSessionEntry 1 }
249
+
250
+ agentxSessionObjectID OBJECT-TYPE
251
+ SYNTAX OBJECT IDENTIFIER
252
+ MAX-ACCESS read-only
253
+ STATUS current
254
+ DESCRIPTION
255
+ "This is taken from the o.id field of the agentx-Open-PDU.
256
+ This attribute will report a value of '0.0' for subagents
257
+ not supporting the notion of an AgentX session object
258
+ identifier.
259
+ "
260
+ ::= { agentxSessionEntry 2 }
261
+
262
+ agentxSessionDescr OBJECT-TYPE
263
+ SYNTAX SnmpAdminString
264
+ MAX-ACCESS read-only
265
+ STATUS current
266
+ DESCRIPTION
267
+ "A textual description of the session. This is analogous to
268
+ sysDescr defined in the SNMPv2-MIB in RFC 1907 [19] and is
269
+ taken from the o.descr field of the agentx-Open-PDU.
270
+ This attribute will report a zero-length string value for
271
+ subagents not supporting the notion of a session description.
272
+ "
273
+ ::= { agentxSessionEntry 3 }
274
+
275
+ agentxSessionAdminStatus OBJECT-TYPE
276
+ SYNTAX INTEGER {
277
+ up(1),
278
+ down(2)
279
+ }
280
+ MAX-ACCESS read-write
281
+ STATUS current
282
+ DESCRIPTION
283
+ "The administrative (desired) status of the session. Setting
284
+ the value to 'down(2)' closes the subagent session (with c.reason
285
+ set to 'reasonByManager').
286
+ "
287
+ ::= { agentxSessionEntry 4 }
288
+
289
+ agentxSessionOpenTime OBJECT-TYPE
290
+ SYNTAX TimeStamp
291
+ MAX-ACCESS read-only
292
+ STATUS current
293
+ DESCRIPTION
294
+ "The value of sysUpTime when this session was opened and,
295
+ therefore, its value when this entry was added to the table.
296
+ "
297
+ ::= { agentxSessionEntry 5 }
298
+
299
+ agentxSessionAgentXVer OBJECT-TYPE
300
+ SYNTAX INTEGER (1..255)
301
+ MAX-ACCESS read-only
302
+ STATUS current
303
+ DESCRIPTION
304
+ "The version of the AgentX protocol supported by the
305
+ session. This must be less than or equal to the value of
306
+ agentxMasterAgentXVer.
307
+ "
308
+ ::= { agentxSessionEntry 6 }
309
+
310
+ agentxSessionTimeout OBJECT-TYPE
311
+ SYNTAX INTEGER (0..255)
312
+ UNITS "seconds"
313
+ MAX-ACCESS read-only
314
+ STATUS current
315
+ DESCRIPTION
316
+ "The length of time, in seconds, that a master agent should
317
+ allow to elapse after dispatching a message to this session
318
+ before it regards the subagent as not responding. This value
319
+ is taken from the o.timeout field of the agentx-Open-PDU.
320
+ This is a session-specific value that may be overridden by
321
+ values associated with the specific registered MIB regions
322
+ (see agentxRegTimeout). A value of zero(0) indicates that
323
+ the master agent's default timeout value should be used
324
+
325
+ (see agentxDefaultTimeout).
326
+ "
327
+ ::= { agentxSessionEntry 7 }
328
+
329
+ -- The AgentX Registration Group
330
+
331
+ agentxRegistrationTableLastChange OBJECT-TYPE
332
+ SYNTAX TimeStamp
333
+ MAX-ACCESS read-only
334
+ STATUS current
335
+ DESCRIPTION
336
+ "The value of sysUpTime when the last row creation or deletion
337
+ occurred in the agentxRegistrationTable.
338
+ "
339
+ ::= { agentxRegistration 1 }
340
+
341
+ agentxRegistrationTable OBJECT-TYPE
342
+ SYNTAX SEQUENCE OF AgentxRegistrationEntry
343
+ MAX-ACCESS not-accessible
344
+ STATUS current
345
+ DESCRIPTION
346
+ "A table of registered regions.
347
+ "
348
+ ::= { agentxRegistration 2 }
349
+
350
+ agentxRegistrationEntry OBJECT-TYPE
351
+ SYNTAX AgentxRegistrationEntry
352
+ MAX-ACCESS not-accessible
353
+ STATUS current
354
+ DESCRIPTION
355
+ "Contains information for a single registered region. An
356
+ entry is created when a session successfully registers a
357
+ region and is destroyed for any of three reasons: this region
358
+ is unregistered by the session, the session is closed,
359
+ or the subagent connection is closed.
360
+ "
361
+ INDEX { agentxConnIndex, agentxSessionIndex, agentxRegIndex }
362
+ ::= { agentxRegistrationTable 1 }
363
+
364
+ AgentxRegistrationEntry ::= SEQUENCE {
365
+ agentxRegIndex Unsigned32,
366
+ agentxRegContext OCTET STRING,
367
+ agentxRegStart OBJECT IDENTIFIER,
368
+ agentxRegRangeSubId Unsigned32,
369
+ agentxRegUpperBound Unsigned32,
370
+ agentxRegPriority Unsigned32,
371
+ agentxRegTimeout INTEGER,
372
+ agentxRegInstance TruthValue }
373
+
374
+ agentxRegIndex OBJECT-TYPE
375
+ SYNTAX Unsigned32 (1..4294967295)
376
+ MAX-ACCESS not-accessible
377
+ STATUS current
378
+ DESCRIPTION
379
+ "agentxRegIndex uniquely identifies a registration entry.
380
+ This value is constant for the lifetime of an entry.
381
+ "
382
+ ::= { agentxRegistrationEntry 1 }
383
+
384
+ agentxRegContext OBJECT-TYPE
385
+ SYNTAX OCTET STRING
386
+ MAX-ACCESS read-only
387
+ STATUS current
388
+ DESCRIPTION
389
+ "The context in which the session supports the objects in this
390
+ region. A zero-length context indicates the default context.
391
+ "
392
+ ::= { agentxRegistrationEntry 2 }
393
+
394
+ agentxRegStart OBJECT-TYPE
395
+ SYNTAX OBJECT IDENTIFIER
396
+ MAX-ACCESS read-only
397
+ STATUS current
398
+ DESCRIPTION
399
+ "The starting OBJECT IDENTIFIER of this registration entry. The
400
+ session identified by agentxSessionIndex implements objects
401
+ starting at this value (inclusive). Note that this value could
402
+ identify an object type, an object instance, or a partial object
403
+ instance.
404
+ "
405
+ ::= { agentxRegistrationEntry 3 }
406
+
407
+ agentxRegRangeSubId OBJECT-TYPE
408
+ SYNTAX Unsigned32
409
+ MAX-ACCESS read-only
410
+ STATUS current
411
+ DESCRIPTION
412
+ "agentxRegRangeSubId is used to specify the range. This is
413
+ taken from r.region_subid in the registration PDU. If the value
414
+ of this object is zero, no range is specified. If it is non-zero,
415
+ it identifies the `nth' sub-identifier in r.region for which
416
+ this entry's agentxRegUpperBound value is substituted in the
417
+ OID for purposes of defining the region's upper bound.
418
+ "
419
+ ::= { agentxRegistrationEntry 4 }
420
+
421
+ agentxRegUpperBound OBJECT-TYPE
422
+ SYNTAX Unsigned32
423
+ MAX-ACCESS read-only
424
+ STATUS current
425
+ DESCRIPTION
426
+ "agentxRegUpperBound represents the upper-bound sub-identifier in
427
+ a registration. This is taken from the r.upper_bound in the
428
+ registration PDU. If agentxRegRangeSubid (r.region_subid) is
429
+ zero, this value is also zero and is not used to define an upper
430
+ bound for this registration.
431
+ "
432
+ ::= { agentxRegistrationEntry 5 }
433
+
434
+ agentxRegPriority OBJECT-TYPE
435
+ SYNTAX Unsigned32
436
+ MAX-ACCESS read-only
437
+ STATUS current
438
+ DESCRIPTION
439
+ "The registration priority. Lower values have higher priority.
440
+ This value is taken from r.priority in the register PDU.
441
+ Sessions should use the value of 127 for r.priority if a
442
+ default value is desired.
443
+ "
444
+ ::= { agentxRegistrationEntry 6 }
445
+
446
+ agentxRegTimeout OBJECT-TYPE
447
+ SYNTAX INTEGER (0..255)
448
+ UNITS "seconds"
449
+ MAX-ACCESS read-only
450
+ STATUS current
451
+ DESCRIPTION
452
+ "The timeout value, in seconds, for responses to
453
+ requests associated with this registered MIB region.
454
+ A value of zero(0) indicates the default value (indicated
455
+ by by agentxSessionTimeout or agentxDefaultTimeout) is to
456
+ be used. This value is taken from the r.timeout field of
457
+ the agentx-Register-PDU.
458
+ "
459
+ ::= { agentxRegistrationEntry 7 }
460
+
461
+ agentxRegInstance OBJECT-TYPE
462
+ SYNTAX TruthValue
463
+ MAX-ACCESS read-only
464
+ STATUS current
465
+ DESCRIPTION
466
+ "The value of agentxRegInstance is `true' for
467
+ registrations for which the INSTANCE_REGISTRATION
468
+ was set, and is `false' for all other registrations.
469
+ "
470
+ ::= { agentxRegistrationEntry 8 }
471
+
472
+ -- Conformance Statements for AgentX
473
+
474
+ agentxConformance OBJECT IDENTIFIER ::= { agentxMIB 2 }
475
+ agentxMIBGroups OBJECT IDENTIFIER ::= { agentxConformance 1 }
476
+ agentxMIBCompliances OBJECT IDENTIFIER ::= { agentxConformance 2 }
477
+
478
+ -- Compliance Statements for AgentX
479
+
480
+ agentxMIBCompliance MODULE-COMPLIANCE
481
+ STATUS current
482
+ DESCRIPTION
483
+ "The compliance statement for SNMP entities that implement the
484
+ AgentX protocol. Note that a compliant agent can implement all
485
+ objects in this MIB module as read-only.
486
+ "
487
+ MODULE -- this module
488
+ MANDATORY-GROUPS { agentxMIBGroup }
489
+
490
+ OBJECT agentxSessionAdminStatus
491
+ MIN-ACCESS read-only
492
+ DESCRIPTION
493
+ "Write access is not required.
494
+ "
495
+ ::= { agentxMIBCompliances 1 }
496
+
497
+ agentxMIBGroup OBJECT-GROUP
498
+ OBJECTS {
499
+ agentxDefaultTimeout,
500
+ agentxMasterAgentXVer,
501
+ agentxConnTableLastChange,
502
+ agentxConnOpenTime,
503
+ agentxConnTransportDomain,
504
+ agentxConnTransportAddress,
505
+ agentxSessionTableLastChange,
506
+ agentxSessionTimeout,
507
+ agentxSessionObjectID,
508
+ agentxSessionDescr,
509
+ agentxSessionAdminStatus,
510
+ agentxSessionOpenTime,
511
+ agentxSessionAgentXVer,
512
+ agentxRegistrationTableLastChange,
513
+ agentxRegContext,
514
+ agentxRegStart,
515
+ agentxRegRangeSubId,
516
+ agentxRegUpperBound,
517
+ agentxRegPriority,
518
+ agentxRegTimeout,
519
+ agentxRegInstance
520
+ }
521
+ STATUS current
522
+ DESCRIPTION
523
+ "All accessible objects in the AgentX MIB.
524
+ "
525
+ ::= { agentxMIBGroups 1 }
526
+
527
+ END