wiki:NSM2021/Agenda/Librenms

Version 30 (modified by tuwan, 4 years ago) ( diff )

--

Configuring LibreNMS on Single server Multi virtual host environment

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 Installed.
  • SSL/ HTTPS Certificates issued ( May be using Letsencrypt or Otherwise)
  • 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 fron 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.

Error: Failed to load processor bash
No macro or processor named 'bash' found

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

set the time zone

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

;date.timezone = Asia/Colombo (remove ";" and add 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

Error: Failed to load processor bash
No macro or processor named 'bash' found

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:

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

Web server configuration

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

edit server_name as required:

Error: Failed to load processor bash
No macro or processor named 'bash' found

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

Troubleshooting

sudo su - librenms

./validate.php

Attachments (7)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.