How to Install LibreNMS on Ubuntu Server Latest

Introduction

LibreNMS is a network monitoring and management tool. It is open source and free of cost, and can monitor a wide range of network devices. In this tutorial, we will guide you through the installation process of LibreNMS on Ubuntu.

Prerequisites

Step 1: Update Ubuntu

Before installing LibreNMS, update Ubuntu to the latest version.

sudo apt update && sudo apt upgrade -y

Step 2: Install Required Dependencies

In this step, we will install all the dependencies required by LibreNMS.

sudo apt update && sudo apt install git composer fping imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-gd php7.4-imap php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip python3 python3-mysqldb python3-pymysql python3-dotenv python3-dateutil snmp snmpd whois acl -y

Step 3: Configure MariaDB

In this step, we will create a new database and a new user for LibreNMS.

sudo mysql -u root

This will open the MariaDB shell. Run the following commands:

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Replace the password with a safer password.

Step 4: Install LibreNMS

In this step, we will install LibreNMS from the official repository.

cd /opt
sudo git clone https://github.com/librenms/librenms.git
sudo chown -R www-data:www-data /opt/librenms

Run the following commands to install the packages required by LibreNMS:

cd /opt/librenms
sudo ./scripts/composer_wrapper.php install --no-dev
sudo cp .env.example .env
sudo sed -i 's/DB_USER=librenms/DB_USER=root/g' .env
sudo sed -i 's/DB_PASS=librenms_password/DB_PASS=password/g' .env

Replace the password with the password you set in step 3.

Step 5: Run the Install Script

In this step, we will run the installation script.

cd /opt/librenms
sudo ./scripts/setup_mysql.sh
sudo apt install whois
sudo php ./build-base.php
sudo php ./addhost.php localhost public v2c
sudo php ./adduser.php librenms password 10

Replace the password with a more secure password.

Step 6: Setup Cronjobs

Add the following lines to the crontab file.

crontab -e
*/5 * * * * librenms /opt/librenms/cronic /opt/librenms/discovery-wrapper.py 1
*/5 * * * * librenms /opt/librenms/discovery.php -h all >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/poller-wrapper.py 16 >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/alerts.php >> /dev/null 2>&1
*/5 * * * * librenms /opt/librenms/billing-calculate.php >> /dev/null 2>&1
0 0 * * * librenms /opt/librenms/daily.sh >> /dev/null 2>&1

Step 7: Edit nginx Configuration

sudo nano /etc/nginx/sites-available/default

Replace the file with the text below:

server {
    listen       80;
    server_name  domain.com;

    # Replace the following line with your document root
    root /opt/librenms/html;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location /api/v0 {
       try_files $uri $uri/ /api_v0.php$is_args$args;
    }

    location /api/v1 {
        try_files $uri $uri/ /api_v1.php$is_args$args;
    }

    location /api/v2 {
        try_files $uri $uri/ /api_v2.php$is_args$args;
    }

    location ~ \.php {
        include fastcgi_params;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location /images/ {
        # This is your LibreNMS images directory located in html/images.
        # Uncomment the following two lines if it exists.
        # expires 1d;
        # add_header Cache-Control "public";
    }
    
    location ~ /\.ht {
        deny all;
    }
}

Step 8: Reload nginx

sudo systemctl restart nginx

Step 9: Access LibreNMS

You can now access LibreNMS by the following URL in your web browser — http://domain.com

Conclusion

We've successfully installed LibreNMS on Ubuntu server following these nine steps!

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!

Alternatively, for the best virtual desktop, try Shells!