How To Install LibreNMS on Debian 10

Install LibreNMS on Debian 10

In this tutorial, we will show you how to install LibreNMS on Debian 10. For those of you who didn’t know, LibreNMS is an auto discovering PHP/MySQL/SNMP-based network monitoring which includes support for a wide range of network hardware and operating systems including Cisco, Linux, FreeBSD, Juniper, HP, and many more. LibreNMS is a community-supported fork of Observium.

This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you through the step-by-step installation of the LibreNMS on a Debian 10 (Buster).

Install LibreNMS on Debian 10 Buster

Step 1. Before running the tutorial below, it’s important to make sure your system is up to date by running the following apt commands in the terminal:

sudo apt update

Step 2. Installing Required Packages.

Run the following commands below to install dependency required packages:

sudo apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nmap python-memcache python-mysqldb rrdtool snmp snmpd whois python3-pymysql python3-dotenv python3-redis python3-setuptools

Step 3. Install the LEMP stack.

A Debian 10 LEMP server is required. If you do not have LEMP installed, you can follow our guide here.

Step 4. Installing LibreNMS on Debian 10.

Before installation we create a user for LibreNMS:

useradd librenms -d /opt/librenms -M -r
usermod -a -G librenms www-data

Now we download LibreNMS from the official website:

cd /opt
git clone https://github.com/librenms/librenms.git

Next, change folders ownership permissions:

chown -R librenms:librenms /opt/librenms
chmod 770 /opt/librenms
setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

Step 4. Configuring MariaDB for LibreNMS.

By default, MariaDB is not hardened. You can secure MariaDB using the mysql_secure_installation script. you should read and below each step carefully which will set a root password, remove anonymous users, disallow remote root login, and remove the test database and access to secure MariaDB:

mysql_secure_installation

Configure it like this:

- Set root password? [Y/n] y
- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

Next, we will need to log in to the MariaDB console and create a database for the LibreNMS. Run the following command:

mysql -u root -p

This will prompt you for a password, so enter your MariaDB root password and hit Enter. Once you are logged in to your database server you need to create a database for LibreNMS installation:

MariaDB [(none)]> CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

Once successfully create databases, now open the MariaDB configuration file and add the following lines under [mysqld] section:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

Within the [mysqld] section please add:

innodb_file_per_table=1
lower_case_table_names=0

Then, restart MariaDB for the changes to take effect:

sudo systemctl restart mariadb

Step 5. Configure Nginx.

Now we create the VirtualHost definition for Nginx to be used by LibreNMS:

rm /etc/nginx/sites-enabled/default
nano /etc/nginx/sites-available/librenms.vhost

Add the following config, edit server_name as required:

server {listen80;server_name librenms.idroot.us;root/opt/librenms/html;indexindex.php;charset utf-8;gzip on;gzip_types text/css application/javascript text/javascript application/x-javascript image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;proxy_read_timeout 300;proxy_connect_timeout 300;proxy_send_timeout 300;location / {try_files $uri $uri/ /index.php?$query_string;}location /api/v0 {try_files $uri $uri/ /api_v0.php?$query_string;}location ~ \.php {include fastcgi.conf;fastcgi_split_path_info ^(.+\.php)(/.+)$;fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;}location ~ /\.ht {deny all;}}

Save and close also restart the Nginx web server so that the changes take place:

ln -s /etc/nginx/sites-available/librenms.vhost /etc/nginx/sites-enabled/librenms.vhost
sudo systemctl restart nginx

Step 6. Configure snmpd.

Now edit the new configuration snmpd using nano text editors:

cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
chmod 600 /etc/snmp/snmpd.conf
nano /etc/snmp/snmpd.conf

Edit the text which says RANDOMSTRINGGOESHERE and set your own community string:

curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro
chmod +x /usr/bin/distro
service snmpd restart

Step 7. Configure UFW Firewall.

Add new ports to the firewall. Add new ssh, HTTP, HTTPS, and the port used by snmpd 161 udp type to the ufw firewall:

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow 161/udp
sudo ufw enable

Step 8. Accessing LibreNMS Web Interface.

Once successfully installed, LibreNMS will be available on HTTP port 80 by default. Open your favorite browser and navigate to http://librenms.idroot.us/ and complete the required steps to finish the installation.

Install LibreNMS on Debian 10 Buster

Congratulations! You have successfully installed LibreNMS. Thanks for using this tutorial for installing the latest version of the LibreNMS on the Debian system. For additional help or useful information, we recommend you check the official LibreNMS 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!