Skip to main content

Getting Started with RAN Monitor

Quick Start Guide for Deploying and Configuring RAN Monitor

Step-by-step instructions for setting up RAN Monitor in your environment


Table of Contents

  1. Overview
  2. Prerequisites
  3. Initial Setup Process
  4. Verification
  5. Next Steps

Overview

This guide walks you through the initial deployment of RAN Monitor, from infrastructure preparation to first base station connection.

What You'll Accomplish

By the end of this guide, you will have:

  • ✓ Prepared the required infrastructure (MySQL, InfluxDB)
  • ✓ Configured RAN Monitor with your environment details
  • ✓ Started the RAN Monitor application
  • ✓ Connected your first Nokia AirScale base station
  • ✓ Verified metrics are flowing to InfluxDB
  • ✓ Accessed the Web UI dashboard

Estimated Time: 30-60 minutes for first-time setup


Prerequisites

Before deploying RAN Monitor, ensure you have the following:

Infrastructure Requirements

MySQL Database Server

  • Version: MySQL 5.7+ or MariaDB 10.3+
  • Access: Network connectivity from RAN Monitor server
  • Permissions: CREATE, SELECT, INSERT, UPDATE, DELETE privileges
  • Database: Empty database created for RAN Monitor
  • Recommendation: Dedicated database instance or schema

InfluxDB Time-Series Database

  • Version: InfluxDB 1.8+ or 2.0+
  • Access: Network connectivity from RAN Monitor server
  • Bucket/Database: Created and ready for metrics storage
  • API Token: With write permissions to the bucket (InfluxDB 2.x)
  • Storage: Sufficient disk space for your retention policy

RAN Monitor Server

  • OS: Linux (Ubuntu 20.04+, CentOS 8+, or similar)
  • RAM: 4GB minimum, 8GB recommended
  • CPU: 2 cores minimum, 4+ cores recommended
  • Disk: 20GB minimum for application and logs
  • Network: Connectivity to base stations, MySQL, and InfluxDB

Network Requirements

Network Connectivity

  • RAN Monitor → Nokia AirScale base stations (port 8080)
  • Nokia base stations → RAN Monitor (port 9076 for webhooks)
  • RAN Monitor → MySQL (port 3306)
  • RAN Monitor → InfluxDB (port 8086)
  • Operators → RAN Monitor Web UI (port 9443)

Firewall Rules

  • Allow inbound on port 8080 (base station communication)
  • Allow inbound on port 9076 (webhook receiver)
  • Allow inbound on port 9443 (HTTPS Web UI)
  • Allow outbound to MySQL and InfluxDB

Nokia Base Station Requirements

For Each Base Station:

  • IP Address - Network address where base station is reachable
  • Port - Management interface port (typically 8080)
  • Credentials - Username and password for WebLM authentication
  • Network Route - Verified connectivity (ping should succeed)
  • Management Interface - Enabled and accessible

Manager Authentication Keys

  • Private Key - For manager authentication (PEM format)
  • Public Certificate - Manager identity certificate (DER format)
  • Provided by Nokia or generated with OpenSSL
  • Version: Grafana 8.0+
  • Access: Network connectivity to InfluxDB
  • Purpose: Analytics dashboards and alerting

Initial Setup Process

Step 1: Prepare Infrastructure

1.1 Set up MySQL Database

Create the database for RAN Monitor:

CREATE DATABASE ran_monitor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Create a dedicated user with appropriate privileges:

CREATE USER 'ran_monitor_user'@'%' IDENTIFIED BY 'secure_password';
GRANT CREATE, SELECT, INSERT, UPDATE, DELETE ON ran_monitor.* TO 'ran_monitor_user'@'%';
FLUSH PRIVILEGES;

Verify connectivity from RAN Monitor server:

mysql -h <mysql-host> -u ran_monitor_user -p ran_monitor

1.2 Deploy InfluxDB

For InfluxDB 1.x, create the database:

influx -execute 'CREATE DATABASE "nokia-monitor"'

For InfluxDB 2.x, create a bucket:

influx bucket create -n nokia-monitor -o your-org

Create an API token with write permissions (InfluxDB 2.x):

influx auth create --org your-org --write-buckets

Save the token for use in configuration.

1.3 Verify Network Routes

Ensure network connectivity to all base stations:

# Test connectivity to each base station
ping 10.7.15.66

# Verify management port is accessible
telnet 10.7.15.66 8080

Verify MySQL and InfluxDB are accessible:

# Test MySQL connectivity
telnet <mysql-host> 3306

# Test InfluxDB connectivity
curl http://<influxdb-host>:8086/ping

Step 2: Configure RAN Monitor

All configuration is managed in the config/runtime.exs file.

2.1 Database Configuration

Edit config/runtime.exs and configure MySQL connection:

config :ran_monitor, RanMonitor.Repo,
username: "ran_monitor_user",
password: "secure_password",
hostname: "mysql-host",
database: "ran_monitor",
stacktrace: true,
show_sensitive_data_on_connection_error: true,
pool_size: 10

2.2 InfluxDB Configuration

Configure InfluxDB connection:

config :ran_monitor, RanMonitor.InfluxDbConnection,
auth: [
username: "monitor",
password: "influx_password" # Or API token for InfluxDB 2.x
],
database: "nokia-monitor",
host: "influxdb-host"

2.3 Web Endpoints Configuration

Configure the web endpoints:

# Main SOAP/API endpoint for base stations
config :ran_monitor, RanMonitor.Web.Endpoint,
http: [ip: {0, 0, 0, 0}, port: 8080],
check_origin: false,
secret_key_base: "generate_with_mix_phx_gen_secret",
server: true

# Control Panel Web UI (HTTPS)
config :control_panel, ControlPanelWeb.Endpoint,
url: [host: "0.0.0.0", port: 9443, scheme: "https"],
https: [
ip: {0, 0, 0, 0},
port: 9443,
keyfile: "priv/cert/omnitouch.pem",
certfile: "priv/cert/omnitouch.crt"
]

# Webhook endpoint for base station notifications
config :ran_monitor, RanMonitor.Web.Nokia.Airscale.Endpoint,
url: [host: "0.0.0.0"],
http: [ip: {0, 0, 0, 0}, port: 9076],
server: true

2.4 Nokia Configuration

Configure your network identifiers and base stations:

config :ran_monitor,
general: %{
mcc: "001", # Your Mobile Country Code
mnc: "001" # Your Mobile Network Code
},
nokia: %{
ne3s: %{
webhook_url: "http://<ran-monitor-ip>:9076/webhook",
private_key: Path.join(Application.app_dir(:ran_monitor, "priv"), "external/nokia/ne.key.pem"),
public_key: Path.join(Application.app_dir(:ran_monitor, "priv"), "external/nokia/ne.cert.der"),
reregister_interval: 30
},
airscales: [
%{
address: "10.7.15.66",
name: "Site-A-BS1",
port: "8080",
web_username: "admin",
web_password: "password"
}
]
}

2.5 Generate SSL Certificates (if needed)

For the HTTPS Web UI, generate SSL certificates:

# Self-signed certificate for lab/testing
openssl req -newkey rsa:2048 -nodes -keyout priv/cert/omnitouch.pem \
-x509 -days 365 -out priv/cert/omnitouch.crt

For production, use CA-signed certificates.

For detailed configuration options, see the Runtime Configuration Guide.


Step 3: Start the System

Once configured, start RAN Monitor.

3.1 Run Database Migrations

Initialize the database schema:

mix ecto.migrate

This creates all necessary tables for session state management.

3.2 Start RAN Monitor

Start the application:

mix phx.server

Or for production deployment:

MIX_ENV=prod mix release
_build/prod/rel/ran_monitor/bin/ran_monitor start

3.3 Monitor Startup Logs

Watch the logs for successful startup:

[info] Running RanMonitor.Web.Endpoint with cowboy
[info] Running ControlPanelWeb.Endpoint with cowboy
[info] Running RanMonitor.Web.Nokia.Airscale.Endpoint with cowboy
[info] Starting RAN Monitor Manager
[info] Connecting to InfluxDB...
[info] InfluxDB connection established
[info] Attempting registration with device: Site-A-BS1
[info] Successfully registered with Site-A-BS1

Look for:

  • Web endpoints started
  • Database connections established
  • InfluxDB connectivity confirmed
  • Base station registration attempts

Verification

Step 4: Verify Operation

Check that the system is running properly.

4.1 Access the Web UI Dashboard

Open your browser and navigate to:

https://<ran-monitor-ip>:9443

You should see the RAN Monitor control panel.

4.2 Verify Base Station Status

In the Web UI:

  1. Navigate to Base Stations page
  2. Verify your base station appears in the list
  3. Status should show as "Associated" (green)
  4. Registration state should be "Registered"
  5. Session information should show active session with expiry time

If status is red/failed, check:

  • Network connectivity to base station
  • Credentials are correct
  • Base station management interface is accessible
  • Application logs for error messages

4.3 Confirm Metrics are Flowing to InfluxDB

In the Web UI:

  1. Navigate to InfluxDB Status page
  2. Connection status should be green
  3. Measurement counts should be increasing
  4. Verify "Performance Metrics", "Configuration", and "Alarms" counts

Alternatively, query InfluxDB directly:

# InfluxDB 1.x
influx -database 'nokia-monitor' -execute 'SELECT COUNT(*) FROM PerformanceMetrics'

# InfluxDB 2.x
influx query 'from(bucket:"nokia-monitor")
|> range(start: -1h)
|> filter(fn: (r) => r._measurement == "PerformanceMetrics")
|> count()'

4.4 Review Startup Logs

Check application logs for any errors:

In the Web UI:

  1. Navigate to Application Logs page
  2. Filter for "Error" level
  3. Verify no critical errors

Or check console output if running via mix phx.server.

4.5 Check Device Details

In the Web UI:

  1. Click on your base station from the Base Stations page
  2. Verify:
    • Registration details are populated
    • Session has valid expiry time
    • Recent metrics show data
    • Configuration state shows parameters

Next Steps

Now that RAN Monitor is running, here are recommended next steps:

Immediate Actions

  1. Add More Base Stations

  2. Set Up Grafana Dashboards

    • Install Grafana if not already deployed
    • Configure InfluxDB data source
    • Import or create dashboards
    • See Grafana Integration Guide
  3. Configure Data Retention

  4. Configure Alarms and Alerts

    • Review active alarms in Web UI
    • Set up Grafana alert rules
    • Configure notification channels
    • See Alarm Management Guide

Operational Readiness

Documentation Review:

Team Training:

  • Walk through Web UI with operations team
  • Practice common workflows (daily health check, alarm investigation)
  • Review escalation procedures for critical alarms

Monitoring Setup:

  • Create operational dashboards in Grafana
  • Set up alert rules for critical metrics
  • Configure notification channels (Slack, email, PagerDuty)

Security Hardening:

  • Replace self-signed certificates with CA-signed certificates
  • Move credentials to environment variables
  • Restrict file permissions on config/runtime.exs
  • Configure firewall rules

Production Deployment

Before Production:

  • Test in staging environment first
  • Verify all base stations connect successfully
  • Confirm metrics are accurate
  • Test alarm notifications
  • Document any custom configuration

Production Launch:

  • Deploy during maintenance window
  • Monitor closely for first 24 hours
  • Have rollback plan ready
  • Keep support contacts available

Ongoing Operations:

  • Daily health checks via Web UI
  • Weekly review of alarm trends
  • Monthly capacity planning with Grafana
  • Regular configuration backups

Getting Help

Troubleshooting Resources

Documentation

Common First-Time Issues

Base Station Not Registering:

  • Verify network connectivity (ping)
  • Check credentials are correct
  • Confirm port 8080 is accessible
  • Review application logs for errors

InfluxDB Connection Failed:

  • Verify InfluxDB is running
  • Check host and port configuration
  • Confirm API token has write permissions
  • Test connectivity: curl http://<influxdb-host>:8086/ping

Web UI Not Accessible:

  • Verify HTTPS port 9443 is open
  • Check SSL certificates are present
  • Confirm web endpoint started in logs
  • Try accessing from local machine first