wiki:NSM2021/Agenda/Librenms

Version 70 (modified by tuwan, 3 months ago) ( diff )

--

Configuring LibreNMS on Ubuntu 20.04 LTS

This will guide you through installing LibreNMS setup on Ubuntu 20.04 LTS server with NGINX running as the web server.

Requirements

  • Linux Server running Ubuntu 20.04 LTS
  • NGINX
  • sudo access to the server. All following commands have to be entered as the root user. Best way to do it is, by login in as root with sudo su

Installation Packages

apt install software-properties-common

add-apt-repository universe

apt update

apt install acl curl composer fping git graphviz imagemagick mariadb-client mariadb-server mtr-tiny nginx-full nmap php7.4-cli php7.4-curl php7.4-fpm php7.4-gd php7.4-json php7.4-mbstring php7.4-mysql php7.4-snmp php7.4-xml php7.4-zip rrdtool snmp snmpd whois unzip python3-pymysql python3-dotenv python3-redis python3-setuptools python3-systemd

Adding User for LibreNMS

Adding user into LibreNMS

useradd librenms -d /opt/librenms -M -r -s "$(which bash)"

Clone LibreNMS from github

Change the directory to cd /opt Then run this script git clone https://github.com/librenms/librenms.git

After that, Setting Permission for LibreNMS

chown -R librenms:librenms /opt/librenms

chmod 771 /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/

Installing PHP dipendencies

su - librenms

./scripts/composer_wrapper.php install --no-dev

exit

If this script fails, The workaround is to install the composer package manually.

wget https://getcomposer.org/composer-stable.phar
mv composer-stable.phar /usr/bin/composer
chmod +x /usr/bin/composer

Set timeZone for LibreNMS

In this link you can select your timezone https://php.net/manual/en/timezones.php (Asia/ Colombo)

Ensure date.timezone is set in php.ini to your preferred time zone. (you can use nano or vi to edit)

vi /etc/php/7.4/fpm/php.ini

vi /etc/php/7.4/cli/php.ini

(;date.timezone = Asia/Colombo (remove ";" and add Asia/ Colombo))

set the time zone

timedatectl set-timezone Etc/UTC (Asia/ Colombo)

Configuring Maria DB

Use vi or nano to edit

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

Add these within the [mysqld]

innodb_file_per_table=1

lower_case_table_names=0

after adding the above lines, save and exit. Then, enable and restart the DB

systemctl enable mariadb

systemctl restart mariadb

loggin to the db

mysql -u root

now you have to create a database for LibreNMS

NOTE: Change the 'password' below to something secure.

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

Configure PHP-FPM

cp /etc/php/7.4/fpm/pool.d/www.conf /etc/php/7.4/fpm/pool.d/librenms.conf

vi /etc/php/7.4/fpm/pool.d/librenms.conf

Change [www] to [librenms]

[librenms]

Change user and group to "librenms":

user = librenms

group = librenms

Change listen to a unique name:

add the below line

listen = /run/php-fpm-librenms.sock

before this ;listen = /run/php/php7.4-fpm.sock

Web server configuration

Editing librenms configuration file

vi /etc/nginx/conf.d/librenms.conf

edit server_name as required:

server {
 listen      80;
 server_name librenms.learn.com; (used learn as example, you can use your institute name)
 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 ~ [^/]\.php(/|$) {
  fastcgi_pass unix:/run/php-fpm-librenms.sock;
  fastcgi_split_path_info ^(.+\.php)(/.+)$;
  include fastcgi.conf;
 }
 location ~ /\.(?!well-known).* {
  deny all;
 }
}

restart nginx and php

rm /etc/nginx/sites-enabled/default

systemctl restart nginx

systemctl restart php7.4-fpm

Enable lnms command completion

ln -s /opt/librenms/lnms /usr/bin/lnms

cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

Configure snmpd

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

vi /etc/snmp/snmpd.conf

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

systemctl enable snmpd

systemctl restart snmpd

Cron job

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

Copy logrotate config

LibreNMS keeps logs in /opt/librenms/logs. Over time these can become large and be rotated out. To rotate out the old logs you can use the provided logrotate config file:

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

Web installer

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

Final Steps

Use your Ip address in the browser and you will load the below setup page. (Using Windows Inside Xp)

Troubleshooting

sudo su - librenms

./validate.php

Login in to LibreNMS

Once you finish setting up , its time to log into the system. Use your IP address in the browser and you will load the below page.In here the web installer will prerequisite check.

Next, Provide MySQL server connection details and build a database for LibreNMS network monitoring software.

Creating User

Finish Installation

Click on 'Validate your Install' Then, you will direct to LibreNMS login page. Use your credentials to log in.

Adding a device

To add a device click on Devices and click on Add Devices

Once you click on Add Device you will appear the below page. By entering Hostname or IP and Community you can add a device to the system.

Attachments (7)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.