Sha256: 26a592b2f3b41071543c1abc494528cc1246b6476717b883861c4f3878ad161f

Contents?: true

Size: 1.48 KB

Versions: 7

Compression:

Stored size: 1.48 KB

Contents

require "java"
require "logstash-input-snmp_jars.rb"
require_relative "base_client"

module LogStash
  class SnmpClient < BaseSnmpClient

    java_import "org.snmp4j.CommunityTarget"
    java_import "org.snmp4j.PDU"
    java_import "org.snmp4j.ScopedPDU"
    java_import "org.snmp4j.Snmp"
    java_import "org.snmp4j.Target"
    java_import "org.snmp4j.smi.Address"
    java_import "org.snmp4j.smi.GenericAddress"
    java_import "org.snmp4j.smi.OctetString"
    java_import "org.snmp4j.util.DefaultPDUFactory"

    def initialize(protocol, address, port, community, version, retries, timeout, mib)
      super(protocol, address, port, retries, timeout, mib)
      raise(SnmpClientError, "SnmpClient is expecting version '1' or '2c'") unless ["1", "2c"].include?(version.to_s)

      @snmp = Snmp.new(create_transport(protocol))
      @snmp.listen

      @target = build_target("#{protocol}:#{address}/#{port}", community, version, retries, timeout)
    end

    def close
      @snmp.close
    end

    private

    def get_pdu
      pdu = PDU.new
      pdu.setType(PDU::GET)
      pdu
    end

    def get_pdu_factory
      DefaultPDUFactory.new
    end

    def build_target(address, community, version, retries, timeout)
      target = CommunityTarget.new
      target.setCommunity(OctetString.new(community))
      target.setAddress(GenericAddress.parse(address))
      target.setRetries(retries)
      target.setTimeout(timeout)
      target.setVersion(parse_version(version))
      target
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
logstash-input-snmp-1.3.3 lib/logstash/inputs/snmp/client.rb
logstash-input-snmp-1.3.2 lib/logstash/inputs/snmp/client.rb
logstash-input-snmp-1.3.1 lib/logstash/inputs/snmp/client.rb
logstash-input-snmp-1.3.0 lib/logstash/inputs/snmp/client.rb
logstash-input-snmp-1.2.8 lib/logstash/inputs/snmp/client.rb
logstash-input-snmp-1.2.7 lib/logstash/inputs/snmp/client.rb
logstash-input-snmp-1.2.6 lib/logstash/inputs/snmp/client.rb