Critical process(es) down (per VS)-cisco-nxos

Critical process(es) down (per VS)-cisco-nxos

Vendor: cisco

OS: nxos

Description:
Many devices have critical processes, usually daemons, that must be up for certain functions to work. indeni will alert if any of these goes down.

Remediation Steps:
Review the cause for the processes being down.
|
|1. Use the “show processes cpu” NX-OS command in order to show the CPU usage at the process level.
|2. Use the "show process cpu detail " NX-OS command to find out the CPU usage for all threads that belong to a specific process ID (PID).
|3. Use the "show system internal sysmgr service pid " NX-OS command in order to display additional details, such as restart time, crash status, and current state, on the process/service by PID.
|4. Run the “show system internal processes cpu” NX-OS command which is equivalent to the top command in Linux and provides an ongoing look at processor activity in real time.

How does this work?
This script logs into the Cisco Nexus switch using SSH and retrieves the output of the “show processes cpu” command. The output includes a table with all the processes and their respective CPU utilization.

Why is this important?
Identify running state of critical system processes. If a critical process is reported as not running an alarm will be raised.

Without Indeni how would you find this?
It is possible to poll this data through SNMP but additional external logic would be required to identify critical processes.

nexus-show-processes-cpu

name: nexus-show-processes-cpu
description: Nexus show processes cpu
type: monitoring
monitoring_interval: 5 minutes
requires:
    vendor: cisco
    os.name: nxos
comments:
    process-cpu:
        why: |
            Capture the per-process CPU utilization. This information can be used to troubleshoot the root cause of overall system high cpu conditions.
        how: |
            This script logs into the Cisco Nexus switch using SSH and retrieves the output of the "show processes cpu" command. The output includes a table with all the processes and their respective CPU utilization.
        without-indeni: |
            It is possible to poll this data through SNMP but additional external logic would be required to analyze the information over time.
        can-with-snmp: false
        can-with-syslog: false
    process-state:
        why: |
            Identify running state of critical system processes. If a critical process is reported as not running an alarm will be raised.
        how: |
            This script logs into the Cisco Nexus switch using SSH and retrieves the output of the "show processes cpu" command. The output includes a table with all the processes and their respective CPU utilization.
        without-indeni: |
            It is possible to poll this data through SNMP but additional external logic would be required to identify critical processes.
        can-with-snmp: false
        can-with-syslog: false
steps:
-   run:
        type: SSH
        command: show processes cpu
    parse:
        type: AWK
        file: show_processes_cpu.parser.1.awk

cross_vendor_critical_process_down_vsx

// Deprecation warning : Scala template-based rules are deprecated. Please use YAML format rules instead.

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

import com.indeni.server.rules.RuleContext
import com.indeni.apidata.time.TimeSpan
import com.indeni.server.rules.library.templates.StateDownTemplateRule
import com.indeni.server.rules.RemediationStepCondition

/**
  *
  */
case class cross_vendor_critical_process_down_vsx() extends StateDownTemplateRule(
  ruleName = "cross_vendor_critical_process_down_vsx",
  ruleFriendlyName = "All Devices: Critical process(es) down (per VS)",
  ruleDescription = "Many devices have critical processes, usually daemons, that must be up for certain functions to work. indeni will alert if any of these goes down.",
  metricName = "process-state",
  applicableMetricTag = "process-name",
  descriptionMetricTag = "vs.name",
  alertItemsHeader = "Processes Affected",
  alertDescription = "One or more processes which are critical to the operation of this device, are down.",
  baseRemediationText = "Review the cause for the processes being down.")(
  RemediationStepCondition.VENDOR_CP -> "Check if \"cpstop\" was run.If MDS check if \"mdsstop\" was run",
  RemediationStepCondition.VENDOR_CISCO ->
    """|
      |1. Use the "show processes cpu" NX-OS command in order to show the CPU usage at the process level.
      |2. Use the "show process cpu detail <pid>" NX-OS command to find out the CPU usage for all threads that belong to a specific process ID (PID).
      |3. Use the "show system internal sysmgr service pid <pid>" NX-OS command in order to display additional details, such as restart time, crash status, and current state, on the process/service by PID.
      |4. Run the "show system internal processes cpu" NX-OS command which is equivalent to the top command in Linux and provides an ongoing look at processor activity in real time.""".stripMargin
)