Installation
How to deploy a single-node Kafka cluster with schema registry in Docker containers running on STOR2RRD.
![]() |
This procedure is intended for testing SANnav monitoring in STOR2RRD.
The solution described in this guide comes without guarantee or support.
[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
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
[root@xorux]# cd /home/stor2rrd/stor2rrd [root@xorux]# ./bin/kafka_configure.sh
This procedure will create /root/kafkanb-run direcotry, pull required images from Docker Hub and start Kafka NB containers.
[root@xorux]# /root/kafkanb-cfg/kafka_deploy.sh
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.
[root@xorux]# /root/kafkanb-cfg/kafka_register.sh
Creates and starts docker containers with Kafka northbound server during initial installation.
Creates /root/kafkanb-run directory.
You can use this script to re-deploy Kafka NB server if necessary.
Registers Kafka NB server to SANnav.
Requires SANnav IP addres and administrator credentials.
It may also require confirmation of the local host's IP address.
Lists northbound servers registered to SANnav.
Stops Kafka NB containers without removing them.
Starts previously stopped Kafka NB containers.
Removes previously registered Kafka NB server from SANnav.
Force stops and deletes Kafka NB containers.
Removes /root/kafkanb-run directory.
Check log the file: /home/stor2rrd/stor2rrd/logs/kafkanb.log
Run as root
All three containers must be Up
[root@xorux]# docker container ls -a -f name=kafkanb CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 028de739d3c7 confluentinc/cp-schema-registry:5.2.2 "/etc/confluent/dock…" 2 days ago Up 2 days 0.0.0.0:8081->8081/tcp kafkanb_schema_registry d62c791b360d confluentinc/cp-kafka:5.2.2 "/etc/confluent/dock…" 2 days ago Up 2 days 0.0.0.0:9092-9093->9092-9093/tcp kafkanb_broker 721e43c00d91 confluentinc/cp-zookeeper:5.2.2 "/etc/confluent/dock…" 2 days ago Up 2 days 2888/tcp, 0.0.0.0:2181->2181/tcp, 3888/tcp kafkanb_zookeeper
kafkaClusterUrl and schemaRegistryUrl must match STOR2RRD host's IP address
FC Port and Switch streams must be enabled: streamState: 1
[root@xorux]# /root/kafkanb-cfg/kafka_listnb.sh # SANnav IP address, user and password Make sure user SANnav user has a priviledge to register and manage Northbound servers SANnav IP address [192.168.0.10]: SANnav username [Administrator]: SANnav password: [ { "name": "kafka4stor", "kafkaClusterUrl": "192.168.0.24:9093", "schemaRegistryUrl": "http://192.168.0.24:8081", "caPublicCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURMVENDQWhXZ0F3SUJBZ0lVYmxJa0Z5R3pnWTRUelNJZTVvU2tTZTA3b1Rzd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0pqRU9NQXdHQTFVRUNnd0ZXRzl5ZFhneEZEQVNCZ05WQkFNTUMxaHZjblY0SUV0aFptdGhNQjRYRFRJeQpNRFl5TWpFME1EWTFORm9YRFRNeU1EWXhPVEUwTURZMU5Gb3dKakVPTUF3R0ExVUVDZ3dGV0c5eWRYZ3hGREFTCkJnTlZCQU1NQzFodmNuVjRJRXRoWm10aE1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0MKQVFFQW96cHl1WmlCcjdFK3NMeDgxWkcvdXZ1V2M2eHlsbXY4WE1ZVlgvSnlkU2Y4TE82czlkSkd0WTBBVXZOYwpuK3V6VFZITnNZbDhwczN1eW1sVDF6MXJzY3JYQXlhRDBMTmtKZFRTVG02SEpCT2czSzE5Yk1hMXBFUVd1b0k1CkFBTHFtK1ZDWnRodXZGVkdLZWI0MncxR2NlNlhsVTdWWEpkcGx2eFdRUDFmdjN6QVF6ckRQS0RTcStQMUhablYKZ2l4T2V1S1FkMFFIS3NQb1lSeStoS1Iyc2NjUis3a0xYTXJtRFIvMnA3OWlZR2U4SzN1US9INmc3MTNGakdlSgpNWi9ocHZoWHFxL2J2cjhlQm92VUdRSjRJOXRGSHQyWG9SWVpHaWVjU25GdE1rOFNCZUV6am52SzRFTTlQcm1zClBHM0RRMTdtOUZQclpKMkYvYk1tcERpQ2h3SURBUUFCbzFNd1VUQWRCZ05WSFE0RUZnUVU2QmhYUXdqbGdjZ28KWmhGeHlSMnpoM3pLczlBd0h3WURWUjBqQkJnd0ZvQVU2QmhYUXdqbGdjZ29aaEZ4eVIyemgzektzOUF3RHdZRApWUjBUQVFIL0JBVXdBd0VCL3pBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQW5UbkVuVk81RUljTWNlaitiMkhNCkFLVGxmd3c3bXBLc2N0QTN0SXNnOEFuZnVFSTZaaFBueTFKdGkwVC9abHY2clJnanBnaUF3TmV4bFdwK25vUVcKUjQybm92aDRNanZqTFBrU1d1OHdlR0w3SUM3aFhiTlYrYVhpWjZUNFAydGFDVk1UNyQ0R6djY4SUo4NkRGZApkMWJW42NUNRVGtEWFdiZW9PZTempXcUhVbnM0TDIrY2VJMDZDFndkdlMTRoWlMkR3OFdZemJpWHpxCm9TlYTmRMTTlFYkgwV2aXNCVllTUnc1M1RJMmZ0dOVlZBYmZxYnNFdnNE55b0daNldsaEx0ZraVgKQzRIMEhiVaZHFyNW13MzV6YUwxdFQld6TFlONWNQbkFQNEUDJ4ZUpyNmV2TmFaa3ZmVnVyRjJ5F2MworUT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=", "id": 18, "connectionState": 0, "connectionStateReason": "SANnav successfully connected to Northbound Server.", "streamDetails": [ { "streamType": 1, "streamName": "FC Port", "streamState": 1 }, { "streamType": 2, "streamName": "Eth/GigE Port", "streamState": 0 }, { "streamType": 3, "streamName": "Extension Tunnel/Circuit", "streamState": 0 }, { "streamType": 4, "streamName": "Switch", "streamState": 1 }, { "streamType": 5, "streamName": "Flow", "streamState": 0 } ] } ]