Install and configure LibreNMS on Debian 10 with Nginx

Introduction

LibreNMS is an automatic discovery based on PHP / MySQL / SNMP network monitoring, which includes support for a wide range of network hardware and operating systems, including Cisco, Linux, FreeBSD, Juniper, Brocade, Foundry, HP, etc. To install LibreNMS on Debian 10 Buster, perform the following steps.

Step 1: Install required packages

We need to install all the dependencies required by LibreNMS to run.

                      
                        sudo apt install software-properties-common
sudo apt update && sudo apt -y upgrade
sudo apt install nginx
sudo apt install curl acl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap python-memcache python-mysqldb rrdtool snmp snmpd whois
                      
                    

Step 2: Install PHP and required extensions

Use the following guide to install PHP 7.3 and PHP extensions on your server

How to install PHP / PHP on Debian 10 Buster

Step 3: Add librenms user to the system

Run the following command on a Debian 10 terminal to add the librenms user.

                      
                        sudo useradd librenms -d /opt/librenms -M -r
sudo usermod -aG librenms www-data
                      
                    

Step 4: Clone LibreNMS from git

Now let’s download the LibreNMS file to our server using git.

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

Step 5: Set the necessary permissions on the LibreNMS directory

LibreNMS users need special permissions on the directories and files they want to access. Set it up by running the following command

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

Step 6: Install PHP dependencies

Run the following command to install all the dependencies required by PHP on your Debian 10 server. This may take some time to complete.

                      
                        sudo su - librenms
./scripts/composer_wrapper.php install --no-dev
exit
                      
                    

You should see output similar to the following

Step 7: Database configuration

We installed MariaDB in step 1. Let’s move on to creating a database for LibreNMS.

Log in to your database

                      
                        sudo systemctl enable mysql
sudo systemctl restart mysql
sudo mysql -u root -p
                      
                    

Create database and librenms user

                       CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
 CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'SafePassWord'; 
                      
                        ## Make it Strong
                      
                      
 GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
 FLUSH PRIVILEGES;
 exit
                    

Open MariaDB file and add the following lines below [mysqld] section

                      
                        sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
                      
                    

Add the following below [mysqld]

                      
                        [mysql]
........
innodb_file_per_table=1
lower_case_table_names=0
                      
                    

Restart MariaDB

                      
                        sudo systemctl restart mysql
                      
                    

Step 8: Configure PHP-FPM

Let’s make sure that date.timezone in php.ini is set to the preferred time zone.

                      
                        sudo vim /etc/php/7.3/fpm/php.ini
                      
                    

Down [Date] Uncomment the date.timezone line and add your time zone.

                        [Date]
 ; Defines the default timezone used by the date functions
 ; https://php.net/date.timezone
 date.timezone = Africa/Nairobi 
                      
                        ## Place your time zone here
                      
                    
                      
                        sudo vim /etc/php/7.3/cli/php.ini
                      
                    

Like above, below [Date] Uncomment the date.timezone line and add your time zone.

                       [Date]
 ; Defines the default timezone used by the date functions
 ; https://php.net/date.timezone
 date.timezone = Africa/Nairobi   
                      
                        ## Place your time zone here
                      
                    

Restart PHP-FPM

                      
                        sudo systemctl restart php7.3-fpm
                      
                    

Step 9: Configure Nginx web server

Since we chose Nginx as our preferred web server, it is time to add configuration so that we can start serving LibreNMS pages.

Remove the default page loaded after a fresh install of Nginx

                      
                        sudo rm /etc/nginx/sites-enabled/default
                      
                    

Create a configuration file in the conf.d directory and add the following content

                      
                        sudo vim /etc/nginx/conf.d/libreconfig.conf
                      
                    
                      server {
  listen      80;
  server_name googlesyndication.com;        
                      
                         ## Input your Server name here.
                      
                      
  root        /opt/librenms/html;
  index       index.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; 
  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;
  }
 }
                    

Restart Nginx

                      
                        sudo systemctl restart nginx
                      
                    

Step 10: Configure the snmp daemon (snmpd)

LibreNMS makes extensive use of SNMP to collect metrics from remote devices and servers. Copy the sample configuration file to / etc

                      
                        sudo cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
sudo vim /etc/snmp/snmpd.conf
                      
                    

In the following line:

                      com2sec readonly  default         RANDOMSTRINGGOESHERE

                      
                        ##Change to for example
                      
                      :
com2sec readonly  default         teststring

                    

As mentioned above, change RANDOMSTRINGGOESHERE to your own community string.

Pull the file below to make it executable, then restart the snmp daemon

This file will detect which operating system, and if it is Linux, it will detect which Linux distribution.

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

Step 11: Copy the logrotate configuration

LibreNMS keeps logs in / opt / librenms / logs. Over time, they may grow larger and be eliminated. To rotate out the old logs, you can use the provided logrotate configuration file:

                      
                        sudo cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
                      
                    

Step 12: Set up Cron to work

This cron job does a lot of work, such as checking for updates, automatically discovering devices, etc.

                      
                        sudo cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
                      
                    

Step 13: LibreNMS Web Installer

Now go to the web installer and follow the instructions on the screen.

                      https:// IP or FQDN /install.php
                    

The web installer may prompt you to manually create a config.php file in the librenms installation location and copy the content displayed on the screen to that file. If you have to do this, remember to set permissions on config.php after copying the screen contents to a file. run:

                      
                        sudo chown librenms:librenms /opt/librenms/config.php
                      
                    

Following the installation process, you can view the images below for guidance.

Enter your database user, database pass and database name

Give it time to import the database

Add a user that you will use to log in to LibreNMS in the future.

Build configuration

After generating the configuration, run the following command

                      
                        sudo chown librenms:librenms /opt/librenms/config.php
                      
                    

finish installation

Click the “Verify Installation and Resolve All Issues” link to complete

When all is done, when you refresh your browser, you should see the login page below.

in conclusion

Now that we have installed the LibreNMS monitoring tool, we still have a lot of work to do. It includes adding devices, creating alerts, creating thresholds, performance tuning, and more. I hope this guide is helpful and thank you for coming. We recommend you read some LibreNMS documentation Let you continue to the next step.

You can also follow these guidelines.

How to install LibreNMS on CentOS 8 / RHEL 8

Install and configure Zabbix Server 4.4 on Debian 10 (Buster)

Install LibreNMS monitoring tool on CentOS using Letsencrypt and Nginx

How to install and configure Zabbix Agent 4.0 on Ubuntu 18.04 and CentOS 7

Install Zabbix Server on Ubuntu 18.04

How to install and configure LibreNMS on Ubuntu 18.04 LTS using Nginx

Related Posts