Deploying F5 Insight Services on Proxmox VE

This guide walks you through creating and deploying an F5 Insight Services virtual machine instance from a qcow2 disk image on Proxmox Virtual Environment (VE) hypervisor.

Overview

F5 Insight Services is a comprehensive monitoring and analytics platform designed specifically for F5 BIG-IP devices. It delivers powerful capabilities to help you manage and optimize your infrastructure:

Benefits and Key Features

  • Real-time Device Monitoring: Continuously monitors F5 BIG-IP devices at 60-second intervals. Please note that additional polling configuration options will be available post-GA release.
  • AI-Powered Insights: Leverages artificial intelligence to analyze metrics and deliver intelligent, recommendations
  • Advanced Data Pipeline: Built on OpenTelemetry with VictoriaMetrics for metrics collection and ClickHouse for high-performance data storage.
  • Modern User Interface (UI): Features a React-based dashboard with customizable visualizations for intuitive data exploration
  • External Grafana Integration: Seamlessly integrates with external Grafana instances for advanced dashboards and analytics

By following this guide, you will successfully deploy F5 Insight Services as a virtual machine on your Proxmox VE infrastructure using pre-built qcow2 disk images, giving you immediate access to powerful monitoring and analytics capabilities for your F5 BIG-IP environment.

Prerequisites

Before you begin, ensure you have the following requirements in place:

Proxmox VE Infrastructure Specifications

Your Proxmox infrastructure must meet these specifications:

Specification Requirement
Platform Version Proxmox VE 7.x or later
Web UI Access Accessible Proxmox web interface
Administrative Access Administrative privileges on the Proxmox node
SSH Access Shell access to the Proxmox host (required for qcow2 image upload)
Storage Sufficient capacity on target storage pool (supports local, local-lvm, NFS, Ceph, ZFS, other storage types)

F5 Insight VM Hardware Requirements

Resource Minimum Requirement Notes
CPU 8 cores Analysis engines can vary on workloads, please monitor the CPU and add additional CPU as needed.
Memory 16 GB RAM Standard minimum for F5 Insight operations.
Disk Space 600 GB Total Includes 500GB for initial installation and 100GB for OS updates. The specified 500GB allocation for the initial installation supports approximately 50 BIG-IP instances. For every additional 50 BIG-IP instances, plan to add an incremental 500GB of storage.

Network Requirements

Ensure the following network connectivity:

Category Requirement / Rule Direction
External Access Connectivity from F5 Insight to product.apis.f5.com:443 for “connected” license activation and updates. (optional if using Disconnected Mode Licensing) See Licensing and Entitlement for Disconnected Mode Licensing for environments that do not allow outbound internet access. Outbound
External Access Connectivity from F5 Insight to us.edge.df.f5.com:443 for F5 AI Data Fabric (AIDF) (optional) Outbound
External Access Connectivity from F5 Insight to OpenAI compatible/Anthropic server for LLM Insights (optional) Outbound
Internal Access Connectivity from F5 Insight to BIG-IP devices Outbound
Internal Access Connectivity from F5 Insight to OpenAI compatible server for LLM Insights (optional) Outbound
Firewall (SSH) Port 22 Inbound to F5 Insight
Firewall (HTTPS) Port 443 Inbound to F5 Insight
Firewall (Mgmt) Port 443 Outbound to BIG-IP Management Port

Access Requirements

  • Valid F5 my.f5.com credentials
  • Admin credentials for your BIG-IP

Architecture Overview

F5 Insight Services operates as a collection of containerized microservices orchestrated by K3s, a lightweight Kubernetes distribution, running on Ubuntu.

Key Components

Kubernetes Platform:

  • K3s: Lightweight Kubernetes distribution (automatically installed)
  • Helm: Package manager for Kubernetes (pre-installed)

Application Services:

  • Container Images: All service images are pre-loaded during image build
  • Persistent Storage: F5 Insight stores data in persistent storage

Download the F5 Insight qcow2 Image

Steps to obtain the qcow2 image:

  1. Log into my.f5.com credentials
  2. Scroll down to the bottom of the page and choose f5insight-<version>.qcow2.
  3. Save the file to a location accessible from your workstation or directly to the Proxmox host.

Upload the qcow2 Image to Proxmox

Before creating the VM, you need to transfer the qcow2 image to your Proxmox host. Use SCP or your preferred file transfer method to upload the image.

From your workstation:

scp f5insight-<VERSION>.qcow2 root@<PROXMOX_HOST>:/tmp/

Alternatively, if you have direct shell access to the Proxmox host, you can download it directly:

# SSH into the Proxmox host
ssh root@<PROXMOX_HOST>

# Download directly (if the host has internet access)
wget -O /tmp/f5insight-<VERSION>.qcow2 <DOWNLOAD_URL> (WHERE YOU DROPPED THE IMAGE)

Creating the VM Instance in Proxmox VE

Option 1: Using the Proxmox Web GUI

  1. Open the Proxmox Web Interface

    1. Navigate to your Proxmox web UI in a browser:
    https://<PROXMOX_HOST>:8006
    
    1. Log in with your Proxmox credentials.
  2. Create a New Virtual Machine

    Click the Create VM button in the top-right corner of the Proxmox UI.

  3. General Tab

    1. Select the target Node where the VM will run
    2. Enter a VM ID (for example, <VMID>) or accept the default next available ID
    3. Enter the Name: f5-insight-01 (or your preferred name)
    4. Click Next
  4. OS Tab

    1. Select Do not use any media
    2. Set Guest OS Type to Linux
    3. Set Version to 6.x - 2.6 Kernel (or the latest available)
    4. Click Next

    Note: We select “Do not use any media” because we will import the qcow2 disk image after VM creation.

  5. System Tab

    1. Set BIOS to Default (SeaBIOS)
    2. Set SCSI Controller to VirtIO SCSI Single
    3. Check Qemu Agent (recommended for better VM management)
    4. Click Next
  6. Disks Tab

    1. Delete the default disk by clicking the trash icon - we will import the qcow2 image as the boot disk after creation
    2. Click Next
  7. CPU Tab

    1. Set Sockets to 1
    2. Set Cores to 8
    3. Set Type to host (recommended for best performance) or x86-64-v2-AES for migration compatibility
    4. Click Next
  8. Memory Tab

    1. Set Memory (MiB) to 16384 (16 GB)
    2. Uncheck Ballooning Device if you want guaranteed memory allocation
    3. Click Next
  9. Network Tab

    1. Set Bridge to vmbr0 (or your preferred network bridge)
    2. Set Model to VirtIO (paravirtualized)
    3. Configure VLAN tag if applicable to your environment
    4. Click Next

    Note: Choose the network bridge that provides connectivity to both your management network and your BIG-IP devices. Consult your network administrator if unsure which bridge or VLAN to use.

  10. Confirm Tab

    1. Review all settings
    2. Do NOT check “Start after created” - we need to import the disk first
    3. Click Finish

Import the qcow2 Disk Image

After creating the VM shell, SSH into the Proxmox host and import the qcow2 image as the VM’s boot disk.

Run the following commands on the Proxmox host:

# Import the qcow2 image into the VM's storage
# Replace <VMID> with your VM ID, and adjust the storage name if needed
# qm set <VMID> --virtio0 local-lvm:0,import-from=/tmp/f5insight-<VERSION>.qcow2 --boot order=virtio0
# The output will show something like:
root@pve:~# qm set <VMID> --virtio0 local-lvm:0,import-from=/tmp/f5insight-<VERSION>.qcow2 --boot order=virtio0
update VM <VMID>: -boot order=virtio0 -virtio0 local-lvm:0,import-from=/tmp/f5insight-<VERSION>.qcow2
Logical volume "vm-<VMID>-disk-0" created.
transferred 0.0 B of 80.0 GiB (0.00%)
transferred 819.2 MiB of 80.0 GiB (1.00%)
transferred 1.6 GiB of 80.0 GiB (2.00%)
transferred 2.4 GiB of 80.0 GiB (3.00%)
...
transferred 80.0 GiB of 80.0 GiB (100.00%)
virtio0: successfully created disk 'local-lvm:vm-<VMID>-disk-0,size=80G'

Note

Replace “local-lvm” with your actual storage pool name if you use a different storage backend (e.g., local-lvm, ceph-pool, nfs-storage, zfs-pool). You can view available storage pools in the Proxmox UI under Datacenter > Storage.

Attach the imported disk via the GUI:

  1. In the Proxmox UI, select your newly created VM (<VMID>)

Resize the disk to 600GB:

The imported qcow2 image may be smaller than the required 600GB. To resize:

  1. In the Hardware tab, select the virtio0 disk
  2. Click Disk Action > Resize
  3. Enter the additional space needed to reach 600GB total (for example, if the current disk is 20GB, add 580GB)
  4. Click Resize

Note

Alternatively, you can resize via CLI: qm resize <VMID> virtio0 +580G

Configure Cloud-Init

F5 Insight uses cloud-init for initial user provisioning. Proxmox supports cloud-init natively, and advanced customization can be done with a custom snippet file.

Option B: Custom Cloud-Init via Snippet (Advanced)

If you need more control over cloud-init configuration (for example custom users, package setup, or first-boot commands), use Proxmox cicustom with a snippet file.

Create a user-data snippet on the Proxmox host:

# Ensure the snippets directory exists on local storage
mkdir -p /var/lib/vz/snippets

# Create custom cloud-init user-data
cat > /var/lib/vz/snippets/f5-insight.yaml << 'EOF'
#cloud-config
chpasswd:
  expire: false
  users:
    - name: admin
      # Change the password below to your desired password
      password: "F5ChangeM3"
      type: text
EOF

# Attach the snippet as custom cloud-init user data
qm set <VMID> --cicustom "user=local:snippets/f5-insight.yaml"

# Optional: review the generated defaults as a baseline
qm cloudinit dump <VMID> user

Note

The snippet file must be on a storage that supports snippets and must be available on any node where the VM can run. The default local storage maps to /var/lib/vz on most Proxmox installations.

Note

Verify local storage supports snippets in Datacenter > Storage > local > Edit > Content. Ensure Snippets is enabled.

Important

Do not remove “#cloud-config” from the top of the user-data file. This line is required for cloud-init to recognize the file.

Start the VM

Once the disk is imported, attached, boot order is set, and cloud-init is configured:

  1. Select the VM in the Proxmox UI
  2. Click the Start button in the top-right corner
  3. Open the Console tab to monitor the boot process

The VM will boot into F5 Insight and begin its first-boot initialization.

Initial VM Configuration

  1. Wait for First Boot to Complete

    The F5 Insight VM runs an automated first-boot setup script that:

    • Initializes K3s cluster
    • Deploys all services via Helm
    • Configures persistent storage
    • Sets up secrets and certificates

    This takes approximately 5-10 minutes.

    Monitor the first boot progress:

    # SSH into the VM (use the IP address shown in the console or Proxmox summary)
    ssh admin@<VM_IP_ADDRESS>
    
    # Watch the first boot logs
    sudo tail -f /opt/f5insight/logs/f5insight-startup.log
    
    # Check systemd service status
    sudo systemctl status f5insight-first-boot.service
    
    # When complete, you should see:
    # f5insight-first-boot.service - F5 Insight First Boot Setup
    # Loaded: loaded (/etc/systemd/system/f5insight-first-boot.service; enabled)
    # Active: inactive (dead) since ...
    

    Note

    You can find the VM’s IP address in the Proxmox UI under the VM’s Summary tab (if QEMU Guest Agent is installed), or from the Console tab after boot.

  2. Verify Services are Running

    # Check K3s status
    sudo systemctl status k3s
    
    # Check all pods in f5-insight namespace
    sudo kubectl get pods -n f5-insight
    
    # Expected output (all pods should be Running or Completed):
    # admin@f5-insight-xx:~$ sudo kubectl get pods -n f5-insight
    # NAME                              READY   STATUS      RESTARTS   AGE
    # backend-xxxx                      2/2     Running     0          45s
    # cacher-xxxx                       2/2     Running     0          45s
    # clickhouse-0                      2/2     Running     0          44s
    # f5-insight-node-exporter-xxxx     2/2     Running     0          45s
    # f5-insight-postgres-0             2/2     Running     0          44s
    # f5-insight-postgres-init-xxxx     0/1     Completed   0          44s
    # f5-insight-vault-0                3/3     Running     0          44s
    # frontend-xxxx                     2/2     Running     0          45s
    # otel-collector-xxxx               2/2     Running     0          45s
    # system-manager-xxxx               2/2     Running     0          45s
    # victoriametrics-0                 2/2     Running     0          44s
    # vmagent-xxxx                      2/2     Running     0          45s
    # vmalert-xxxx                      2/2     Running     0          45s
    
    # Check services
    sudo kubectl get svc -n f5-insight
    
  3. Verify Network Connectivity

    # Test external connectivity
    curl -I https://www.google.com
    
    # Check if VM can reach your BIG-IP devices
    ping <BIGIP_IP_ADDRESS>
    telnet <BIGIP_IP_ADDRESS> 443
    

Accessing F5 Insight Services

Once the VM is fully initialized, you can access the services:

Web Interface:

Service URL Default Credentials
F5 Insight UI https://<VM_IP> Credentials provisioned via cloud-init

First Time Access:

  1. Open F5 Insight UI: https://<VM_IP>:443
  2. Login with the credentials you configured in cloud-init

Post-Installation Configuration and Licensing

  1. Login with your credentials to F5 Insight at https://<VM_IP>:443
  2. Once you login, click “Get Started”
  3. Input your JWT and click “Validate & Activate License”

Configure AI Provider API Keys (Optional)

  1. Select your LLM provider and fill in the corresponding credentials, then click “Save & Continue”
  2. Insert your AIDF credentials. You can get the credentials from your account team. However, for now during beta, please click “Skip for Now”

Add BIG-IP Devices to F5 Insight (Required)

Once you press “Skip for Now” you will be greeted with a page to “Start Fresh” or “Import configuration from Existing Application Study Tool Instance.”

If you choose to “Start Fresh” you will have the option to add a CA, add devices via YAML, or add individual devices manually. In addition, you must choose which module or data you would like to see populated.

Note

We recommend using a CA when adding devices, but that configuration is optional.

Note

In addition, we’re going to ask that you sort your BIG-IP devices by datacenter. Tagging of devices to a specific datacenter is crucial in providing timely alerts, cross comparison of performance, and much more.

If you choose to go the YAML route, please paste the appropriate configuration files when prompted.

Once done, you’ll be sent to the homepage.

Configure BIG-IP for Additional Application Logs/Telemetry

F5 Insight’s OTEL Syslog receiver will be listening on port 30514 for SSLO logs and iRule telemetry.

On BIG-IP (via TMSH or GUI):

# Create pool for F5 Insight (replace <VM_IP> with your F5 Insight VM IP)
tmsh create ltm pool f5insight_hsl_pool \
members add { <VM_IP>:514 } \
monitor tcp

# Create log destination
tmsh create sys log-config destination remote-high-speed-log f5insight_hsl \
pool-name f5insight_hsl_pool \
protocol tcp

# Create log destination for formatted messages
tmsh create sys log-config destination splunk f5insight_splunk \
forward-to f5insight_hsl

# Create log publisher
tmsh create sys log-config publisher f5insight_publisher \
destinations add { f5insight_splunk }

# Save configuration
tmsh save sys config

Appendix: Quick Reference – CLI-Only Deployment

For administrators who prefer the command line, here is the complete process using Proxmox CLI tools. Run all commands on the Proxmox host via SSH.

# Variables - Customize these values
VMID=<VMID>                              # Your chosen VM ID
VM_NAME="f5-insight-01"                  # VM display name
STORAGE="local"                          # Storage pool for the disk
BRIDGE="vmbr0"                           # Network bridge
QCOW2="/tmp/f5insight-<VERSION>.qcow2"   # Path to qcow2 image

# Step 1: Create the VM shell
qm create $VMID \
--name $VM_NAME \
--ostype l26 \
--scsihw virtio-scsi-single \
--agent enabled=1 \
--cores 8 \
--sockets 1 \
--cpu host \
--memory 16384 \
--net0 virtio,bridge=$BRIDGE

# Step 2: Import the qcow2 disk and set it as the boot disk
qm set $VMID --virtio0 local-lvm:0,import-from=$QCOW2 --boot order=virtio0

# Step 3 Resize disk to 600GB
qm resize $VMID virtio0 600G

# Step 4 Configure Cloud-Init
qm set $VMID --ide2 $STORAGE:cloudinit
mkdir -p /var/lib/vz/snippets
cat > /var/lib/vz/snippets/f5-insight.yaml << 'EOF'
#cloud-config
chpasswd:
  expire: false
  users:
    - name: admin
      password: <YOUR_PASSWORD>
      type: text
EOF
qm set $VMID --cicustom "user=local:snippets/f5-insight.yaml"
qm set $VMID --ipconfig0 ip=dhcp

# Step 5 Start the VM
qm start $VMID

# Step 6 Monitor boot and retrieve IP

# Get the VM's IP address once available (requires qemu-guest-agent)
qm guest cmd $VMID network-get-interfaces

Note

If your storage does not support the import-from syntax shown above, use the qm importdisk workflow instead. For LVM-thin storage (for example local-lvm), this quick-reference command pattern is typically valid as shown.