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 |
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:
- Log into my.f5.com credentials
- Scroll down to the bottom of the page and choose f5insight-<version>.qcow2.
- 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¶
Open the Proxmox Web Interface
- Navigate to your Proxmox web UI in a browser:
https://<PROXMOX_HOST>:8006
- Log in with your Proxmox credentials.
Create a New Virtual Machine
Click the Create VM button in the top-right corner of the Proxmox UI.
General Tab
- Select the target Node where the VM will run
- Enter a VM ID (for example, <VMID>) or accept the default next available ID
- Enter the Name: f5-insight-01 (or your preferred name)
- Click Next
OS Tab
- Select Do not use any media
- Set Guest OS Type to Linux
- Set Version to 6.x - 2.6 Kernel (or the latest available)
- Click Next
Note: We select “Do not use any media” because we will import the qcow2 disk image after VM creation.
System Tab
- Set BIOS to Default (SeaBIOS)
- Set SCSI Controller to VirtIO SCSI Single
- Check Qemu Agent (recommended for better VM management)
- Click Next
Disks Tab
- Delete the default disk by clicking the trash icon - we will import the qcow2 image as the boot disk after creation
- Click Next
CPU Tab
- Set Sockets to 1
- Set Cores to 8
- Set Type to host (recommended for best performance) or x86-64-v2-AES for migration compatibility
- Click Next
Memory Tab
- Set Memory (MiB) to 16384 (16 GB)
- Uncheck Ballooning Device if you want guaranteed memory allocation
- Click Next
Network Tab
- Set Bridge to vmbr0 (or your preferred network bridge)
- Set Model to VirtIO (paravirtualized)
- Configure VLAN tag if applicable to your environment
- 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.
Confirm Tab
- Review all settings
- Do NOT check “Start after created” - we need to import the disk first
- 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:
- 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:
- In the Hardware tab, select the virtio0 disk
- Click Disk Action > Resize
- Enter the additional space needed to reach 600GB total (for example, if the current disk is 20GB, add 580GB)
- 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 A: Proxmox Built-in Cloud-Init (Recommended)¶
Add a Cloud-Init drive:
- In the VM’s Hardware tab, click Add > CloudInit Drive
- Select your storage pool (e.g., local-lvm)
- Click Add
Configure Cloud-Init Settings:
- Go to the Cloud-Init tab for the VM
- Set Password to your desired password
- Configure IP Config (net0): Set to DHCP or configure a static IP as needed
- Click Regenerate Image after making changes
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:
- Select the VM in the Proxmox UI
- Click the Start button in the top-right corner
- 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¶
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.
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
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:
- Open F5 Insight UI: https://<VM_IP>:443
- Login with the credentials you configured in cloud-init
Post-Installation Configuration and Licensing¶
- Login with your credentials to F5 Insight at https://<VM_IP>:443
- Once you login, click “Get Started”
- Input your JWT and click “Validate & Activate License”
Configure AI Provider API Keys (Optional)¶
- Select your LLM provider and fill in the corresponding credentials, then click “Save & Continue”
- 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.