Home Network, Meet Proactive Monitoring: Deploying ThousandEyes on Proxmox

Picture of Chris Beye

Chris Beye

Systems Architect @ Cisco Systems

Table of Contents

Introduction

As someone who loves testing and tinkering in my home lab, it’s no surprise that it’s continuously growing. More services are popping up, and with them come more dependencies. Before you know it, your once-simple setup turns into a web of complexity that even you, the creator, have trouble navigating. Without proper documentation (we’ve all been there), it can quickly become a nightmare, and you’re left wondering, “Why did I make this so complicated?”

Usually, something breaks when you are not at home!
Let me introduce the WAF (Women Acceptance Factor) if that is not balanced you might have issues 😜

I’ve had my fair share of head-scratching moments when things have gone wrong, and I realized that a lot of issues could’ve been avoided with a proper network monitoring system in place.

Lucky for me, as a Cisco employee, I have access to some of the best tools out there.😉 That’s when I decided to take the opportunity and deploy ThousandEyes on my Proxmox cluster to keep everything in check.

Why Thousandeyes?

ThousandEyes is more than just a standard monitoring tool; it’s a SaaS-based network intelligence platform that offers enterprise-level visibility into your network performance. The beauty of ThousandEyes is that you don’t have to worry about managing backend infrastructure or deploying complex monitoring systems. Since it’s SaaS, you get the benefits without the headaches—no servers to maintain, no databases to worry about. Everything is handled in the cloud.

Here are some standout features that make ThousandEyes perfect for both enterprise and home network monitoring:

  • SaaS-Based: Since it’s a cloud-hosted solution, you don’t need to deploy or manage your own monitoring servers. Just set up the agents and let ThousandEyes handle the backend.

  • Network Path Visualization: One of ThousandEyes’ most powerful features is its ability to visualize network paths from your devices all the way to cloud services. It gives you insights into every hop, allowing you to pinpoint where issues like packet loss or latency occur.

  • Global Monitoring Agents: ThousandEyes provides access to a global network of agents that can simulate user behavior from different locations. This is great for understanding how your network interacts with services across the globe.

  • Application Layer Monitoring: It doesn’t just stop at the network. ThousandEyes also provides application monitoring, so you can track the performance of cloud-based services like Zoom, Office 365, and other SaaS apps directly from your network.

  • Proactive Alerts: You can set up customizable alerts to be notified when certain thresholds (like latency or packet loss) are exceeded. This gives you the ability to address issues before they impact your work or home services.

  • Detailed Reports and Dashboards: ThousandEyes offers comprehensive dashboards that provide both high-level overviews and in-depth insights into your network’s health and performance.

Alternatives for Home Deployments

If ThousandEyes sounds like overkill for your home network (or if you’re looking for a more budget-friendly or self-hosted solution), there are some solid alternatives that provide useful monitoring capabilities:

  • PingPlotter: A lighter-weight tool compared to ThousandEyes, PingPlotter offers graphical network visualizationand monitoring. It’s ideal for pinpointing where network issues are occurring and doesn’t require extensive setup.

  • Netdata: An open-source real-time performance monitoring tool for both networks and servers. Netdata is perfect if you’re a DIY enthusiast who likes setting up detailed dashboards to track everything from network health to device performance.

  • Domotz: Domotz is another user-friendly solution for monitoring IoT devices and home networks. It offers device discovery, network diagnostics, and the ability to remotely manage your devices—all packed into a clean and intuitive interface.

  • PRTG Network Monitor: PRTG is a comprehensive monitoring tool that can be used for home networks. It’s more customizable than some alternatives and provides insights into everything from network traffic to device uptime.

  • Zabbix: Zabbix is a powerful open-source monitoring tool that offers detailed insights into network performance, hardware health, and much more. It is highly customizable and provides a self-hosted solution for tracking performance across devices, servers, and applications. If you’re comfortable managing your own infrastructure and need a full-fledged monitoring platform, Zabbix is an excellent alternative that scales from home use to enterprise-level deployments.
Lets deploy the enterprise agent on Proxmox

What is the ThousandEyes Enterprise Agent?

The ThousandEyes Enterprise Agent is a dedicated monitoring agent deployed on your network to provide deep visibility into your infrastructure’s performance. It allows you to run synthetic tests that monitor network paths, application performance, and even ISP quality from inside your network.

Options for Deploying the Enterprise Agent

There are several ways to deploy a ThousandEyes Enterprise Agent:

  1. Virtual Appliance:

    • ThousandEyes provides a pre-configured Virtual Appliance that you can run on platforms like VMware, KVM, or Hyper-V.
    • This is a convenient option because the image is already optimized, and you just need to import it into your hypervisor of choice.
  2. Docker:

    • If you prefer containerized environments, you can deploy the agent as a Docker container. This is especially useful for environments where Docker is already in use, and it makes the deployment quick and easy without much overhead.
    • Docker run example:
      docker run -e TOKEN=<your_installation_token> -e TEAGENT_ACCOUNT=<your_account_group> --name thousandeyes-agent -d thousandeyes/enterprise-agent
  3. Bare-Metal Installation:

    • If you don’t want to run a virtualized or containerized version, you can install the Enterprise Agent directly on Linux (bare-metal). Supported OS versions include Ubuntu, CentOS, and Red Hat.
  4. Application-Hosting on Cisco devices:

Deploying the Enterprise Agent on Proxmox

To deploy a ThousandEyes Enterprise Agent on Proxmox, we’ll use the Virtual Appliance method, which is straightforward and integrates seamlessly into Proxmox. Here’s a step-by-step guide:

1. Download the Virtual Appliance Image

ThousandEyes provides a Virtual Appliance image in OVA format. Download the OVA file from the ThousandEyes website.

2. Convert the OVA to QCOW2 for Proxmox

Since Proxmox uses the QCOW2 disk format, you’ll need to convert the OVA file:

  • Extract the OVA file to obtain the .vmdk disk image.

  • Use qemu-img to convert the VMDK to QCOW2:

    qemu-img convert -f vmdk -O qcow2 thousandeyes-va-64-22.04.vmdk thousandeyes-va-64-22.04.qcow2
     

3. Create a New Virtual Machine in Proxmox

  • Create a new virtual machine by navigating to Create VM.
  • In the VM settings, configure the following:
    • Name: Give your VM a meaningful name (e.g., thousandeyes-node01).
      Remember the ID.
    • OS & Disk: Skip the OS and Disk configuration since you’ll be uploading your custom disk image.
    • Set up the CPU and Memory configuration based on the recommended specs for ThousandEyes (minimum 2 CPUs, 2GB of RAM). System requirements
    • Ensure that the network interface is properly attached to your network bridge for the VM to have internet access.

4. Import the QCOW2 Disk into Proxmox

  • Upload the converted QCOW2 disk image to your Proxmox storage.
    qm importdisk 111 /mnt/pve/proxmox-vm/thousandeyes-va-64-22.04.4.qcow2 node03-datastore-01
  • Attach the uploaded disk to your newly created VM by navigating to the Hardware section of the VM, selecting Add > Hard Disk, and choosing your QCOW2 disk image.

6. Start the VM

  • Set the correct boot order under Options > Boot order and add the imported disk
  • Boot up the VM, and during the first boot, you’ll see a prompt with the URL to the appliance and the default user and password (admin / welcome)
  • Open the URL and login with the provided credentials

7. Configure and verify the Deployment

  • Change the password 
  • Use the installation token provided in your ThousandEyes account to connect the agent to your account group
  • Configure NTP & DNS under the Network section
  • Review the config, see if all tests are passed
  • Once the agent is deployed, it should appear in your ThousandEyes dashboard under Enterprise Agents.
  • You can start configuring tests (such as network path tests, web layer tests, and DNS tests) directly from the ThousandEyes platform.

In my case, I deployed for each Proxmox node one enterprise agent for high availability reasons and resilience. 

7. Configure network tests

  • A detailed description of how tests can be created is documented on the ThousandEyes page
  • In my case I created ICMP tests for all my:
    • VMs
    • Network devices
  • Web & Port tests for all my services like:
    • Grafana
    • InfluxDB
    • IOBroker 
    • Synology
    • Pihole
  • any many more … in total I defined around 40 different test cases to monitor all devices and services in my home lab. 
Create a Cluster in Thousandeyes

Once you’ve deployed a ThousandEyes Enterprise Agent on your Proxmox cluster, the next logical step is to consider creating a ThousandEyes cluster. This involves deploying multiple Enterprise Agents to work together, providing even more comprehensive monitoring across your home or office network.

Why Create a ThousandEyes Cluster?

There are several reasons why creating a cluster of ThousandEyes agents makes sense, even for smaller environments:

1. Redundancy and High Availability

  • Failover Protection: If one agent goes down for any reason—whether it’s a hardware failure, a network issue, or simply maintenance—your monitoring continues uninterrupted. 
  • No Single Point of Failure: A single agent represents a single point of failure. By clustering, you spread the load and reduce the risk of missing critical network insights when issues arise.

2. More Accurate Data

  • Multi-Angle Testing: With a cluster, you can run tests from different agents within the same network, gathering performance data from multiple perspectives.

3. Load Distribution

  • Optimized Resource Usage: If you have a large number of tests running, a single agent might become overloaded. Clustering allows you to distribute the workload across multiple agents, ensuring that no single agent is burdened by too many tests.
  • Scalability: As you continue to add more tests or expand your network, a cluster can handle the increasing load more effectively. Adding more agents to the cluster allows you to scale your monitoring without any performance degradation.

 

How to Set Up a ThousandEyes Cluster

Setting up a ThousandEyes cluster is straightforward. After deploying multiple agents on your Proxmox cluster or across different hosts, you can easily configure them to work together in the ThousandEyes platform. Here’s how:

  1. Deploy Multiple Agents: Install additional Enterprise Agents on other nodes within your Proxmox cluster, or even on separate physical or virtual machines.
  2. Cluster Configuration: Once the agents are deployed and registered with your ThousandEyes account, group them into a cluster via the Enterprise Agent settings in the ThousandEyes dashboard.
  3. Distribute Tests: Assign tests to the cluster.
  4. Monitor Results: ThousandEyes automatically aggregates test results from all agents in the cluster.
Validate the VM performance in Proxmox

Lastly, validate in your Proxmox environment how the VM is performing:

Summary

This blog post explores the importance of monitoring home networks, especially as they grow more complex with increasing services and dependencies. It demonstrates the deployment of ThousandEyes on a Proxmox cluster to achieve enterprise-level visibility into network performance, without the burden of managing backend infrastructure, thanks to ThousandEyes’ SaaS-based approach. Key features like network path visualization, global monitoring agents, and application layer monitoring make it a powerful choice for network monitoring.

For those seeking alternative solutions, options such as PingPlotter, Netdata, Domotz, Zabbix, and PRTG are discussed, offering a range of functionalities for home network monitoring.

Additionally, the post highlights the advantages of creating a ThousandEyes cluster, including redundancy, more accurate data, load distribution, and geographically distributed testing. By clustering multiple agents, network monitoring becomes more reliable, scalable, and flexible, providing a comprehensive solution for any home lab or enterprise environment.

References