telemetry-snmp 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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