Hardware element down-juniper-junos

error
health-checks
junos
juniper
Hardware element down-juniper-junos
0

#1

Hardware element down-juniper-junos

Vendor: juniper

OS: junos

Description:
Alert if any hardware elements are not operating correctly.

Remediation Steps:
Troubleshoot the hardware element as soon as possible.

How does this work?
The script runs the “show chassis environment node X” command via ssh to the device and retrieves the status for all the on-line hardware elements. Any failure will raise an alert.

Why is this important?
The malfunction of the fans, power supplies and the overheated temperature can cause the device to fail.

Without Indeni how would you find this?
An administrator could login to the device to manually run the “show chassis environment node X” to get the same information.

junos-show-chassis-environment-cluster

#! META
name: junos-show-chassis-environment-cluster
description: Retrieve chassis cluster node environment information, including the temperature, the fans, power supplies and Routing Engine 
type: monitoring
monitoring_interval: 10 minute
requires:
    vendor: juniper
    os.name: junos
    product: firewall
    model:
        neq: vsrx
    high-availability: true

#! COMMENTS
hardware-element-status:
    why: |
        The malfunction of the fans, power supplies and the overheated temperature can cause the device to fail.  
    how: |
        The script runs the "show chassis environment node X" command via ssh to the device and retrieves the status for all the on-line hardware elements. Any failure will raise an alert.
    without-indeni: |
        An administrator could login to the device to manually run the "show chassis environment node X" to get the same information.
    can-with-snmp: true
    can-wth-syslog: true
    vendor-provided-management: |
        The stauts for the hardware elements can be retrieved via the command line.

#! REMOTE::SSH
show chassis hardware node local | display xml

#! PARSER::XML
_vars:
    root: /rpc-reply

_dynamic_vars:
    _temp:
        "node":
            _text: ${root}//re-name
    _transform:
        _dynamic:
            "node": |
                {
                    if ( temp("node") == "node0" ) {
                        print "0"
                    } else {
                        print "1"
                    }
                }

#! REMOTE::SSH
show chassis environment node ${node} | display xml

#! PARSER::XML
_vars:
    root: /rpc-reply//environment-information
_metrics:
    -
        _groups:
            ${root}/environment-item[not(contains(status,'Absent'))]:
                _tags:
                    "im.name":
                        _constant: "hardware-element-status"
                    "live-config":
                        _constant: "true"
                    "display-name":
                        _constant: "Environment Elements"
                    "im.identity-tags":
                        _constant: "name"
                _temp:
                    "name":
                        _text: "name"
                    "class":
                        _text: "class"
                    "status":
                        _text: "status"
        _transform:
            _tags:
                "name": |
                    {
                         print "Node " dynamic("node") "- " temp("class") ": " temp("name")
                    }
            _value.double: |
                {
                     if (temp("status") != "OK") {
                          print "0"
                     } else {
                          print "1"
                     }
                }

cross_vendor_hardware_element_status

package com.indeni.server.rules.library.templatebased.crossvendor

import com.indeni.server.rules.RuleContext
import com.indeni.server.rules.library.{ConditionalRemediationSteps, StateDownTemplateRule}

/**
  *
  */
case class cross_vendor_hardware_element_status(context: RuleContext) extends StateDownTemplateRule(context,
  ruleName = "cross_vendor_hardware_element_status",
  ruleFriendlyName = "All Devices: Hardware element down",
  ruleDescription = "Alert if any hardware elements are not operating correctly.",
  metricName = "hardware-element-status",
  applicableMetricTag = "name",
  alertItemsHeader = "Hardware Elements Affected",
  alertDescription = "The hardware elements listed below are not operating correctly.",
  baseRemediationText = "Troubleshoot the hardware element as soon as possible.")(
  ConditionalRemediationSteps.OS_NXOS ->
    """|While the port may be in up status, the link quality might be degraded and is not between the threshold levels. Check the following to troubleshoot this issue.
       |1.	Run the “show interface transceiver detailed” NX-OS command to display information about the transceivers connected to a specific interface. Besides, this NX-OS command output provides information about the Cisco SFP Product ID (PID). NOTE: In case that have been used 3rd party SFPs it is possible to get an Indeni alert because the current light signal is different than the recommended min/max thresholds defined by Cisco.
       |2.	Use the “show interface transceiver calibrations” NX-OS command to display calibration information for the transceiver interfaces.
       |3.	Consider to enable DOM (if supported). Digital Optical Monitoring or DOM is an industry wide standard, intended to define a SFP to access real-time operating parameters such as Tx power, Rx power etc. More details can be found below: https://www.cisco.com/c/en/us/td/docs/interfaces_modules/transceiver_modules/compatibility/matrix/DOM_matrix.html
       |4.	Cisco has published official specifications (Rx, Tx power level etc) per transceiver category and can be found at the following link:
        https://www.cisco.com/c/en/us/products/interfaces-modules/transceiver-modules/index.""".stripMargin,
  ConditionalRemediationSteps.VENDOR_FORTINET ->
    """
      |1. Login via ssh to the Fortinet firewall and run the FortiOS command "exec sensor list" to review the status of the hardware components and temperature
      |>>> thresholds. When the flag to the command output is set to 0, the component is working correctly and when flag is set to 1, the component has a problem.
      |>>> The FortiOS command "execute sensor detail" will show extra information such as the low/high thresholds. More details can be found here:
      |>>> http://kb.fortinet.com/kb/viewContent.do?externalId=FD36793&sliceId=1
      |2. Consider running the fotrinet hardware diagnostics commands. While they do not detect all hardware malfunctions, tests for the most common hardware
      |>>> problems are performed. More details can be found here:
      |- http://kb.fortinet.com/kb/viewContent.do?externalId=FD39581&sliceId=1
      |- http://kb.fortinet.com/kb/documentLink.do?externalID=FD34745
      |3. It is recommended that any failed fan or power supply unit should be replaced immediately.
      |4. The cooling system for the devices should be installed to avoid overheat.
      |5. If the problem persists, contact Fortinet Technical support at https://support.fortinet.com/ for further assistance.""".stripMargin.replaceAll("\n>>>", "")
)