Installation

SANnav Monitoring

Table of Contents

SANnav monitoring

Prerequisites

  • SANnav 2.2.0.2+
  • 'root' access to STOR2RRD host
  • Administrator level access to SANnav
  • Possibility to install additional software packages to STOR2RRD host
  • Network connectivity:
    • SANnav ➡ STOR2RRD:8081 TCP
    • SANnav ➡ STOR2RRD:9093 TCP
    • STOR2RRD ➡ SANnav:443 TCP, you can test it via
      $ perl /home/stor2rrd/stor2rrd/bin/conntest.pl <SANnav host> 443
        Connection to <SANnav host> on port "443" is ok

SANnav Northbound Streaming

STOR2RRD collects data from SANnav using the Northbound Streaming feature.
Northbound Streaming provides support to securely stream performance and flow metrics from the switch to an external Kafka cluster (the northbound server).

SANnav REST API documantation is available on https://support.broadcom.com/
Search for: "sannav rest api"

Before you configure northbound streaming, note the following prerequisites:
  • You must have the Northbound Streaming privilege with read/write permission and the All Fabrics area of responsibility (AOR). Refer to the Brocade SANnav Management Portal User Guide for details.
  • Historic data collection must be enabled on the SANnav server (it is enabled by default).
  • The switch must be discovered with proper SNMPv3 credentials.
  • For a northbound server environment with HTTPS access for the schema registry, the northbound Kafka cluster must be configured with the same public certificate as the northbound server.
  • Only one northbound server is supported.
  • Streaming is only through a secure channel (TLS).
  • IPv6 is not supported. SANnav-to-northbound-server communication uses IPv4.

Upgrade STOR2RRD

  • Download the Free Edition stor2rrd-7.41-28.tar
  • If you are our customer, let us know via email, we will provide you the Enterprise Edition, do not use the Free one
  • upgrade docu

Install Python3 and modules

CentOS, Rockylinux, OracleVM
  • Install Python3 packages as root
    [root@xorux]# yum install python3 python3-pip python3-devel python3-requests gcc
  • Import Confluent repository as root
    [root@xorux]# rpm --import https://packages.confluent.io/rpm/7.1/archive.key
    
    [root@xorux]# cat > /etc/yum.repos.d/confluent.repo << EOF
    [Confluent]
    name=Confluent repository
    baseurl=https://packages.confluent.io/rpm/7.1
    gpgcheck=1
    gpgkey=https://packages.confluent.io/rpm/7.1/archive.key
    enabled=1
    
    [Confluent-Clients]
    name=Confluent Clients repository
    baseurl=https://packages.confluent.io/clients/rpm/centos/\$releasever/\$basearch
    gpgcheck=1
    gpgkey=https://packages.confluent.io/clients/rpm/archive.key
    enabled=1
    EOF
  • Install librdkafka as root
    [root@xorux]# yum install librdkafka-devel
  • install kafkian module as stor2rrd
    (lpar2rrd in case of Virtual Appliance)
    [lpar2rrd@xorux]$ pip3 install --user kafkian
OpenSuse
zypper install python3-pip python3-devel python3-requests
zypper install librdkafka-devel
Ubuntu / Debian
apt install python3-pip
apt install python3-requests
apt install python3-dev
apt install librdkafka-dev

Deploy Kafka northbound server on STOR2RRD host with Docker

Deployment overview

  • Login to STOR2RRD with root account
  • Install required software packages
  • Create configuration
  • Deploy Kafka NB server
  • Register Kafka NB server in SANnav

Login to STOR2RRD with root account

Kafka NB server docker deployment requires root account

Install required software packages

  • Java 1.8 or higher
  • Docker 20.10 or later
  • Docker Compose 2.6.0 or later
  • jq Command-line JSON processor
  • curl
[root@xorux]# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[root@xorux]# dnf install docker-ce docker-ce-cli containerd.io java-1.8.0-openjdk-headless.x86_64 jq.x86_64 curl.x86_64
[root@xorux]# systemctl start docker
[root@xorux]# systemctl enable docker

[root@xorux]# curl -L "https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
[root@xorux]# chmod +x /usr/local/bin/docker-compose
[root@xorux]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

Create configuration

This procedure will create /root/kafkanb-cfg direcotry and populate it with necessary configuration files and support scripts.
You may be asked to enter the path to STOR2RRD directory.
You will have to confirm or enter the local host's IP address.

  • locate STOR2RRD installation directory
    usually /home/stor2rrd/stor2rrd

  • Run kafka_configure.sh script under root user

    [root@xorux]# cd /home/stor2rrd/stor2rrd
    [root@xorux]# ./bin/kafka_configure.sh

Deploy Kafka NB server

This procedure will create /root/kafkanb-run direcotry, pull required images from Docker Hub and start Kafka NB containers.

Register Kafka NB server in SANnav

This procedure will register Kafks NB server in SANnav.
Requires SANnav IP addres and administrator credentials.
It may also require confirmation of the local host's IP address.

  • Run kafka_register.sh script

    [root@xorux]# /root/kafkanb-cfg/kafka_register.sh

SANnav konfiguration in STOR2RRD

  • Create SANnav user for STOR2RRD

    • Login to SANnav GUI
    • Navigate to User Management
      SANnav ➡ Security ➡ SANnav User Management

    • Create new user with Operator role

  • Add storage to configuration in STOR2RRD GUI
    Settings icon ➡ SAN ➡ New ➡ Vendor:device ➡ SANnav

    • REST API: SANnav IP address, port and STOR2RRD user credentials

    • KAFKA: Kafka NB server IP address and ports - this should be the IP address of your STOR2RRD host

    SAN device configuration

  • Schedule the storage agent in stor2rrd crontab (lpar2rrd on Virtual Appliance)
    Check there is no entry for SANnav yet
    $ crontab -l | grep load_sannavperf.sh
    $
    Add an entry if it doesn't exist
    $ crontab -e
    
    # SANnav
    0,5,10,15,20,25,30,35,40,45,50,55 * * * * /home/stor2rrd/stor2rrd/load_sannavperf.sh > /home/stor2rrd/stor2rrd/logs/load_sannavperf.out 2>&1
  • Ensure there is an entry to build STOR2RRD UI every hour in the ctontab
    $ crontab -e
    
    # STOR2RRD UI (just ONE entry of load.sh must be there)
    5 * * * * /home/stor2rrd/stor2rrd/load.sh > /home/stor2rrd/stor2rrd/load.out 2>&1
  • Let SANnav agent run for 15 - 20 minutes to collect data, then:
    $ cd /home/stor2rrd/stor2rrd
    $ ./load.sh
  • Go to STOR2RRD web UI: http://<your web server>/stor2rrd/
    Use Ctrl-F5 to refresh the web browser cache.

Kafka NB management scripts and troubleshooting

Kafka NB management tools