How To Install LibreNMS on Ubuntu with Nginx | [SLOVED] Pre-installation Checks Error
Install Required Packages
https://ipcorenetworks.blogspot.com/2021/05/how-to-install-librenms-on-ubuntu-with.html
https://docs.librenms.org/Installation/Install-LibreNMS/
NGINX
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
Add librenms user
useradd librenms -d /opt/librenms -M -r -s “$(which bash)”
Download LibreNMS
cd /opt
git clone https://github.com/librenms/librenms.git
Set permissions
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/
Install PHP dependencies
su – librenms
./scripts/composer_wrapper.php install –no-dev
exit
Sometime when there is a proxy used to gain internet access, the above script may fail. The workaround is to install the composer package manually. For a global installation:
wget https://getcomposer.org/composer-stable.phar
mv composer-stable.phar /usr/bin/composer
chmod +x /usr/bin/composer
Set timezone
See https://php.net/manual/en/timezones.php for a list of supported timezones. Valid examples are: “America/New_York”, “Australia/Brisbane”, “Etc/UTC”. Ensure date.timezone is set in php.ini to your preferred time zone.
vi /etc/php/7.4/fpm/php.ini
vi /etc/php/7.4/cli/php.ini
Remember to set the system timezone as well.
timedatectl set-timezone Etc/UTC
Configure MariaDB
Ubuntu 20.04
vi /etc/mysql/mariadb.conf.d/50-server.cnf
CentOS 8 Debian 10
Within the [mysqld] section add:
innodb_file_per_table=1
lower_case_table_names=0
systemctl enable mariadb
systemctl restart mariadb
mysql -u root
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
Ubuntu 20.04
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
CentOS 8 Debian 10
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
Configure Web Server
Ubuntu 20.04
NGINX
vi /etc/nginx/conf.d/librenms.conf
Add the following config, edit server_name as required:
server {
listen 80;
server_name librenms.example.com;
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;
}
}
rm /etc/nginx/sites-enabled/default
systemctl restart nginx
systemctl restart php7.4-fpm
Apache
CentOS 8 Debian 10
SELinux
Ubuntu 20.04
SELinux not enabled by default
CentOS 8 Debian 10
Allow access through firewall
Ubuntu 20.04
Firewall not enabled by default
CentOS 8 Debian 10
Enable lnms command completion
This feature grants you the opportunity to use tab for completion on lnms commands as you would for normal linux commands.
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
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
systemctl enable snmpd
systemctl restart snmpd
Cron job
cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
#librenms #ubuntu #nginx
ubuntu