Skip to main content

Management Services - Complete Administrative Interface Layer

File: docs/package-management-readme.md Purpose: Overview of all management and administration services in Urbalurba infrastructure Target Audience: Database administrators, system administrators, DevOps engineers Last Updated: September 23, 2024

📋 Overview

Urbalurba infrastructure provides a comprehensive suite of management and administration interfaces for databases, message brokers, and other services. These web-based interfaces offer intuitive administrative capabilities, monitoring, and configuration management through modern browser-based consoles.

Available Management Services:

  • pgAdmin: PostgreSQL database administration with auto-configuration
  • RedisInsight: Redis database management with manual connection setup
  • RabbitMQ Management: Message broker administration with integrated UI

🖥️ Management Services

pgAdmin - PostgreSQL Administration Interface 🐘

Status: Optional (not-in-use) | Port: 80 | Type: Database Management

Auto-Configuration: Pre-configured PostgreSQL Connection • Server Definitions • Authentication Integration

pgAdmin provides a comprehensive web-based interface for PostgreSQL database administration with automatic server configuration and seamless integration with the cluster PostgreSQL instance.

Key Features:

  • Auto-Connected: Pre-configured connection to cluster PostgreSQL
  • Web-Based: Complete database administration via browser
  • SQL Editor: Advanced query editor with syntax highlighting
  • Visual Tools: Database designer and visual query builder
  • User Management: Role and permission administration
  • Backup/Restore: Database backup and restore operations

📚 Complete Documentation →


RedisInsight - Redis Administration Interface 🔴

Status: Optional (not-in-use) | Port: 5540 | Type: Database Management

Manual Configuration: First-time Setup • Manual Connection Configuration • Flexible Multi-Instance Support

RedisInsight offers a modern web-based interface for Redis database administration with first-time user setup and flexible connection management for multiple Redis instances.

Key Features:

  • First-Time Setup: Create your own user account on initial access
  • Manual Connections: Configure Redis connections through web interface
  • Memory Analysis: Advanced memory usage analysis and optimization
  • CLI Integration: Built-in Redis CLI with command execution
  • Performance Monitoring: Real-time metrics and slow query analysis
  • Data Visualization: Key browser and data structure visualization

📚 Complete Documentation →


RabbitMQ Management - Message Broker Administration 🐰

Status: Active (with RabbitMQ) | Port: 15672 | Type: Message Broker Management

Integrated Interface: Built-in Management Plugin • Real-time Monitoring • Queue Administration

RabbitMQ Management provides a comprehensive administrative console that's automatically deployed with RabbitMQ installation, offering complete message broker management capabilities.

Key Features:

  • Automatic Deployment: Included with RabbitMQ installation
  • Queue Management: Create, monitor, and manage message queues
  • Exchange Administration: Configure routing and message distribution
  • User & Permission Management: Control access and virtual host permissions
  • Real-Time Monitoring: Live message rates and performance metrics
  • Connection Tracking: Monitor client connections and channels

📚 Complete Documentation →

🏗️ Deployment Architecture

Service Activation

Management Interface Status:
├── pgAdmin (OPTIONAL) - Located in not-in-use/ folder
├── RedisInsight (OPTIONAL) - Located in not-in-use/ folder
└── RabbitMQ Management (AUTOMATIC) - Deployed with RabbitMQ

Access Methods

All management interfaces use Traefik IngressRoute for DNS-based routing:

  • pgAdmin: http://pgadmin.localhost
  • RedisInsight: http://redisinsight.localhost
  • RabbitMQ Management: http://rabbitmq.localhost

Authentication Models

Authentication Approaches:
├── pgAdmin: urbalurba-secrets (PGADMIN_DEFAULT_EMAIL/PASSWORD)
├── RedisInsight: First-time setup (user-created credentials)
└── RabbitMQ: urbalurba-secrets (RABBITMQ_USERNAME/PASSWORD)

🚀 Quick Start

Activate Database Management (pgAdmin)

# Move from not-in-use to activate
cd provision-host/kubernetes/06-management/
mv not-in-use/03-setup-pgadmin.sh ./

# Deploy pgAdmin
./03-setup-pgadmin.sh rancher-desktop

# Access via browser
open http://pgadmin.localhost

Activate Redis Management (RedisInsight)

# Move from not-in-use to activate
cd provision-host/kubernetes/06-management/
mv not-in-use/05-setup-redisinsight.sh ./

# Deploy RedisInsight
./05-setup-redisinsight.sh rancher-desktop

# Access via browser (first-time setup required)
open http://redisinsight.localhost

Access Message Broker Management (RabbitMQ)

# RabbitMQ Management is automatically available when RabbitMQ is deployed
# No separate installation required

# Access via browser
open http://rabbitmq.localhost

🔍 Management Interface Selection Guide

When to Use pgAdmin

  • PostgreSQL Administration: Primary choice for PostgreSQL management
  • Auto-Configuration: Prefer automatic server configuration
  • Team Environments: Multiple users sharing database management
  • Advanced SQL Operations: Complex query development and optimization
  • Database Design: Visual database modeling and design tasks

When to Use RedisInsight 🔴

  • Redis Administration: Essential for Redis database management
  • Memory Optimization: Analyzing Redis memory usage patterns
  • Performance Tuning: Monitoring Redis performance and slow queries
  • Multi-Instance: Managing multiple Redis instances or clusters
  • Development: Redis-specific development and debugging tasks

When to Use RabbitMQ Management 🐰

  • Message Broker Operations: Queue and exchange management
  • Performance Monitoring: Real-time message broker statistics
  • User Administration: Managing RabbitMQ users and permissions
  • Troubleshooting: Diagnosing message flow and connection issues
  • Configuration Management: Setting up routing and policies

🛠️ Management Operations

Common Access Patterns

# Check management service status
kubectl get pods -l component=management
kubectl get pods -l app.kubernetes.io/name=pgadmin4
kubectl get pods -l app.kubernetes.io/name=redisinsight
kubectl get pods -l app.kubernetes.io/name=rabbitmq

# Verify web interface accessibility
curl -H "Host: pgadmin.localhost" http://localhost/
curl -H "Host: redisinsight.localhost" http://localhost/
curl -H "Host: rabbitmq.localhost" http://localhost/

Authentication Management

# Get pgAdmin credentials
kubectl get secret urbalurba-secrets -o jsonpath='{.data.PGADMIN_DEFAULT_EMAIL}' | base64 -d
kubectl get secret urbalurba-secrets -o jsonpath='{.data.PGADMIN_DEFAULT_PASSWORD}' | base64 -d

# Get RabbitMQ credentials
kubectl get secret urbalurba-secrets -o jsonpath='{.data.RABBITMQ_USERNAME}' | base64 -d
kubectl get secret urbalurba-secrets -o jsonpath='{.data.RABBITMQ_PASSWORD}' | base64 -d

# RedisInsight: No pre-configured credentials (first-time setup)

Port-Forward Alternative Access

# pgAdmin port-forward
kubectl port-forward svc/pgadmin-pgadmin4 8080:80
# Access: http://localhost:8080

# RedisInsight port-forward
kubectl port-forward svc/redisinsight 8081:5540
# Access: http://localhost:8081

# RabbitMQ Management port-forward
kubectl port-forward svc/rabbitmq 8082:15672
# Access: http://localhost:8082

🔧 Troubleshooting

Common Issues

Management Interface Won't Load:

# Check pod status
kubectl describe pod -l app.kubernetes.io/name=pgadmin4
kubectl describe pod -l app.kubernetes.io/name=redisinsight
kubectl describe pod -l app.kubernetes.io/name=rabbitmq

# Verify service endpoints
kubectl get endpoints pgadmin-pgadmin4 redisinsight rabbitmq

# Check IngressRoute configuration
kubectl get ingressroute pgadmin redisinsight rabbitmq-management

Authentication Issues:

# Verify secrets exist
kubectl get secret urbalurba-secrets

# Check secret values
kubectl describe secret urbalurba-secrets

# Test service connectivity
kubectl run test-pod --image=curlimages/curl --rm -it -- \
curl http://pgadmin-pgadmin4.default.svc.cluster.local:80/misc/ping

DNS Resolution Problems:

# Test internal DNS
kubectl run test-pod --image=busybox --rm -it -- \
nslookup pgadmin-pgadmin4.default.svc.cluster.local

# Verify Traefik routing
kubectl logs -n kube-system -l app.kubernetes.io/name=traefik

# Test with curl
curl -v -H "Host: pgadmin.localhost" http://127.0.0.1/

Service-Specific Troubleshooting

pgAdmin Issues:

  • PostgreSQL connection problems → Check PostgreSQL service status
  • Login failures → Verify PGADMIN_DEFAULT_EMAIL/PASSWORD in secrets
  • Performance issues → Check pgAdmin pod resource limits

RedisInsight Issues:

  • First-time setup problems → Check persistent storage permissions
  • Redis connection failures → Verify Redis service and credentials
  • Memory issues → Monitor RedisInsight pod resource usage

RabbitMQ Management Issues:

  • Management UI unavailable → Check rabbitmq_management plugin enabled
  • Authentication failures → Verify RABBITMQ_USERNAME/PASSWORD in secrets
  • Missing features → Ensure management plugin is properly loaded

📋 Maintenance

Regular Tasks

  1. Health Monitoring: Check pod and service status regularly
  2. Storage Monitoring: Monitor persistent volume usage for configurations
  3. Access Review: Review user access and authentication credentials
  4. Performance Monitoring: Track resource usage and response times
  5. Security Updates: Update container images and configurations

Backup Procedures

# pgAdmin configuration backup
kubectl exec -it deployment/pgadmin-pgadmin4 -- \
tar -czf /tmp/pgadmin-backup.tar.gz /var/lib/pgadmin
kubectl cp deployment/pgadmin-pgadmin4:/tmp/pgadmin-backup.tar.gz ./pgadmin-backup.tar.gz

# RedisInsight configuration backup
kubectl exec -it deployment/redisinsight -- \
tar -czf /tmp/redisinsight-backup.tar.gz /data
kubectl cp deployment/redisinsight:/tmp/redisinsight-backup.tar.gz ./redisinsight-backup.tar.gz

# RabbitMQ configuration backup
kubectl exec -it rabbitmq-0 -- \
rabbitmqctl export_definitions /tmp/definitions.json
kubectl cp rabbitmq-0:/tmp/definitions.json ./rabbitmq-definitions.json

Service Removal

# Remove management services
cd provision-host/kubernetes/06-management/not-in-use/

# Remove pgAdmin
./03-remove-pgadmin.sh rancher-desktop

# Remove RedisInsight
./05-remove-redisinsight.sh rancher-desktop

# RabbitMQ Management is removed automatically when RabbitMQ is removed
cd provision-host/kubernetes/03-queues/not-in-use/
./08-remove-rabbitmq.sh rancher-desktop

💡 Key Insight: The management layer provides intuitive web-based interfaces for all major infrastructure components, with varying authentication models to suit different security and usability requirements. pgAdmin offers auto-configuration for immediate productivity, RedisInsight provides flexible multi-instance management, and RabbitMQ Management integrates seamlessly with message broker deployment.