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
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
Grafana (Optional but Recommended)
- 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:
- Navigate to Base Stations page
- Verify your base station appears in the list
- Status should show as "Associated" (green)
- Registration state should be "Registered"
- 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:
- Navigate to InfluxDB Status page
- Connection status should be green
- Measurement counts should be increasing
- 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:
- Navigate to Application Logs page
- Filter for "Error" level
- Verify no critical errors
Or check console output if running via mix phx.server.
4.5 Check Device Details
In the Web UI:
- Click on your base station from the Base Stations page
- 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
-
Add More Base Stations
- Add additional devices to
config/runtime.exs - Restart application to pick up changes
- See Common Operations Guide
- Add additional devices to
-
Set Up Grafana Dashboards
- Install Grafana if not already deployed
- Configure InfluxDB data source
- Import or create dashboards
- See Grafana Integration Guide
-
Configure Data Retention
- Set appropriate retention periods
- Configure per-device retention if needed
- See Data Retention Policy Guide
-
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:
- Read Web UI Guide for daily operations
- Review Common Operations Guide for routine tasks
- Study Troubleshooting Guide for issue resolution
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
- Troubleshooting Guide - Common issues and solutions
- Web UI Guide - Control panel reference
- Application Logs page - Real-time system logs
Documentation
- Operations Guide - Complete operational reference
- Runtime Configuration Guide - Configuration details
- AirScale Configuration - Base station setup
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
Related Documentation
- Operations Guide - Complete operational overview
- Web UI Guide - Control panel user guide
- Common Operations Guide - Day-to-day tasks
- Runtime Configuration Guide - Configuration reference
- AirScale Configuration - Base station setup
- Grafana Integration Guide - Analytics and dashboards
- Alarm Management Guide - Alarm handling
- Data Retention Policy Guide - Data management
- Troubleshooting Guide - Problem resolution