UbuntuUbuntu Based

How To Install vnStat on Ubuntu 24.04 LTS

Install vnStat on Ubuntu 24.04

In the realm of network administration and system monitoring, understanding your network traffic is paramount. vnStat emerges as a valuable, lightweight tool for monitoring network traffic on Linux and BSD systems. This console-based utility provides real-time insights into bandwidth usage without hogging system resources. For developers, network administrators, and even home users, vnStat offers essential data to optimize network performance, troubleshoot issues, and enhance security.

This article provides a comprehensive guide on installing and using vnStat on Ubuntu 24.04 LTS, covering everything from initial setup to advanced usage. By the end of this guide, you’ll be equipped to monitor your network traffic effectively and make informed decisions about your network’s health and performance.

Prerequisites

Before diving into the installation process, ensure your system meets the following prerequisites:

  • Operating System: Ubuntu 24.04 LTS server or desktop.
  • Access Level: Root user or a non-root user with sudo privileges.
  • Network Connection: Active internet connection for package installation.

To prepare your Ubuntu system, follow these initial steps:

  1. Update Package Repository: Open your terminal and run the following command to update the package repository cache:
    sudo apt update

    This ensures you have the latest package information from the Ubuntu repositories.

  2. Upgrade Existing Packages: Next, upgrade your existing packages to their newest versions:
    sudo apt upgrade

    This step is crucial for system stability and security.

Using a fresh OS install is recommended to avoid potential conflicts or issues during the installation process. A clean environment ensures that all dependencies are correctly installed and configured, leading to a smoother experience.

Installing vnStat on Ubuntu 24.04 LTS

There are several methods to install vnStat on Ubuntu 24.04 LTS. This guide will primarily focus on using the apt package manager, as it is the simplest and most reliable approach. However, alternative methods like using aptitude or compiling from source will also be discussed.

Method 1: Installing vnStat Using apt

The apt package manager is the default tool for managing software packages on Ubuntu systems. Here’s how to use it to install vnStat:

  1. Install vnStat: Execute the following command in your terminal:
    sudo apt install vnstat

    This command retrieves the vnStat package from the Ubuntu repositories and installs it along with any required dependencies. The -y option can be added to automatically confirm the installation without prompting.

Method 2: Installing vnStat Using aptitude

aptitude is another package management tool that can be used as an alternative to apt. It provides a text-based interface for managing packages and offers more advanced features for resolving dependencies.

  1. Install aptitude: If aptitude is not already installed on your system, you can install it using the following command:
    sudo apt install aptitude
  2. Update aptitude: Update the aptitude package list:
    sudo aptitude update
  3. Install vnStat: Use aptitude to install vnStat:
    sudo aptitude -y install vnstat

Method 3: Compiling vnStat from Source

Compiling from source is useful if you require the absolute latest version of vnStat or if the version in the Ubuntu repositories is outdated. This method involves downloading the source code, compiling it, and installing the resulting binaries.

  1. Install Build Dependencies: Before compiling, you need to install the necessary build tools and libraries. Run the following command:
    sudo apt-get install build-essential gcc make libsqlite3-dev -y

    This installs essential tools like gcc (GNU Compiler Collection), make, and the SQLite development library.

  2. Download the Source Code: Visit the vnStat official website to find the latest version. Download the tar.gz package using wget:
    wget https://humdi.net/vnstat/vnstat-2.10.tar.gz

    Ensure you replace vnstat-2.10.tar.gz with the actual filename of the latest version.

  3. Extract the Archive: Extract the downloaded archive using the tar command:
    tar -xvzf vnstat-2.10.tar.gz
  4. Configure the Build: Navigate into the extracted directory and run the configure script:
    cd vnstat-2.10 && ./configure --prefix=/usr --sysconfdir=/etc

    The --prefix=/usr option specifies the installation directory, and --sysconfdir=/etc sets the configuration directory.

  5. Compile: Compile the source code using the make command:
    make
  6. Install: Install vnStat using the following command:
    sudo make install

    This installs the compiled binaries to the specified directories.

Verifying the Installation

After installing vnStat, verify that it has been successfully installed by checking its version:

vnstat -v

or

vnstat --version

The output should display the installed vnStat version number (e.g., vnStat 2.10). If the command is not found, ensure that the installation directory (e.g., /usr/bin) is included in your system’s PATH environment variable.

Configuring vnStat

Before vnStat can start monitoring network traffic, it needs to be configured to monitor the correct network interface. This involves identifying the network interface and setting it in the vnStat configuration.

Identifying the Network Interface

To identify your network interface, use the ifconfig command:

ifconfig

If ifconfig is not available, you can use the ip addr command:

ip addr

The output will list all available network interfaces, along with their configuration details. Look for an interface that is active and has an IP address assigned. Common interface names include eth0, enp0s25, and wlan0.

Setting the Monitored Interface

Once you have identified the correct network interface, use the -i option to set it in vnStat:

sudo vnstat -i <interface_name>

Replace <interface_name> with the actual name of your network interface. For example:

sudo vnstat -i eth0

If this is the first time you are running vnStat, you may encounter an “Unable to read database” error. This is normal and indicates that vnStat has not yet created its database file. The database will be automatically created when vnStat starts collecting data.

You can list all available network interfaces using the following command:

vnstat --iflist

This command displays a list of all network interfaces that vnStat can monitor.

Running vnStat as a Daemon

To ensure vnStat continuously monitors network traffic, it should be run as a daemon, a background process that starts automatically when the system boots. Ubuntu uses systemd as its system and service manager, making it easy to manage vnStat as a service.

Using systemd

  1. Enable the vnStat Service: Enable the vnStat service to start automatically on boot:
    sudo systemctl enable vnstat
  2. Start the vnStat Service: Start the vnStat service immediately:
    sudo systemctl start vnstat
  3. Check the Service Status: Verify that the vnStat service is running correctly:
    sudo systemctl status vnstat

    The output should indicate that the service is active (running).

Using Sysvinit (Alternative)

If your system uses Sysvinit, you can manage vnStat using the following commands:

  1. Enable vnStat:
    sudo chkconfig vnstat on
  2. Start vnStat:
    sudo service vnstat start

Basic vnStat Usage

Once vnStat is installed and running, you can use it to display network traffic statistics. Here are some basic command-line options:

  • Display a Month-wise Summary of All Interfaces:
    vnstat

    This command shows a summary of network traffic for all monitored interfaces, broken down by month.

  • Display Statistics for a Specific Interface:
    vnstat -i <interface_name>

    Replace <interface_name> with the name of the interface you want to monitor. For example:

    vnstat -i eth0

    This command displays detailed statistics for the specified interface.

  • Hourly Statistics:
    vnstat -h -i <interface_name>

    Displays hourly traffic statistics for the specified interface.

  • Daily Statistics:
    vnstat -d -i <interface_name>

    Shows daily traffic statistics.

  • Monthly Statistics:
    vnstat -m -i <interface_name>

    Presents monthly traffic data.

  • Weekly Statistics:
    vnstat -w -i <interface_name>

    Displays weekly traffic statistics.

  • Top 10 Days with the Highest Traffic:
    vnstat -t -i <interface_name>
     

    Lists the top 10 days with the highest traffic volume.

  • Real-time Traffic Monitoring:
    vnstat -l -i <interface_name

    Provides a live view of the current network traffic on the specified interface. Press Ctrl+C to stop real-time monitoring.

Interpreting the Output

The output from vnStat provides key metrics about network traffic:

  • rx: Received traffic (incoming data).
  • tx: Transmitted traffic (outgoing data).
  • total traffic: The sum of received and transmitted traffic.
  • estimated usage: An estimate of future traffic based on historical data.

Advanced vnStat Usage

vnStat offers several advanced options for filtering, sorting, and exporting data. These options allow you to customize the output and integrate vnStat with other tools.

Filtering and Sorting Data

  • Specifying a Date Range: Use the -b (begin) and -e (end) options to specify a date range for the statistics:
    vnstat -i eth0 -b 2025-01-01 -e 2025-01-31 -m

    This command displays monthly statistics for eth0 from January 1, 2025, to January 31, 2024.

  • Outputting Data in a Parsable Format: Use the --oneline, --json, or --xml options to output data in a format that can be easily parsed by scripts or other programs:
    vnstat -i eth0 --oneline m

    This command outputs monthly statistics for eth0 in a single line, making it suitable for automated processing.

Calculating Traffic

Use the -tr option to calculate traffic over a specific time period. This option requires two timestamps: a start time and an end time.

vnstat -tr -i eth0 1609459200 1609545600

The timestamps are specified as Unix timestamps (seconds since January 1, 1970). You can use the date command to convert human-readable dates to Unix timestamps:

date -d "2025-01-01 00:00:00" +%s

Resetting Statistics

To clear the database for a specific interface, use the -r option. Use this option with caution, as it permanently deletes the collected data.

vnstat -r -i <interface_name>

For example:

vnstat -r -i eth0

Automating vnStat Tasks with cron

You can automate vnStat tasks using cron, a time-based job scheduler in Linux. For example, you can create cron jobs to generate reports or graphs automatically at regular intervals.

To create a cron job, use the crontab -e command. This opens the crontab file in a text editor. Add a line to the file specifying the command to run and the schedule:

0 0 * * * vnstat -m -i eth0 > /path/to/report.txt

This cron job runs at midnight every day and generates a monthly traffic report for eth0, saving it to /path/to/report.txt.

Using vnStati for Graphical Output

While vnStat is a command-line tool, you can use vnStati to generate graphical representations of the collected data. vnStati creates PNG images that display vnStat statistics in a more visually appealing format.

Installing vnStati

Install vnStati using the following command:

sudo apt install vnstati

Generating Images

Once vnStati is installed, you can use it to generate images of vnStat statistics. Here are some common options:

  • Summary for an Interface:
    vnstati -s -i <interface_name> -o <output_file.png>

    Replace <interface_name> with the name of the interface and <output_file.png> with the desired output filename. For example:

    vnstati -s -i eth0 -o ~/summary.png

    This command generates a summary image for eth0 and saves it as summary.png in your home directory.

  • Hourly Display:
    vnstati -h -i <interface_name> -o <output_file.png>

    Generates an hourly traffic graph.

  • Cumulative Output for Multiple Interfaces:
    vnstati -s -i eth0+wlan0 -o ~/combined.png

    Creates a combined summary for eth0 and wlan0.

Customizing the Output

vnStati provides several options for customizing the appearance of the generated images. Refer to the man vnstati page for a complete list of available options:

man vnstati

You can choose different graph types, colors, and styles to match your preferences. Experiment with the options to create the perfect visual representation of your network traffic data.

Troubleshooting

While vnStat is generally reliable, you may encounter some issues during installation or usage. Here are some common problems and their solutions:

  • “Unable to read database” Error: This error typically occurs when vnStat is run for the first time and the database file has not yet been created. Ensure that vnStat is running as a daemon and that it has been given sufficient time to collect data.
  • vnStat Not Starting Automatically: If vnStat does not start automatically on boot, ensure that the vnStat service is enabled using systemctl enable vnstat. Check the service status using systemctl status vnstat for any error messages.
  • Incorrect Interface Being Monitored: Verify that you have specified the correct network interface using the vnstat -i <interface_name> command. Use ifconfig or ip addr to confirm the interface name.
  • Graphical Output Not Being Generated: If vnStati fails to generate graphical output, ensure that vnStati is correctly installed and that the specified output directory exists and is writable. Check the vnStati man page for available options and troubleshooting tips.

If you encounter other issues, consult the vnStat man page or search online forums for solutions. The vnStat community is generally helpful and can provide valuable insights.

Congratulations! You have successfully installed vnStat. Thanks for using this tutorial for installing the vnStat console-based network traffic monitor on Ubuntu 24.04 LTS system. For additional help or useful information, we recommend you check the official vnStat website.

VPS Manage Service Offer
If you don’t have time to do all of this stuff, or if this is not your area of expertise, we offer a service to do “VPS Manage Service Offer”, starting from $10 (Paypal payment). Please contact us to get the best deal!

r00t

r00t is an experienced Linux enthusiast and technical writer with a passion for open-source software. With years of hands-on experience in various Linux distributions, r00t has developed a deep understanding of the Linux ecosystem and its powerful tools. He holds certifications in SCE and has contributed to several open-source projects. r00t is dedicated to sharing her knowledge and expertise through well-researched and informative articles, helping others navigate the world of Linux with confidence.
Back to top button