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
- Ubuntu server with at least 2GB RAM and 2 CPU cores
- sudo privileges
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!