How to monitor Cisco Catalyst Stack.

1 - The most easiest and stupid way - routed interface on each member

If you have simple NMS system which uses ICMP to get a node status - you have to add each Stack Member as an individual node, each node must have its own IP address. To get it done, you must configure routed interface on each member. Some notes:
• It’s impossible in case of L2 switches like Catalyst 2960-S.
• It’s impossible to bring not connected interface UP (it is possible on Cisco Router), thus you need to connect it to somewhere OR Create a Loopback Plug for an RJ-45 Ethernet Interface - cross pin 1 (TX+) and pin 3 (RX+) together, and cross pin 2 (TX-) and pin 6 (RX-) together. Moreover, you must disable “keepalive” feature on those interfaces to avoid the following behavior:

*Mar  1 01:05:41.591: %ETHCNTR-3-LOOP_BACK_DETECTED: Loop-back detected on GigabitEthernet1/0/1.
*Mar  1 01:05:41.591: %PM-4-ERR_DISABLE: loopback error detected on Gi1/0/1, putting Gi1/0/1 in err-disable state

2 - Using SNMP Polling

2.1 Monitor StackSub Interfaces

You can monitor the status of StackSub Interfaces that shows you the status of the nodes, but indirectly (anyways, it’s better than nothing).

2.2 Monitor member status - the best way

We can use CISCO-STACKWISE-MIB::cswSwitchState:

Values:
1 : waiting
2 : progressing
3 : added
4 : ready
5 : sdmMismatch
6 : verMismatch
7 : featureMismatch
8 : newMasterInit
9 : provisioned
10 : invalid
11 : removed

snmpwalk -c 'COMMUNITY' -v 2c -On 192.168.1.1 1.3.6.1.4.1.9.9.500.1.2.1.1.6
.1.3.6.1.4.1.9.9.500.1.2.1.1.6.1001 = INTEGER: 4
.1.3.6.1.4.1.9.9.500.1.2.1.1.6.2001 = INTEGER: 11

• Start > “Universtal Device Poller” > “New Universal Device Poller”
• OID: 1.3.6.1.4.1.9.9.500.1.2.1.1.6
• Click on “Browse MIB Tree”. It might takes some time, up to 10 seconds…
• Choose any Cisco Catalyst Stack and press “Test”. Normally, you will get a table. If yo get it - hit “Select”.
• Name: cswSwitchState (to keep it short)
• Hit “Show Advanced Options” > Format: Enumeration > Map Values > Create a table (as listed below) to map raw digits to correspond state.
• Keep Historical Data: No.
• Group: Change to “Cisco”, then press “Next”.
• Mark any Cisco Catalyst Stack and hit “Test” to see the result. You will get like: 4, 4, 4, 4. Click “Next”.
• Choose “Use labels from a table column” > pick any Cisco Catalyst Stack and hit “Test”.
• Choose the 1st one column - “cswSwitchNumCurrent” > “Next”.
• Select “Table” for “Node Details - Summary” > “Finish”.

3 - Using SNMP Trap messages

Additional configuration on NMS and Switch side required…

4 - Using SYSLOG messages

Not all NMS systems are able to utilize this method…

Cisco Catalyst 2960-S FlexStack.

Another one week passed and I’d like to make some bookmarks for myself about 2960-S and FlexStack technology.

1. Read the document - Cisco Catalyst 2960-S FlexStack - Description, Usage, and Best Practices White Paper and you will understand everything about FlexStack. If you have a time - read one more - Catalyst 2960-X Switch Stack Manager Configuration Guide, Cisco IOS Release 15.0(2)EX > Managing Switch Stacks
2. Install C2960-STACK modules, connect switches using Back Stack Cables (CAB-STK-E-0.5M by default). If you have two nodes, technically, you can use only one cable (with no redundancy). I used the following cabling scheme for 2 nodes, but think it’s not important at all: 1-1, 2-2. Power up the switch that you want to be a master, make sure that it’s booted, then power up others in sequence. If you need to reorder switches - use the following command:

Switch#conf t
Switch(config)#switch 2 renumber 1

3. Configure the maximum priority for the Master just to be sure that it will be elected as master during next stack reboot.

conf t
 hostname TestStack
 switch 1 priority 15
 exit
wri mem

4. Then you can check the status:

TestStack#show switch
Switch/Stack Mac Address : b000.b4e3.cf00
                                           H/W   Current
Switch#  Role   Mac Address     Priority Version  State
----------------------------------------------------------
*1       Master b000.b4e3.cf00     15     1       Ready
 2       Member bc67.1c7d.8e00     1      1       Ready               

TestStack#
TestStack#show switch neighbors
  Switch #    Port 1       Port 2
  --------    ------       ------
      1         2             2
      2         1             1  

TestStack#
TestStack#show switch stack-ports
  Switch #    Port 1       Port 2
  --------    ------       ------
    1           Ok           Ok
    2           Ok           Ok   

TestStack#
TestStack#show switch stack-ring speed 

Stack Ring Speed        : 10G
Stack Ring Configuration: Full
Stack Ring Protocol     : FlexStack
TestStack#

BTW, to see the difference between FlexStack (2960-S) and StackWise (3750(G)(X)(E))):

Switch#show switch stack-ring speed

Stack Ring Speed        : 32G
Stack Ring Configuration: Full
Stack Ring Protocol     : StackWise
Switch#

And the last piece for StackWise-480 (3850)

Switch#show switch stack-ring speed

Stack Ring Speed        : 480G
Stack Ring Configuration: Full
Stack Ring Protocol     : StackWise

Switch#

5. The next step is to upgrade IOS to suggested one. The best explanation that I’ve found is this. So, I don’t like archive download-sw command because it requires .tar with “WEB BASED DEV MGR” which I just don’t like and don’t use at all. Well, I’ve upgraded manually:

copy tftp://1.1.1.1/c2960s-universalk9-mz.150-2.SE6.bin flash:/
copy c2960s-universalk9-mz.150-2.SE6.bin flash2:/
conf t
 boot system switch all flash://c2960s-universalk9-mz.150-2.SE6.bin
 do show boot
 end
wri mem
reload

All in all, FlexStack looks like StackWise (3750) and StackWise Plus (3750-E, 3750-X), but it’s easier. And much more easier then StackWise-480 (3850).

The good thing is that use can use “stack things” like “remote command“:

TestStack#show switch
Switch/Stack Mac Address : b000.b4e3.aa00
                                           H/W   Current
Switch#  Role   Mac Address     Priority Version  State
----------------------------------------------------------
*1       Master b000.b4e3.aa00     15     1       Ready
 2       Member bc64.1c7d.bb00     1      1       Ready

TestStack#remote command ?
  <1-4>  Switch number
  all    All switches

TestStack#remote command 2 show proc cpu history
TestStack#remote command 2 show inventory

Or "session":

TestStack#session 2
TestStack-2#show logging

Admin area