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.
Before installing LibreNMS, update Ubuntu to the latest version.
sudo apt update && sudo apt upgrade -y
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
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.
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.
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.
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
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;
}
}
sudo systemctl restart nginx
You can now access LibreNMS by the following URL in your web browser — http://domain.com
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!