---
auths:
  public_v1:
    version: 1
  public_v2:
    version: 2
  somecommunity_v2:
    version: 2
    community: some_community
  authpriv_v3:
    username: some_user
    security_level: authPriv
    password: some_authkey
    auth_protocol: SHA
    priv_protocol: AES
    priv_password: some_privkey
    #context_name: context

modules:
  # SNMPv2-MIB for things like sysDescr, sysUpTime, etc.
  system:
    walk:
      - "SNMPv2-MIB::system"
    lookups:
      - source_indexes: [sysORIndex]
        lookup: "SNMPv2-MIB::sysORDescr"
  # Default IF-MIB interfaces table with ifIndex.
  if_mib:
    walk:
      - "IF-MIB::interfaces"
      - "IF-MIB::ifXTable"
    lookups:
      - source_indexes: [ifIndex]
        lookup: "IF-MIB::ifAlias"
      - source_indexes: [ifIndex]
        # Disambiguate from PaloAlto PAN-COMMON-MIB::ifDescr.
        lookup: "IF-MIB::ifDescr"
      - source_indexes: [ifIndex]
        # Disambiguate from Netscaler NS-ROOT-MIB::ifName.
        lookup: "IF-MIB::ifName"
    overrides:
      ifAlias:
        ignore: true # Lookup metric
      ifDescr:
        ignore: true # Lookup metric
      ifName:
        ignore: true # Lookup metric
      ifType:
        type: EnumAsInfo
  # Default IP-MIB with ipv4InterfaceTable for example.
  ip_mib:
    walk: [ipv4InterfaceTable]

  readynas:
    walk:
      - 1.3.6.1.4.1.4526               # Raid/Disks status

# Cisco Wireless LAN Controller
  cisco_wlc:
    walk:
      - 1.3.6.1.4.1.14179.2.1.1.1.38   # bsnDot11EssNumberofMobileStations
      - 1.3.6.1.4.1.14179.2.2.2.1.2    # bsnAPIfType
      - 1.3.6.1.4.1.14179.2.2.2.1.4    # bsnAPIfPhyChannelNumber
      - 1.3.6.1.4.1.14179.2.2.2.1.15   # bsnApIfNoOfUsers
      - 1.3.6.1.4.1.14179.2.2.6.1      # bsnAPIfDot11CountersTable
      - 1.3.6.1.4.1.14179.2.2.13.1.3   # bsnAPIfLoadChannelUtilization
      - 1.3.6.1.4.1.14179.2.2.15.1.21  # bsnAPIfDBNoisePower
    lookups:
      - source_indexes: [bsnDot11EssIndex]
        lookup: bsnDot11EssSsid
        drop_source_indexes: true
      - source_indexes: [bsnAPDot3MacAddress]
        lookup: bsnAPName
        drop_source_indexes: true
    overrides:
      bsnAPName:
        type: DisplayString

  cisco_device:
    walk:
      - CISCO-PROCESS-MIB::cpmCPUTotal1minRev
      - CISCO-PROCESS-MIB::cpmCPUTotal5minRev
      - CISCO-PROCESS-MIB::cpmCore1min
      - CISCO-PROCESS-MIB::cpmCore5min
      - CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolUsed
      - CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolFree
      - CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolType
      - CISCO-MEMORY-POOL-MIB::ciscoMemoryPoolName
      # 32bit counters (for ASA 9.18 and above or NX-OS)
      - CISCO-ENHANCED-MEMPOOL-MIB::cempMemPoolUsed
      - CISCO-ENHANCED-MEMPOOL-MIB::cempMemPoolFree
      - CISCO-ENHANCED-MEMPOOL-MIB::cempMemPoolType
      - CISCO-ENHANCED-MEMPOOL-MIB::cempMemPoolName
      - CISCO-ENTITY-SENSOR-MIB::entSensorValueTable
      - CISCO-ENTITY-FRU-CONTROL-MIB::cefcFRUPowerOperStatus
      - CISCO-IMAGE-MIB::ciscoImageString
      - CISCO-ENHANCED-IMAGE-MIB::ceImageTable
    lookups:
      - source_indexes: [entPhysicalIndex]
        lookup: CISCO-ENTITY-SENSOR-MIB::entSensorScale
      - source_indexes: [entPhysicalIndex]
        lookup: CISCO-ENTITY-SENSOR-MIB::entSensorType
      - source_indexes: [entPhysicalIndex]
        lookup: ENTITY-MIB::entPhysicalName
      - source_indexes: [ciscoMemoryPoolType]
        lookup: ciscoMemoryPoolName
      - source_indexes: [cempMemPoolIndex]
        lookup: cempMemPoolType
      - source_indexes: [cempMemPoolIndex]
        lookup: cempMemPoolName
    overrides:
      entSensorScale:
        ignore: true
      entSensorType:
        ignore: true
      entSensorValueTimeStamp:
        ignore: true
      entSensorValueUpdateRate:
        ignore: true
      entSensorMeasuredEntity:
        ignore: true
      ciscoMemoryPoolType:
        type: EnumAsInfo
        ignore: true
      cefcFRUPowerOperStatus:
        type: EnumAsStateSet
      ciscoMemoryPoolName:
        type: DisplayString
        ignore: true
      cempMemPoolName:
        type: DisplayString

  cisco_fc_fe:
    walk:
      - CISCO-FC-FE-MIB::fcIfInvalidCrcs
      - CISCO-FC-FE-MIB::fcIfFramesDiscard
      - CISCO-FC-FE-MIB::fcIfInvalidTxWords
      - CISCO-FC-FE-MIB::fcHCIfBBCreditTransistionToZero
      - CISCO-FC-FE-MIB::fcHCIfBBCreditTransistionFromZero
      - CISCO-FC-FE-MIB::fcIfTxWtAvgBBCreditTransitionToZero
      - CISCO-FC-FE-MIB::fcIfTxWaitCount
      - CISCO-FC-FE-MIB::fcIfCurrRxBbCredit
      - CISCO-FC-FE-MIB::fcIfCurrTxBbCredit
    lookups:
      - source_indexes: [ifIndex]
        lookup: "IF-MIB::ifAlias"
      - source_indexes: [ifIndex]
        lookup: "IF-MIB::ifDescr"
      - source_indexes: [ifIndex]
        lookup: "IF-MIB::ifName"

# Dell OpenManage MIBs
  dell:
    walk:
      - 1.3.6.1.4.1.674.10892.5.2 # statusGroup
      - 1.3.6.1.4.1.674.10892.5.4 # systemDetailsGroup
      - 1.3.6.1.4.1.674.10892.5.5 # storageDetailsGroup
# Dell network (Force10)
  dell_network:
    walk:
      - DELL-NETWORKING-CHASSIS-MIB::dellNetCpuUtilTable
      - DELL-NETWORKING-CHASSIS-MIB::dellNetPowerSupplyTable
      - DELL-NETWORKING-CHASSIS-MIB::dellNetSwModuleTable
      - DELL-NETWORKING-CHASSIS-MIB::dellNetFlashStorageTable
    overrides:
      dellNetPowerSupplyIndex:
        ignore: true
      dellNetFanDeviceType:
        type: EnumAsInfo
      dellNetPowerDeviceType:
        type: EnumAsInfo
      dellNetProcessorDeviceType:
        type: EnumAsInfo


# D-Link managed switches (DES-3200)
  dlink:
    walk:
      - AGENT-GENERAL-MIB::agentCPUutilization
      - AGENT-GENERAL-MIB::agentDRAMutilizationTable
    overrides:
      agentDRAMutilizationUnitID:
        ignore: true
# MES 2448P
  eltex_mes:
    walk:
     - ELTEX-MES-ISS-CPU-UTIL-MIB::eltMesIssCpuUtilLast5Seconds # CPU 0-100%
     - ELTEX-MES-ISS-CPU-UTIL-MIB::eltMesIssCpuUtilLastMinute # CPU 0-100%
     - ELTEX-MES-ISS-CPU-UTIL-MIB::eltMesIssCpuUtilLast5Minutes # CPU 0-100%
     - ARICENT-ISS-MIB::issSwitchCurrentRAMUsage # Memory

# HPE MIBs
  hpe:
    walk:
      - 1.3.6.1.4.1.232.1.2.2.1.1     # CPU
      - 1.3.6.1.4.1.232.11            # Firmware version
      - 1.3.6.1.4.1.232.14            # Asmd agent IDE/SATA
      - 1.3.6.1.4.1.232.3.2.2.1       # RAID storage controller
      - 1.3.6.1.4.1.232.3.2.3.1.1     # Logical drives
      - 1.3.6.1.4.1.232.3.2.5.1.1     # Physical drives
      - 1.3.6.1.4.1.232.5             # Asmd agent SCSI disks
      - 1.3.6.1.4.1.232.6.2.14.13.1.6 # Memory size only
      - 1.3.6.1.4.1.232.6.2.15        # Power meter
      - 1.3.6.1.4.1.232.6.2.16        # BIOS state
      - 1.3.6.1.4.1.232.6.2.17        # RAID controller battery
      - 1.3.6.1.4.1.232.6.2.6.8.1     # Temperatures
      - 1.3.6.1.4.1.232.6.2.9         # Power supply
      - 1.3.6.1.4.1.232.9.2.2         # ILO Module

# APC/Schneider UPS Network Management Cards
#
# Note: older management cards only support SNMP v1 (AP9606 and
# AP9607, possibly others). Older versions of the firmware may only
# support v1 as well. If you only have newer cards you can switch to
# version v2c or v3.
#
# The management cards have relatively slow processors so don't poll
# very often and give a generous timeout to prevent spurious
# errors. Alternatively you can eliminate the interface polling (OIDs
# beginning with 1.3.6.1.2.1) to reduce the time taken for polling.
#
# MIB: https://download.schneider-electric.com/files?p_File_Name=powernet426.mib
# Guide: http://www.apc.com/salestools/ASTE-6Z5QEY/ASTE-6Z5QEY_R0_EN.pdf
# Download site: http://www.apc.com/us/en/tools/download/index.cfm
  apcups:
    walk:
      - PowerNet-MIB::upsBattery      # 1.3.6.1.4.1.318.1.1.1.2
      - PowerNet-MIB::upsInput        # 1.3.6.1.4.1.318.1.1.1.3
      - PowerNet-MIB::upsOutput       # 1.3.6.1.4.1.318.1.1.1.4
      - PowerNet-MIB::upsAdvTest      # 1.3.6.1.4.1.318.1.1.1.7.2
      - PowerNet-MIB::upsComm         # 1.3.6.1.4.1.318.1.1.1.8
      - 1.3.6.1.4.1.318.1.1.1.12      # upsOutletGroups
      - 1.3.6.1.4.1.318.1.1.10.2.3.2  # iemStatusProbesTable
      - 1.3.6.1.4.1.318.1.1.26.4.3    # rPDU2DeviceStatusTable
      - 1.3.6.1.4.1.318.1.1.26.6.3    # rPDU2PhaseStatusTable
      - 1.3.6.1.4.1.318.1.1.26.8.3    # rPDU2BankStatusTable
      - 1.3.6.1.4.1.318.1.1.26.10.2.2 # rPDU2SensorTempHumidityStatusTable
    lookups:
      - source_indexes: [upsOutletGroupStatusIndex]
        lookup: upsOutletGroupStatusName
        drop_source_indexes: true
      - source_indexes: [iemStatusProbeIndex]
        lookup: iemStatusProbeName
        drop_source_indexes: true
    overrides:
      rPDU2BankStatusLoadState:
        type: EnumAsStateSet
      upsAdvBatteryCondition:
        type: EnumAsStateSet
      upsAdvBatteryChargingCurrentRestricted:
        type: EnumAsStateSet
      upsAdvBatteryChargerStatus:
        type: EnumAsStateSet
      upsHighPrecBatteryPackIndex:
        ignore: true
      upsHighPrecBatteryCartridgeIndex:
        ignore: true
      upsHighPrecBatteryExtraIndex:
        ignore: true
      upsHighPrecBatteryPackTemperature:
        scale: 0.1
        help: The battery pack temperature measured in degrees Celcius
      upsBasicBatteryStatus_seconds:
        scale: 0.01
      upsHighPrecBatteryCapacity:
        scale: 0.1
        help: The remaining battery capacity expressed in percent of full capacity - 1.3.6.1.4.1.318.1.1.1.2.2.1
      upsHighPrecBatteryActualVoltage:
        scale: 0.1
        help: The actual battery bus voltage in Volts. - 1.3.6.1.4.1.318.1.1.1.2.3.4
      upsAdvBatteryRunTimeRemaining:
        name: upsAdvBatteryRunTimeRemaining_seconds
        scale: 0.01
      upsHighPrecBatteryTemperature:
        scale: 0.1
        help: The current internal UPS temperature expressed in degrees Celsius - 1.3.6.1.4.1.318.1.1.1.2.3.2
      upsAdvBatteryReplaceIndicator:
        name: upsAdvBattery_needsreplacing
        help: Indicates whether the UPS batteries need replacing. - 1.3.6.1.4.1.318.1.1.1.2.2.4
        offset: -1.0
      upsBasicBatteryStatus:
        type: EnumAsStateSet
      upsBasicBatteryTimeOnBattery:
        name: upsBasicBatteryTimeOnBattery_seconds
        scale: 0.01
      upsAdvInputLineFailCause:
        type: EnumAsStateSet
      upsHighPrecInputFrequency:
        scale: 0.1
        help: The current input frequency to the UPS system in Hz. - 1.3.6.1.4.1.318.1.1.1.3.3.4
      upsHighPrecInputLineVoltage:
        scale: 0.1
        help: The current utility line voltage in VAC
      upsHighPrecInputMaxLineVoltage:
        scale: 0.1
        help: The maximum utility line voltage in VAC over the previous 1 minute period. - 1.3.6.1.4.1.318.1.1.1.3.3.2
      upsHighPrecInputMinLineVoltage:
        scale: 0.1
        help: The minimum utility line voltage in VAC over the previous 1 minute period. - 1.3.6.1.4.1.318.1.1.1.3.3.3
      upsHighPrecOutputCurrent:
        scale: 0.1
        help: The current in amperes drawn by the load on the UPS. - 1.3.6.1.4.1.318.1.1.1.4.3.4
      upsHighPrecOutputEfficiency:
        scale: 0.1
        help: The positive values represent efficiency of the UPS in percent - 1.3.6.1.4.1.318.1.1.1.4.3.5
      upsHighPrecOutputEnergyUsage:
        scale: 0.01
        help: The output energy usage of the UPS in kWh. - 1.3.6.1.4.1.318.1.1.1.4.3.6
      upsHighPrecOutputFrequency:
        scale: 0.1
        help: The current output frequency of the UPS system in Hz. - 1.3.6.1.4.1.318.1.1.1.4.3.2
      upsHighPrecOutputLoad:
        scale: 0.1
        help: The current UPS load expressed in percent of rated capacity. - 1.3.6.1.4.1.318.1.1.1.4.3.3
      upsHighPrecOutputVoltage:
        scale: 0.1
        help: The output voltage of the UPS system in VAC. - 1.3.6.1.4.1.318.1.1.1.4.3.1
      upsBasicOutputStatus:
        type: EnumAsStateSet
      upsAdvTestCalibrationResults:
        type: EnumAsInfo
      upsAdvTestDiagnosticSchedule:
        type: EnumAsInfo
      upsAdvTestDiagnosticsResults:
        type: EnumAsInfo
      upsAdvTestDiagnostics:
        ignore: true
      upsAdvTestRuntimeCalibration:
        ignore: true
      upsAdvTestDiagnosticTime:
        ignore: true
      upsAdvTestDiagnosticDay:
        ignore: true
      upsAdvTestBatteryInterval:
        ignore: true
      upsCommStatus:
        name: upsCommStatus_ok
        help: The status of agent's communication with UPS. 1=ok, 0=noComm
        scale: -1.0
        offset: 2.0
      upsHighPrecBatteryNominalVoltage:
        scale: 0.1
        help: The nominal battery voltage in Volts. - 1.3.6.1.4.1.318.1.1.1.2.3.3
      upsHighPrecBatteryCurrent:
        scale: 0.1
        help: The battery current in Amps - 1.3.6.1.4.1.318.1.1.1.2.3.5
      upsHighPrecTotalDCCurrent:
        scale: 0.1
        help: The total DC current in Amps. - 1.3.6.1.4.1.318.1.1.1.2.3.6
      upsHighPrecBatteryVoltage:
        scale: 0.1
        help: The actual battery bus voltage expressed as Volts - 1.3.6.1.4.1.318.1.1.1.2.3.7.1.3
      upsHighPrecTotalDCFrameCurrent:
        scale: 0.1
        help: The total DC current in Amperes. - 1.3.6.1.4.1.318.1.1.1.2.3.8.1.3
      upsHighPrecBatteryFrameCurrent:
        scale: 0.1
        help: The Battery current in Amperes. - 1.3.6.1.4.1.318.1.1.1.2.3.9.1.4
      upsHighPrecActivePower:
        scale: 0.1
        help: Active Power of Battery in kW - 1.3.6.1.4.1.318.1.1.1.2.3.12
      upsHighPrecExtdBatteryTemperature:
        scale: 0.1
        help: The current internal UPS temperature expressed in degrees Celsius
      upsHighPrecMaximumModuleTemperature:
        scale: 0.1
        help: The current maximum temperature across all battery modules in degrees Celsius - 1.3.6.1.4.1.318.1.1.1.2.3.14
      upsHighPrecMinimumModuleTemperature:
        scale: 0.1
        help: The current minimum temperature across all battery modules in degrees Celsius - 1.3.6.1.4.1.318.1.1.1.2.3.15
      upsBatteryCabinetTemperature:
        scale: 0.1
        help: The measured temperature of the battery cabinet in degrees Celcius - 1.3.6.1.4.1.318.1.1.1.2.5.1.8
      upsBatteryCabinetMaxTemperature:
        scale: 0.1
        help: The highest temperature measured for the battery in the battery cabinet in degrees Celcius - 1.3.6.1.4.1.318.1.1.1.2.5.1.9
      upsBatteryCabinetMinTemperature:
        scale: 0.1
        help: The lowest temperature measured for the battery in the battery cabinet in degrees Celcius - 1.3.6.1.4.1.318.1.1.1.2.5.1.10
      upsBatteryCabStringCurrent:
        scale: 0.1
        help: The current in a battery string or battery halfstring, in  Amps - 1.3.6.1.4.1.318.1.1.1.2.6.1.4
      upsBatteryCabStringAverageTemperature:
        scale: 0.1
        help: Temperature of the battery string or the average of the aggregated temperature
          of each battery block/module (in degrees Celcius) - 1.3.6.1.4.1.318.1.1.1.2.6.1.5
      upsBatteryCabStringMaxTemperature:
        scale: 0.1
        help: The actual highest battery temperature measurement for the battery blocks/modules (in degrees Celcius). - 1.3.6.1.4.1.318.1.1.1.2.6.1.6
      upsBatteryCabStringMinTemperature:
        scale: 0.1
        help: The actual lowest battery temperature measurement for the battery blocks/modules
          (in degrees Celcius). - 1.3.6.1.4.1.318.1.1.1.2.6.1.7
      upsBatteryCabBlockTemperature:
        scale: 0.1
        help: The temperature for the battery block/module in degrees Celcius - 1.3.6.1.4.1.318.1.1.1.2.7.1.6
      upsBatteryCabBlockCellTemperature:
        scale: 0.1
        help: The temperature for the battery cell in degrees Celcius - 1.3.6.1.4.1.318.1.1.1.2.8.1.5
      upsHighPrecInputBypassVoltage:
        scale: 0.1
        help: The current bypass line voltage in VAC. - 1.3.6.1.4.1.318.1.1.1.3.3.6
      upsHighPrecInputBypassFrequency:
        scale: 0.1
        help: The current input bypass frequency to the UPS system in Hz - 1.3.6.1.4.1.318.1.1.1.3.3.7
      upsHighPrecInputDCVoltage:
        scale: 0.1
        help: The DC input voltage, in Volts on the inverter - 1.3.6.1.4.1.318.1.1.1.3.3.8
      upsHighPrecInputDCCurrent:
        scale: 0.1
        help: The DC input current, in amperes, of the inverter. - 1.3.6.1.4.1.318.1.1.1.3.3.9
      upsAdvOutputCrestFactor:
        scale: 0.1
        help: The output current crest factor - 1.3.6.1.4.1.318.1.1.1.4.2.10.1.4
      upsAdvBatteryEstimatedChargeTime:
        scale: 0.01
        name: upsAdvBatteryEstimatedChargeTime_seconds
        help: The estimated remaining time required to charge the UPS to a full state
          of charge - 1.3.6.1.4.1.318.1.1.1.2.2.15
      upsHighPrecInputEnergyUsage:
        scale: 0.01
        help: The input energy usage of the UPS in kWh. - 1.3.6.1.4.1.318.1.1.1.3.3.5

# ServerTech Sentry 3 MIB
#
# Used by ServerTech PDUs
#
# ftp://ftp.servertech.com/Pub/SNMP/sentry3/Sentry3OIDTree.txt
# ftp://ftp.servertech.com/Pub/SNMP/sentry3/Sentry3.mib
  servertech_sentry3:
    max_repetitions: 4 # See https://github.com/prometheus/snmp_exporter/issues/1080
    walk:
      - 1.3.6.1.4.1.1718.3.2.2  # infeedTable
      - 1.3.6.1.4.1.1718.3.2.3  # outletTable
    overrides:
      infeedCapacityUsed:
        ignore: true  # Composite metric: infeedLoadValue / infeedCapacity * 100
      infeedVACapacityUsed:
        ignore: true  # Composite metric: infeedApparentPower / infeedVACapacity * 100

# ServerTech Sentry 4 MIB
#
# Used by ServerTech PDUs
#
# https://cdn10.servertech.com/assets/documents/documents/816/original/Sentry4OIDTree.txt
# https://cdn10.servertech.com/assets/documents/documents/815/original/Sentry4.mib
  servertech_sentry4:
    walk:
      - 1.3.6.1.4.1.1718.4.1.3.3   # st4InputCordMonitorTable
      - 1.3.6.1.4.1.1718.4.1.4.3   # st4LineMonitorTable
      - 1.3.6.1.4.1.1718.4.1.5.3   # st4PhaseMonitorTable
      - 1.3.6.1.4.1.1718.4.1.7.3   # st4BranchMonitorTable
      - 1.3.6.1.4.1.1718.4.1.8.3   # st4OutletMonitorTable
      - 1.3.6.1.4.1.1718.4.1.9.3   # st4TempSensorMonitorTable
      - 1.3.6.1.4.1.1718.4.1.14.3  # st4FanSensorMonitorTable

    lookups:
      - source_indexes: [st4UnitIndex]
        lookup: st4UnitName
      - source_indexes: [st4UnitIndex, st4InputCordIndex]
        lookup: st4InputCordName
        drop_source_indexes: true
      - source_indexes: [st4UnitIndex, st4InputCordIndex, st4LineIndex]
        lookup: st4LineLabel
        drop_source_indexes: true
      - source_indexes: [st4UnitIndex, st4InputCordIndex, st4PhaseIndex]
        lookup: st4PhaseLabel
        drop_source_indexes: true
      - source_indexes: [st4UnitIndex, st4InputCordIndex, st4BranchIndex]
        lookup: st4BranchLabel
        drop_source_indexes: true
      - source_indexes: [st4UnitIndex, st4InputCordIndex, st4OutletIndex]
        lookup: st4OutletName
        drop_source_indexes: true
      - source_indexes: [st4UnitIndex, st4AdcSensorIndex]
        lookup: st4AdcSensorName
        drop_source_indexes: true
      - source_indexes: [st4UnitIndex, st4AdcSensorIndex, st4FanSensorIndex]
        lookup: st4AdcSensorName
        drop_source_indexes: true

    overrides:
      st4TempSensorValue:
        scale: 0.1
        help: The measured temperature on the sensor in degrees using the scale selected by st4TempSensorScale - 1.3.6.1.4.1.1718.4.1.9.3.1.1

# Palo Alto Firewalls
#
# Palo Alto MIBs can be found here:
# https://www.paloaltonetworks.com/documentation/misc/snmp-mibs.html
#
# PanOS 7.0 enterprise MIBs:
# https://www.paloaltonetworks.com/content/dam/pan/en_US/assets/zip/technical-documentation/snmp-mib-modules/PAN-MIB-MODULES-7.0.zip
#
# Tested on a Palo Alto Networks PA-3020 series firewall
#
  paloalto_fw:
    walk:
      - 1.3.6.1.4.1.25461.2.1.2.1 # panSys
      - 1.3.6.1.4.1.25461.2.1.2.3 # panSession
      - 1.3.6.1.4.1.25461.2.1.2.5 # panGlobalProtect

# Arista Networks
#
# Arista Networks MIBs can be found here: https://www.arista.com/en/support/product-documentation/arista-snmp-mibs
#
# https://www.arista.com/assets/data/docs/MIBS/ARISTA-ENTITY-SENSOR-MIB.txt
# https://www.arista.com/assets/data/docs/MIBS/ARISTA-SW-IP-FORWARDING-MIB.txt
#
# Tested on Arista DCS-7010T-48 switch
#
  arista_sw:
    walk:
      - 1.3.6.1.4.1.30065.3.1.1 # aristaSwFwdIp

# Sophos XG
#
# Sophos XG MIBs can be found here:
#   https://docs.sophos.com/nsg/sophos-firewall/MIB/SOPHOS-XG-MIB.zip
#
# Tested on Sophos XG v20
#
  sophos_xg:
    walk:
      - 1.3.6.1.4.1.2604.5.1.1 # sfosXGDeviceInfo
      - 1.3.6.1.4.1.2604.5.1.2 # sfosXGDeviceStats
      - 1.3.6.1.4.1.2604.5.1.3 # sfosXGServiceStatus
      - 1.3.6.1.4.1.2604.5.1.4 # sfosXGHAStats
      - 1.3.6.1.4.1.2604.5.1.5 # sfosXGLicenseDetails
    overrides:
      # Info
      sfosCurrentDate:
        type: ParseDateAndTime
        datetime_pattern: "%a %b %d %H:%M:%S %Y"
      # Services
      sfosPoP3Service:
        type: EnumAsStateSet
      sfosImap4Service:
        type: EnumAsStateSet
      sfosSmtpService:
        type: EnumAsStateSet
      sfosFtpService:
        type: EnumAsStateSet
      sfosHttpService:
        type: EnumAsStateSet
      sfosAVService:
        type: EnumAsStateSet
      sfosASService:
        type: EnumAsStateSet
      sfosDNSService:
        type: EnumAsStateSet
      sfosHAService:
        type: EnumAsStateSet
      sfosIPSService:
        type: EnumAsStateSet
      sfosApacheService:
        type: EnumAsStateSet
      sfosNtpService:
        type: EnumAsStateSet
      sfosTomcatService:
        type: EnumAsStateSet
      sfosSSLVpnService:
        type: EnumAsStateSet
      sfosIPSecVpnService:
        type: EnumAsStateSet
      sfosDatabaseservice:
        type: EnumAsStateSet
      sfosNetworkService:
        type: EnumAsStateSet
      sfosGarnerService:
        type: EnumAsStateSet
      sfosDroutingService:
        type: EnumAsStateSet
      sfosSSHdService:
        type: EnumAsStateSet
      sfosDgdService:
        type: EnumAsStateSet

      # HA
      sfosHAStatus:
        type: EnumAsInfo
      sfosDeviceCurrentAppKey:
        ignore: true
      sfosDevicePeerAppKey:
        ignore: true
      sfosDeviceCurrentHAState:
        type: EnumAsStateSet
      sfosDevicePeerHAState:
        type: EnumAsStateSet
      sfosDeviceLoadBalancing:
        type: EnumAsInfo

      # License
      sfosBaseFWLicRegStatus:
        type: EnumAsStateSet
      sfosBaseFWLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"
      sfosNetProtectionLicRegStatus:
        type: EnumAsStateSet
      sfosNetProtectionLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"
      sfosWebProtectionLicRegStatus:
        type: EnumAsStateSet
      sfosWebProtectionLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"
      sfosMailProtectionLicRegStatus:
        type: EnumAsStateSet
      sfosMailProtectionLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"
      sfosWebServerProtectionLicRegStatus:
        type: EnumAsStateSet
      sfosWebServerProtectionLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"
      sfosSandstromLicRegStatus:
        type: EnumAsStateSet
      sfosSandstromLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"
      sfosEnhancedSupportLicRegStatus:
        type: EnumAsStateSet
      sfosEnhancedSupportLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"
      sfosEnhancedPlusLicRegStatus:
        type: EnumAsStateSet
      sfosEnhancedPlusLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"
      sfosCentralOrchestrationLicRegStatus:
        type: EnumAsStateSet
      sfosCentralOrchestrationLicExpiryDate:
        type: ParseDateAndTime
        datetime_pattern: "%b %d %Y"

# Synology
#
# Synology MIBs can be found here:
#   http://www.synology.com/support/snmp_mib.php
#   http://dedl.synology.com/download/Document/MIBGuide/Synology_MIB_File.zip
#
# Tested on RS2414rp+ NAS
#
  synology:
    walk:
      - SYNOLOGY-SYSTEM-MIB::synoSystem         # 1.3.6.1.4.1.6574.1
      - SYNOLOGY-DISK-MIB::synoDisk             # 1.3.6.1.4.1.6574.2
      - SYNOLOGY-RAID-MIB::synoRaid             # 1.3.6.1.4.1.6574.3
      - SYNOLOGY-UPS-MIB::synoUPS               # 1.3.6.1.4.1.6574.4
      - SYNOLOGY-SMART-MIB::synologyDiskSMART   # 1.3.6.1.4.1.6574.5
      - SYNOLOGY-SERVICES-MIB::synologyService  # 1.3.6.1.4.1.6574.6
      - SYNOLOGY-STORAGEIO-MIB::storageIO       # 1.3.6.1.4.1.6574.101
      - SYNOLOGY-SPACEIO-MIB::spaceIO           # 1.3.6.1.4.1.6574.102
      - SYNOLOGY-ISCSILUN-MIB::synologyiSCSILUN # 1.3.6.1.4.1.6574.104
    lookups:
      - source_indexes: [spaceIOIndex]
        lookup: spaceIODevice
        drop_source_indexes: true
      - source_indexes: [storageIOIndex]
        lookup: storageIODevice
        drop_source_indexes: true
      - source_indexes: [serviceInfoIndex]
        lookup: serviceName
        drop_source_indexes: true
      - source_indexes: [diskIndex]
        lookup: diskID
        drop_source_indexes: true
      - source_indexes: [raidIndex]
        lookup: raidName
        drop_source_indexes: true
    overrides:
      SYNOLOGY-DISK-MIB::diskModel:
        type: DisplayString
      SYNOLOGY-DISK-MIB::diskType:
        type: DisplayString
      SYNOLOGY-RAID-MIB::raidFreeSize:
        type: gauge
      SYNOLOGY-RAID-MIB::raidName:
        type: DisplayString
      SYNOLOGY-RAID-MIB::raidTotalSize:
        type: gauge
      SYNOLOGY-SERVICES-MIB::serviceName:
        type: DisplayString
      SYNOLOGY-SMART-MIB::diskSMARTAttrName:
        type: DisplayString
      SYNOLOGY-SMART-MIB::diskSMARTAttrStatus:
        type: DisplayString
      SYNOLOGY-SMART-MIB::diskSMARTInfoDevName:
        type: DisplayString
      SYNOLOGY-SYSTEM-MIB::modelName:
        type: DisplayString
      SYNOLOGY-SYSTEM-MIB::serialNumber:
        type: DisplayString
      SYNOLOGY-SYSTEM-MIB::version:
        type: DisplayString

# UCD-SNMP-MIB
#
# University of California, Davis extensions. Commonly used for host
# metrics. For example, Linux-based systems, DD-WRT, Synology,
# Mikrotik, Kemp LoadMaster, etc.
#
# http://www.net-snmp.org/docs/mibs/UCD-SNMP-MIB.txt
#
  ucd_la_table:
    walk:
      - 1.3.6.1.4.1.2021.10.1.2 # laNames
      - 1.3.6.1.4.1.2021.10.1.5 # laLoadInt
      - 1.3.6.1.4.1.2021.10.1.6 # laLoadFloat
    lookups:
      - source_indexes: [laIndex]
        lookup: laNames
        drop_source_indexes: true
  ucd_memory:
    walk:
      - 1.3.6.1.4.1.2021.4 # memory
  ucd_system_stats:
    walk:
      - 1.3.6.1.4.1.2021.11 # systemStats

# Ubiquiti / AirFiber
#
# https://www.ui.com/downloads/firmwares/airfiber5X/v4.0.5/UBNT-MIB.txt
#
  ubiquiti_airfiber:
    walk:
      - 1.3.6.1.4.1.41112.1.3 #ubntAirFiber

# Ubiquiti / AirMAX
#
# https://dl.ubnt.com/firmwares/airos-ubnt-mib/ubnt-mib.zip
#
  ubiquiti_airmax:
    walk:
      - 1.3.6.1.4.1.41112.1.4 # ubntAirMAX

# Ubiquiti / AirOS (nanoStation etc, old firmwares)
  ubiquiti_airos:
    walk:
      - FROGFOOT-RESOURCES-MIB::loadTable
      - FROGFOOT-RESOURCES-MIB::memory
    lookups:
      - source_indexes: [loadIndex]
        lookup: "FROGFOOT-RESOURCES-MIB::loadDescr"
    overrides:
      loadIndex:
        ignore: true # Lookup metric
      loadDescr:
        ignore: true


# Ubiquiti / UniFi
#
# http://dl.ubnt-ut.com/snmp/UBNT-MIB
# http://dl.ubnt-ut.com/snmp/UBNT-UniFi-MIB
#
  ubiquiti_unifi:
    walk:
      - 1.3.6.1.4.1.41112.1.6 # ubntUniFi
    lookups:
      - source_indexes: [unifiVapIndex]
        lookup: unifiVapName
      - source_indexes: [unifiVapIndex]
        lookup: unifiVapEssId

# keepalived
#
# https://github.com/acassen/keepalived/blob/v2.3.4/doc/KEEPALIVED-MIB.txt
# https://github.com/acassen/keepalived/blob/v2.3.4/doc/VRRP-MIB.txt
# https://github.com/acassen/keepalived/blob/v2.3.4/doc/VRRPv3-MIB.txt
  keepalived:
    walk:
      - vrrpInstanceTable # Table of VRRP instances.
      - vrrpSyncGroupTable # Table of sync groups.
      - virtualServerGroupTable # Table of virtual server groups.
      - virtualServerTable # Table of virtual servers.
      - realServerTable # Table of real servers. This includes regular real servers and sorry servers.
      - vrrpRouterStatsTable # Table of VRRP statistics.
      - vrrpv3StatisticsTable # Table of VRRPv3 statistics.
    overrides:
      vrrpSyncGroupScriptMaster:
        ignore: true # Non-metric display string.
      vrrpSyncGroupScriptBackup:
        ignore: true # Non-metric display string.
      vrrpSyncGroupScriptFault:
        ignore: true # Non-metric display string.
      vrrpSyncGroupScript:
        ignore: true # Non-metric display string.
      vrrpSyncGroupScriptStop:
        ignore: true # Non-metric display string.
      vrrpInstanceLvsSyncDaemon:
        ignore: true # Deprecated.
      vrrpInstanceLvsSyncInterface:
        ignore: true # Deprecated.
      vrrpInstanceScriptMaster:
        ignore: true # Non-metric display string.
      vrrpInstanceScriptBackup:
        ignore: true # Non-metric display string.
      vrrpInstanceScriptFault:
        ignore: true # Non-metric display string.
      vrrpInstanceScriptStop:
        ignore: true # Non-metric display string.
      vrrpInstanceScript:
        ignore: true # Non-metric display string.
      vrrpInstanceScriptMstrRxLowerPri:
        ignore: true # Non-metric display string.

# Kemp Technologies LoadMaster
#
# https://kemptechnologies.com/files/packages/current/LM_mibs.zip
# https://support.kemptechnologies.com/hc/en-us/articles/202375677-LoadMaster-SNMP-MIB-s
  kemp_loadmaster:
    walk:
      - 1.3.6.1.4.1.12196.13.0 # VSdesc
      - 1.3.6.1.4.1.12196.13.1 # VSentry
      - 1.3.6.1.4.1.12196.13.2 # RSentry
    lookups:
      - source_indexes: [vSidx]
        lookup: 1.3.6.1.4.1.12196.13.1.1.13 # vSName
    overrides:
      daemonState:
        type: EnumAsInfo
      haState:
        type: EnumAsInfo
      patchVersion:
        type: DisplayString
      rSAddrType:
        type: EnumAsInfo
      rSForwardingMethod:
        type: DisplayString
      rSIp:
        type: DisplayString
      rSState:
        type: EnumAsInfo
      vSAdaptiveMethod:
        type: DisplayString
      vSAddrtype:
        type: EnumAsInfo
      vSCheckerType:
        type: DisplayString
      vSIp:
        type: DisplayString
      vSL7cookieId:
        type: DisplayString
      vSL7persist:
        type: DisplayString
      vSName:
        type: DisplayString
      vSProtocol:
        type: EnumAsInfo
      vSSchedulingMethod:
        type: DisplayString
      vSState:
        type: EnumAsInfo
      version:
        type: DisplayString

# Printer: RFC 3805
#
# https://tools.ietf.org/html/rfc3805
# https://www.iana.org/assignments/ianaprinter-mib/ianaprinter-mib.xhtml
  printer_mib:
    walk:
      - prtGeneralReset
      - prtConsoleDisable
      - prtGeneralPrinterName
      - prtGeneralSerialNumber
      - prtAlertCriticalEvents
      - prtAlertAllEvents
      - prtCoverStatus
      - prtMarkerLifeCount
      - prtMarkerPowerOnCount
      - prtMarkerSuppliesDescription
      - prtMarkerSuppliesLevel
      - prtMarkerSuppliesMaxCapacity
      - prtMarkerSuppliesType
    lookups:
      - source_indexes: [hrDeviceIndex, prtMarkerSuppliesIndex]
        lookup: prtMarkerSuppliesType
      - source_indexes: [hrDeviceIndex, prtMarkerSuppliesIndex]
        lookup: prtMarkerSuppliesDescription
    overrides:
      prtGeneralReset:
        type: EnumAsStateSet
      prtConsoleDisable:
        type: EnumAsStateSet
      prtGeneralPrinterName:
        type: DisplayString
      prtGeneralSerialNumber:
        type: DisplayString
      prtCoverStatus:
        type: EnumAsStateSet
      prtMarkerSuppliesDescription:
        type: DisplayString

# NEC IX Router
#
# https://jpn.nec.com/univerge/ix/Manual/MIB/PICO-SMI-MIB.txt
# https://jpn.nec.com/univerge/ix/Manual/MIB/PICO-SMI-ID-MIB.txt
# https://jpn.nec.com/univerge/ix/Manual/MIB/PICO-IPSEC-FLOW-MONITOR-MIB.txt
  nec_ix:
    walk:
      - picoSystem
      - picoIpSecFlowMonitorMIB
      - picoExtIfMIB
      - picoNetworkMonitorMIB
      - picoIsdnMIB
      - picoNgnMIB
      - picoMobileMIB
      - picoIPv4MIB
      - picoIPv6MIB
      - picoNAPTMIB
    lookups:
      - source_indexes: [picoExtIfInstalledSlot, picoExtIfIndex]
        lookup: picoExtIfDescr
      - source_indexes: [naptCacheIfIndex]
        lookup: IF-MIB::ifDescr
      - source_indexes: [naptCacheIfIndex]
        lookup: IF-MIB::ifName
      - source_indexes: [naptCacheIfIndex]
        lookup: IF-MIB::ifAlias
    overrides:
      naptCacheIfIndex:
        ignore: true

# Raritan PDU (Legacy PX series - PDU-MIB)
#
# https://cdn.raritan.com/download/PX/v1.5.20/PDU-MIB.txt
  raritan:
    walk:
      - 1.3.6.1.4.1.13742.4.1.20.2.1.7 # inletCurrent
      - 1.3.6.1.4.1.13742.4.1.20.2.1.8 # inletVoltage
      - 1.3.6.1.4.1.13742.4.1.20.2.1.9 # inletActivePower
      - 1.3.6.1.4.1.13742.4.1.2.2.1.31 # outletWattHours
      - 1.3.6.1.4.1.13742.4.1.2.2.1.3  # outletOperationalState
      - 1.3.6.1.4.1.13742.4.1.2.2.1.4  # outletCurrent
      - 1.3.6.1.4.1.13742.4.1.2.2.1.5  # outletMaxCurrent
      - 1.3.6.1.4.1.13742.4.1.2.2.1.6  # outletVoltage
      - 1.3.6.1.4.1.13742.4.1.2.2.1.7  # outletActivePower
      - 1.3.6.1.4.1.13742.4.1.3.1.5    # unitCpuTemp
    lookups:
      - source_indexes: [outletIndex]
        lookup: outletLabel
    overrides:
      outletOperationalState:
        type: EnumAsStateSet

# Raritan PDU2 (PX2, PX3, PX4, PXC, SRC, PRO3X, PRO4X series - PDU2-MIB)
#
# https://cdn1.raritan.com/download/pdu-g2/4.3.10/PDU2_MIB_4.3.10_51837.txt
# https://cdn1.raritan.com/download/pdu-g2/4.3.10/AssetManagement_MIB_4.3.10_51837.txt
  raritan_pdu2:
    walk:
      # Nameplate (device identification)
      - "PDU2-MIB::nameplateTable"
      # Unit configuration
      - "PDU2-MIB::unitConfigurationTable"
      # Inlet configuration
      - "PDU2-MIB::inletConfigurationTable"
      # Outlet configuration
      - "PDU2-MIB::outletConfigurationTable"
      # Unit sensor measurements (temperature, humidity, etc.)
      - "PDU2-MIB::unitSensorMeasurementsTable"
      # Inlet sensor measurements (voltage, current, power, energy)
      - "PDU2-MIB::inletSensorMeasurementsTable"
      # Inlet pole sensor measurements (per-pole data for 3-phase)
      - "PDU2-MIB::inletPoleSensorMeasurementsTable"
      # Outlet sensor measurements (voltage, current, power, energy per outlet)
      - "PDU2-MIB::outletSensorMeasurementsTable"
      # Outlet pole sensor measurements
      - "PDU2-MIB::outletPoleSensorMeasurementsTable"
      # Over current protector measurements (breaker status)
      - "PDU2-MIB::overCurrentProtectorSensorMeasurementsTable"
      # External sensor measurements (environmental sensors)
      - "PDU2-MIB::externalSensorMeasurementsTable"
      # Circuit measurements (for branch circuit monitoring)
      - "PDU2-MIB::circuitSensorMeasurementsTable"
      # Transfer switch measurements
      - "PDU2-MIB::transferSwitchSensorMeasurementsTable"
    lookups:
      - source_indexes: [pduId]
        lookup: "PDU2-MIB::pduName"
      - source_indexes: [pduId, inletId]
        lookup: "PDU2-MIB::inletLabel"
      - source_indexes: [pduId, outletId]
        lookup: "PDU2-MIB::outletLabel"
      - source_indexes: [pduId, outletId]
        lookup: "PDU2-MIB::outletName"
      - source_indexes: [pduId, externalSensorId]
        lookup: "PDU2-MIB::externalSensorSerialNumber"
    overrides:
      pduName:
        ignore: true
      inletLabel:
        ignore: true
      outletLabel:
        ignore: true
      outletName:
        ignore: true
      externalSensorSerialNumber:
        ignore: true
      measurementsUnitSensorState:
        type: EnumAsStateSet
      measurementsInletSensorState:
        type: EnumAsStateSet
      measurementsOutletSensorState:
        type: EnumAsStateSet
      measurementsExternalSensorState:
        type: EnumAsStateSet
      measurementsOverCurrentProtectorSensorState:
        type: EnumAsStateSet
      measurementsCircuitSensorState:
        type: EnumAsStateSet
      measurementsTransferSwitchSensorState:
        type: EnumAsStateSet

# Raritan Asset Management (Asset Strips for rack unit tracking)
#
# https://cdn1.raritan.com/download/pdu-g2/4.3.10/AssetManagement_MIB_4.3.10_51837.txt
  raritan_assetmanagement:
    walk:
      # Asset strip count and default LED colors
      - "ASSETMANAGEMENT-MIB::assetStripCount"
      - "ASSETMANAGEMENT-MIB::defaultLEDColorConnected"
      - "ASSETMANAGEMENT-MIB::defaultLEDColorDisconnected"
      # Asset strip configuration (strip state, rack unit count, etc.)
      - "ASSETMANAGEMENT-MIB::assetStripConfigurationTable"
      # Asset management table (tag IDs, rack unit positions, LED status)
      - "ASSETMANAGEMENT-MIB::assetManagementTable"
      # Blade extension table (for blade servers)
      - "ASSETMANAGEMENT-MIB::bladeExtensionTable"
    lookups:
      - source_indexes: [assetStripID]
        lookup: "ASSETMANAGEMENT-MIB::assetStripName"
      - source_indexes: [assetStripID, rackUnitID]
        lookup: "ASSETMANAGEMENT-MIB::rackUnitName"
    overrides:
      assetStripName:
        ignore: true
      rackUnitName:
        ignore: true
      assetStripState:
        type: EnumAsStateSet
      ledOperationMode:
        type: EnumAsStateSet
      ledMode:
        type: EnumAsStateSet
      rackUnitType:
        type: EnumAsInfo
      assetStripType:
        type: EnumAsInfo
      rackUnitNumberingMode:
        type: EnumAsInfo
      assetStripOrientation:
        type: EnumAsInfo
      tagID:
        type: DisplayString
      tagFamily:
        type: DisplayString

# InfraPower PDU's
#
# https://www.austin-hughes.com/wp-content/uploads/2021/05/IPD-03-S-MIB.zip
# The circuit table in the infrapower MIB is invalid as it has a table (circuitTable) nested inside another table (pduTable), and this invalid setup then confuses the generator.
  infrapower_pdu:
    walk:
      - 1.3.6.1.4.1.34550.20.2.1.1.1.1 # pduIndex
      - 1.3.6.1.4.1.34550.20.2.1.1.1.6 # pduName
      - 1.3.6.1.4.1.34550.20.2.1.1.1.7 # pduLocation
      - 1.3.6.1.4.1.34550.20.2.1.1.1.13 # pduMainLoadVoltage
      - 1.3.6.1.4.1.34550.20.2.1.1.1.14 # pduMainLoadAmp
      - 1.3.6.1.4.1.34550.20.2.1.1.1.17 # pduMainActivePower
    lookups:
      - source_indexes: [pduIndex]
        lookup: pduName
      - source_indexes: [pduIndex]
        lookup: pduLocation
    overrides:
      pduIndex:
        ignore: true # Lookup metric
      pduName:
        ignore: true # Lookup metric
      pduLocation:
        ignore: true # Lookup metric
      pduMainLoadAmp:
        regex_extracts:
          '':
            - regex: '(.*)(.)'
              value: '$1.$2'
      pduMainLoadVoltage:
        regex_extracts:
          '':
            - regex: '(.*)(.)'
              value: '$1.$2'
      pduMainActivePower:
        regex_extracts:
          '':
            - regex: '(\d*?)(\d{2})'
              value: '0$1.$2'
            - regex: '^(\d)'
              value: '0.0$1'

# Liebert/Vertiv PDU's
#
# https://www.vertiv.com/en-us/support/software-download/monitoring/management-information-bases-mibs-for-liebert-products/
# https://www.vertiv.com/492204/contentassets/b00273585e0a453a9c983523e8a0d6ff/lgpmib-unix_rev16.tar
  liebert_pdu:
    walk:
      - lgpPduTable
      - lgpPduPsTable
      - lgpPduPsLineTable
      - lgpPduRcpTable
      - lgpPduAuxSensorTable
    lookups:
      - source_indexes: [lgpPduEntryIndex]
        lookup: lgpPduEntrySysAssignLabel
      - source_indexes: [lgpPduPsEntryIndex]
        lookup: lgpPduPsEntrySysAssignLabel
      - source_indexes: [lgpPduRcpEntryIndex]
        lookup: lgpPduRcpEntrySysAssignLabel
      - source_indexes: [lgpPduAuxSensorIndex]
        lookup: lgpPduAuxSensorSysAssignLabel
# Mikrotik Router
#
# http://download2.mikrotik.com/Mikrotik.mib
  mikrotik:
    walk:
      - "MIKROTIK-MIB::mikrotik"
    lookups:
      - source_indexes: [ifIndex]
        lookup: ifName
      - source_indexes: [mtxrInterfaceStatsIndex]
        lookup: ifName
      - source_indexes: [mtxrGaugeIndex]
        lookup: mtxrGaugeName
        drop_source_indexes: true
      - source_indexes: [mtxrNeighborIndex]
        lookup: mtxrNeighborMacAddress
        drop_source_indexes: true
      - source_indexes: [mtxrNeighborIndex]
        lookup: mtxrNeighborInterfaceID
      - source_indexes: [mtxrNeighborInterfaceID]
        lookup: ifName
        drop_source_indexes: true
      - source_indexes: [mtxrOpticalIndex]
        lookup: mtxrOpticalName
      - source_indexes: [mtxrPOEInterfaceIndex]
        lookup: mtxrPOEName
      - source_indexes: [mtxrPartitionIndex]
        lookup: mtxrPartitionName
      - source_indexes: [mtxrRemoteCapId]
        lookup: mtxrRemoteCapIdentity
        drop_source_indexes: true
      - source_indexes: [mtxrWifiInterfacesId]
        lookup: ifName
        drop_source_indexes: true
      - source_indexes: [mtxrWifiRegistrationInterface]
        lookup: ifName
        drop_source_indexes: true
    overrides:
      mtxrRemoteCapIdentity:
        ignore: true # information is redundant
      mtxrWifiInterfacesName:
        ignore: true # information is redundant
      mtxrWifiRegistrationMacAddress:
        ignore: true # information is redundant

# CyberPower
#
# https://www.cyberpowersystems.com/product/software/mib-files/mib-v211/
  cyberpower:
    walk:
      - 1.3.6.1.4.1.3808.1.1.1 # ups
      - 1.3.6.1.4.1.3808.1.1.4 # environmentSensor
      - 1.3.6.1.4.1.3808.1.1.5 # ats
      - 1.3.6.1.4.1.3808.1.1.6 # ePDU2
#
# TP LINK EAP
# http://static.tp-link.com/EAP_Private_Mibs_1.0.zip
  eap:
    walk:
      - 1.3.6.1.4.1.11863.10.1.1.1  # client count

#
# HOST-RESOURCES-MIB
#
# http://www.net-snmp.org/docs/mibs/host.html
  hrSystem:
    walk:
      - "HOST-RESOURCES-MIB::hrSystem"
  hrStorage:
    walk:
      - "HOST-RESOURCES-MIB::hrStorage"
    lookups:
      - source_indexes: [hrStorageIndex]
        lookup: "HOST-RESOURCES-MIB::hrStorageDescr"
      - source_indexes: [hrStorageIndex]
        lookup: "HOST-RESOURCES-MIB::hrStorageType"
    overrides:
      hrStorageIndex:
        ignore: true
      hrStorageType:
        ignore: true
      hrStorageDescr:
        ignore: true
  hrDevice:
    walk:
      - "HOST-RESOURCES-MIB::hrDevice"
    lookups:
      - source_indexes: [hrDeviceIndex]
        lookup: "HOST-RESOURCES-MIB::hrDeviceDescr"
      - source_indexes: [hrDeviceIndex]
        lookup: "HOST-RESOURCES-MIB::hrDeviceType"
    overrides:
      # Remap enums where 1==true, 2==false to become 0==false, 1==true.
      hrDiskStorageRemoveble:
        scale: -1.0
        offset: 2.0
      hrPrinterStatus:
        type: EnumAsStateSet
      hrDeviceIndex:
        ignore: true
      hrDeviceType:
        ignore: true
      hrDeviceDescr:
        ignore: true
      hrProcessorFrwID:
        ignore: true
  hrSWRun:
    walk:
      - "HOST-RESOURCES-MIB::hrSWRun"
  hrSWRunPerf:
    walk:
      - "HOST-RESOURCES-MIB::hrSWRunPerf"
  hrSWInstalled:
    walk:
      - "HOST-RESOURCES-MIB::hrSWInstalled"

#
# Powercom MIBs
#
# https://www.upspowercom.com/Card-DA807.jsp
#
  powercom:
    walk:
      - 1.3.6.1.4.1.935.1.1.1.1.1.1   # upsBaseIdentModel
      - 1.3.6.1.4.1.935.1.1.1.1.2.1   # upsSmartIdentFirmwareRevision
      - 1.3.6.1.4.1.935.1.1.1.1.2.2   # upsSmartIdentDateOfManufacture
      - 1.3.6.1.4.1.935.1.1.1.1.2.4   # upsSmartIdentAgentFirmwareRevision
      - 1.3.6.1.4.1.935.1.1.1.2.1.1   # upsBaseBatteryStatus
      - 1.3.6.1.4.1.935.1.1.1.2.1.2   # upsBaseBatteryTimeOnBattery
      - 1.3.6.1.4.1.935.1.1.1.2.2.1   # upsSmartBatteryCapacity
      - 1.3.6.1.4.1.935.1.1.1.2.2.2   # upsSmartBatteryVoltage
      - 1.3.6.1.4.1.935.1.1.1.2.2.3   # upsSmartBatteryTemperature
      - 1.3.6.1.4.1.935.1.1.1.2.2.6   # upsSmartBatteryFullChargeVoltage
      - 1.3.6.1.4.1.935.1.1.1.3.2.1   # upsSmartInputLineVoltage
      - 1.3.6.1.4.1.935.1.1.1.3.2.2   # upsSmartInputMaxLineVoltage
      - 1.3.6.1.4.1.935.1.1.1.3.2.3   # upsSmartInputMinLineVoltage
      - 1.3.6.1.4.1.935.1.1.1.3.2.4   # upsSmartInputFrequency
      - 1.3.6.1.4.1.935.1.1.1.3.2.5   # upsSmartInputLineFailCause
      - 1.3.6.1.4.1.935.1.1.1.4.1.1   # upsBaseOutputStatus
      - 1.3.6.1.4.1.935.1.1.1.4.2.1   # upsSmartOutputVoltage
      - 1.3.6.1.4.1.935.1.1.1.4.2.2   # upsSmartOutputFrequency
      - 1.3.6.1.4.1.935.1.1.1.4.2.3   # upsSmartOutputLoad
      - 1.3.6.1.4.1.935.1.1.1.4.2.7   # upsSmartOutputOverLoad
      - 1.3.6.1.4.1.935.1.1.1.4.2.8   # upsSmartOutputOverVoltage
      - 1.3.6.1.4.1.935.1.1.1.5.2.1   # upsSmartConfigRatedOutputVoltage
      - 1.3.6.1.4.1.935.1.1.1.5.2.2   # upsSmartConfigHighTransferVolt
      - 1.3.6.1.4.1.935.1.1.1.5.2.3   # upsSmartConfigLowTransferVolt
      - 1.3.6.1.4.1.935.1.1.1.5.2.4   # upsSmartConfigAlarm
      - 1.3.6.1.4.1.935.1.1.1.5.2.5   # upsSmartConfigAlarmTimer
      - 1.3.6.1.4.1.935.1.1.1.5.2.6   # upsSmartConfigMinReturnCapacity
      - 1.3.6.1.4.1.935.1.1.1.5.2.7   # upsSmartConfigSensitivity
      - 1.3.6.1.4.1.935.1.1.1.5.2.8   # upsSmartConfigLowBatteryRunTime
      - 1.3.6.1.4.1.935.1.1.1.5.2.9   # upsSmartConfigReturnDelay
      - 1.3.6.1.4.1.935.1.1.1.5.2.10  # upsSmartConfigShutoffDelay
      - 1.3.6.1.4.1.935.1.1.1.5.2.11  # upsSmartConfigUpsSleepTime
      - 1.3.6.1.4.1.935.1.1.1.7.2.1   # upsSmartTestDiagnosticSchedule
      - 1.3.6.1.4.1.935.1.1.1.7.2.3   # upsSmartTestDiagnosticsResults
      - 1.3.6.1.4.1.935.1.1.1.8.5.1   # upsThreePhaseDCandRectifierStatusRecRotError
      - 1.3.6.1.4.1.935.1.1.1.8.5.2   # upsThreePhaseDCandRectifierStatusLowBatteryShutdown
      - 1.3.6.1.4.1.935.1.1.1.8.5.3   # upsThreePhaseDCandRectifierStatusLowBattery
      - 1.3.6.1.4.1.935.1.1.1.8.5.5   # upsThreePhaseDCandRectifierStatusBatteryStatus
      - 1.3.6.1.4.1.935.1.1.1.8.5.6   # upsThreePhaseDCandRectifierStatusChargeStatus
      - 1.3.6.1.4.1.935.1.1.1.8.5.7   # upsThreePhaseDCandRectifierStatusRecOperating
      - 1.3.6.1.4.1.935.1.1.1.8.6.1   # upsThreePhaseUPSStatusBypassFreqFail
      - 1.3.6.1.4.1.935.1.1.1.8.6.2   # upsThreePhaseUPSStatusManualBypassBreaker
      - 1.3.6.1.4.1.935.1.1.1.8.6.3   # upsThreePhaseUPSStatusACStatus
      - 1.3.6.1.4.1.935.1.1.1.8.6.4   # upsThreePhaseUPSStaticSwitchMode
      - 1.3.6.1.4.1.935.1.1.1.8.6.5   # upsThreePhaseUPSStatusInverterOperating
      - 1.3.6.1.4.1.935.1.1.1.8.7.1   # upsThreePhaseFaultStatusEmergencyStop
      - 1.3.6.1.4.1.935.1.1.1.8.7.2   # upsThreePhaseFaultStatusHighDCShutdown
      - 1.3.6.1.4.1.935.1.1.1.8.7.3   # upsThreePhaseFaultStatusBypassBreaker
      - 1.3.6.1.4.1.935.1.1.1.8.7.4   # upsThreePhaseFaultStatusOverLoad
      - 1.3.6.1.4.1.935.1.1.1.8.7.5   # upsThreePhaseFaultStatusInverterOutputFail
      - 1.3.6.1.4.1.935.1.1.1.8.7.6   # upsThreePhaseFaultStatusOverTemperature
      - 1.3.6.1.4.1.935.1.1.1.8.7.7   # upsThreePhaseFaultStatusShortCircuit
      - 1.3.6.1.4.1.935.1.1.1.9.1.1   # upsEnvTemperature
      - 1.3.6.1.4.1.935.1.1.1.9.1.2   # upsEnvHumidity
      - 1.3.6.1.4.1.935.1.1.1.9.2.1   # upsEnvOverTemperature
      - 1.3.6.1.4.1.935.1.1.1.9.2.2   # upsEnvUnderTemperature
      - 1.3.6.1.4.1.935.1.1.1.9.2.3   # upsEnvOverHumidity
      - 1.3.6.1.4.1.935.1.1.1.9.2.4   # upsEnvUnderHumidity
  # tplink ddm information for sfps
  #
  # Downloads can be found here:
  # https://www.tp-link.com/en/support/download/tl-sg3428x/
  #
  # tested against TL SG3428X
  tplink-ddm:
    walk:
      - ddmStatusBiasCurrent
      - ddmStatusLossSignal
      - ddmStatusRxPow
      - ddmStatusTemperature
      - ddmStatusTxFault
      - ddmStatusTxPow
      - ddmStatusVoltage
    lookups:
      - source_indexes: [ifIndex]
        lookup: ifAlias
      - source_indexes: [ifIndex]
        lookup: "IF-MIB::ifName"
    overrides:
      ddmStatusBiasCurrent:
        type: DisplayString
        regex_extracts:
          '':
            - regex: '^(\d+\.\d+).*'
              value: '$1'
      ddmStatusLossSignal:
        type: DisplayString
        regex_extracts:
          '':
            - regex: 'False'
              value: '0'
            - regex: 'True'
              value: '1'
      ddmStatusRxPow:
        type: DisplayString
        regex_extracts:
          '':
            - regex: '^(\d+\.\d+).*'
              value: '$1'
      ddmStatusTemperature:
        type: DisplayString
        regex_extracts:
          '':
            - regex: '^(\d+\.\d+).*'
              value: '$1'
      ddmStatusTxFault:
        type: DisplayString
        regex_extracts:
          '':
            - regex: 'False'
              value: '0'
            - regex: 'True'
              value: '1'
      ddmStatusTxPow:
        type: DisplayString
        regex_extracts:
          '':
            - regex: '^(\d+\.\d+).*'
              value: '$1'
      ddmStatusVoltage:
        type: DisplayString
        regex_extracts:
          '':
            - regex: '^(\d+\.\d+).*'
              value: '$1'
  cisco_imc:
    walk:
    - 1.3.6.1.4.1.9.9.719.1.45.1.1.6  #cucsStorageControllerOperState
    - 1.3.6.1.4.1.9.9.719.1.1.1.1.11  #cucsFaultDescription
    - 1.3.6.1.4.1.9.9.719.1.1.1.1.20  #cucsFaultSeverity

  # Juniper
  #
  # https://apps.juniper.net/mib-explorer/
  # https://www.juniper.net/documentation/software/junos/junos244/juniper-mibs-24.4R1.10.zip
  juniper:
    walk:
      - JUNIPER-MIB::jnxOperatingTable
      - JUNIPER-MIB::jnxFruState
      - JUNIPER-ALARM-MIB::jnxRedAlarms
      - JUNIPER-ALARM-MIB::jnxYellowAlarms
      - JUNIPER-SUBSCRIBER-MIB::jnxSubscriberPortTerminatedCounter
    lookups:
      - source_indexes: [jnxOperatingContentsIndex,jnxOperatingL1Index,jnxOperatingL2Index,jnxOperatingL3Index]
        lookup: jnxOperatingDescr
        drop_source_indexes: false
      - source_indexes: [jnxFruContentsIndex,jnxFruL1Index,jnxFruL2Index,jnxFruL3Index]
        lookup: jnxFruName
        drop_source_indexes: true
    overrides:
      jnxOperatingContentsIndex:
        ignore: true
      jnxOperatingL1Index:
        ignore: true
      jnxOperatingL2Index:
        ignore: true
      jnxOperatingL3Index:
        ignore: true
      jnxOperatingDescr:
        ignore: true
      jnxYellowAlarmState:
        type: EnumAsStateSet
      jnxRedAlarmState:
        type: EnumAsStateSet
      jnxFruState:
        type: EnumAsStateSet
  juniper_optics:
    walk:
      - JUNIPER-DOM-MIB::jnxDomCurrentWarnings
      - JUNIPER-DOM-MIB::jnxDomCurrentAlarms
      - JUNIPER-DOM-MIB::jnxDomCurrentRxLaserPower
      - JUNIPER-DOM-MIB::jnxDomCurrentTxLaserOutputPower
      - JUNIPER-DOM-MIB::jnxDomCurrentTxLaserBiasCurrent
    lookups:
      - source_indexes: [ifIndex]
        lookup: ifName
        drop_source_indexes: true
      - source_indexes: [ifIndex]
        lookup: ifAlias
    overrides:
      jnxDomCurrentRxLaserPower:
        scale: .01
      jnxDomCurrentTxLaserOutputPower:
        scale: .01
      jnxDomCurrentTxLaserBiasCurrent:
        scale: .001

# Yamaha RT Series
#
# http://www.rtpro.yamaha.co.jp/RT/docs/mib/yamaha-private-mib.zip
  yamaha_rt:
    walk:
      - yrhMemorySize
      - yrhMemoryUtil
      - yrhCpuUtil5sec
      - yrhCpuUtil1min
      - yrhCpuUtil5min
      - yrhMultiCpuUtil5sec
      - yrhMultiCpuUtil1min
      - yrhMultiCpuUtil5min
      - yrfRevision
      - yrfUpTime
    overrides:
      yrhMemoryUtil:
        scale: 0.01
      yrhCpuUtil5sec:
        scale: 0.01
      yrhCpuUtil1min:
        scale: 0.01
      yrhCpuUtil5min:
        scale: 0.01
      yrhMultiCpuUtil5sec:
        scale: 0.01
      yrhMultiCpuUtil1min:
        scale: 0.01
      yrhMultiCpuUtil5min:
        scale: 0.01
      yrfUpTime:
        help: The time (in seconds) since the network management portion of the system was last re-initialized - 1.3.6.1.4.1.1182.2.2.4
        scale: 0.01

# MSA fieldserver gateways
#
# Gateway configuration guides:
# * General info: https://cdn.chipkin.com/assets/uploads/2022/Mar/FieldServer_Configuration_Guide_03-19-58-11.pdf
# * SNMP: see "Protocol Driver Manual - SNMP STD" at https://us.msasafety.com/smc/protocols
  fieldserver:
    walk:
      - "FIELDSERVER-STD-MIB-v1-00aF::analogInputsTable"
      - "FIELDSERVER-STD-MIB-v1-00aF::analogOutputsTable"
      - "FIELDSERVER-STD-MIB-v1-00aF::analogValuesTable"
      - "FIELDSERVER-STD-MIB-v1-00aF::binaryInputsTable"
      - "FIELDSERVER-STD-MIB-v1-00aF::binaryOutputsTable"
      - "FIELDSERVER-STD-MIB-v1-00aF::binaryValuesTable"
    overrides:
      aiDescription:
        type: DisplayString
        ignore: true
      aoDescription:
        type: DisplayString
        ignore: true
      avDescription:
        type: DisplayString
        ignore: true
      biDescription:
        type: DisplayString
        ignore: true
      boDescription:
        type: DisplayString
        ignore: true
      bvDescription:
        type: DisplayString
        ignore: true
    lookups:
      - source_indexes:
        - aiValue
        lookup: aiDescription
      - source_indexes:
        - aoValue
        lookup: aoDescription
      - source_indexes:
        - avValue
        lookup: avDescription
      - source_indexes:
        - biValue
        lookup: biDescription
      - source_indexes:
        - boValue
        lookup: boDescription
      - source_indexes:
        - bvValue
        lookup: bvDescription

# Generic UPS Mibs from Observioum covering
# 1.3.6.1.2.1.33.1

  ups_mib:
    walk:
      - "UPS-MIB::upsIdent"
      - "UPS-MIB::upsBattery"
      - "UPS-MIB::upsInput"
      - "UPS-MIB::upsOutput"
      - "UPS-MIB::upsBypass"
      - "UPS-MIB::upsAlarm"
      - "UPS-MIB::upsTest"
      - "UPS-MIB::upsControl"
      - "UPS-MIB::upsConfig"
    overrides:
      upsInputFrequency:
        scale: 0.1
      upsOutputFrequency:
        scale: 0.1
      upsBypassFrequency:
        scale: 0.1
      upsBatteryVoltage:
        scale: 0.1
