Install LibreNMS di Ubuntu 22.04

NGINX

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

Tambahkan user librenms. (direkomendasikan pindah dulu ke shell bash)

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 dependensi PHP. (gunakan shell bash, jika ditanya password tekan enter saja)

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

Saat ini kita sedang berada di user librenms, ketik exit untuk keluar kembali menjadi user root.

Set timezone FPM.

nano /etc/php/8.1/fpm/php.ini

Ubah baris ;date.timezone = menjadi:

date.timezone = Asia/Jakarta

Set timezone CLI.

nano /etc/php/8.1/cli/php.ini

Ubah baris ;date.timezone = menjadi:

date.timezone = Asia/Jakarta

*Catatan: pastikan menghapus komentar atau tanda ;

Sete timezone system.

timedatectl set-timezone Asia/Jakarta

Konfigurasi MariaDB

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

Pada bagian[mysqld] tambahkan:

innodb_file_per_table=1
lower_case_table_names=0

Sehingga menjadi seperti berikut:

Restart service MariaDB.

systemctl enable mariadb
systemctl restart mariadb

Jalankan secure instlasai mariadb, caranya bisa dilihat Disini

Buat database untuk librenms, login kedalam mysql.

mysql -u root -p

Buat database.

CREATE DATABASE librenms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Buat user.

CREATE USER 'librenms'@'localhost' IDENTIFIED BY 'password';

Berikan izin.

GRANT ALL PRIVILEGES ON librenms.* TO 'librenms'@'localhost';
exit;

Konfigurasi PHP-FPM.

Salin konfigurasi.

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

Edit.

nano /etc/php/8.1/fpm/pool.d/librenms.conf

Ubah [www] menjadi [librenms]:

[librenms]

Sehingga menjadi seperti ini.

Ubah user and group menjadi “librenms”:

Dari

user = www-data
group = www-data

Menjadi

user = librenms
group = librenms

Sehingga menjadi seperti ini:

Ubah parameter listen.

Dari

listen = /run/php/php8.1-fpm.sock

Menjadi

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

SAVE.

Konfigurasi Web Server.

Buat VirtualBlock

nano /etc/nginx/conf.d/librenms.conf

Isikan seperti berikut:

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;
 }
}

Hapus konfigurasi default NGINX (optional) atau disable juga bisa.

rm /etc/nginx/sites-enabled/default

Restart NGINX.

systemctl restart nginx

Restart PHP.

systemctl restart php8.1-fpm

Enable lnms command completion

ln -s /opt/librenms/lnms /usr/bin/lnms
cp /opt/librenms/misc/lnms-completion.bash /etc/bash_completion.d/

Konfigurasi SNMPD

Salin file konfigurasi.

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

Edit.

nano /etc/snmp/snmpd.conf

Sesuaikan comunity dengan community yang digunakan.

Belum dipelajari yang penting jalan dulu. wkwk

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

Buat cronjob.

Salin dari template yang sudha ada.

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

Aktifkan scheduler.

cp /opt/librenms/dist/librenms-scheduler.service /opt/librenms/dist/librenms-scheduler.timer /etc/systemd/system/
systemctl enable librenms-scheduler.timer
systemctl start librenms-scheduler.timer

Copy logrotate config

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

Jalankan Web installer

Buka halaman http://librenms.example.com/install (Sesuaikan dengan VirtualBlock yang kamu buat)

Pastikan semuanya sudah OK.

Di konfigurasi database, sesuaikan dengan database yang telah kita buat di mysql tadi.

Pastikan sudah oke dan klik Build Database.

Pastikan hasilnya sudah oke semua.

Di menu ini buat akun/user admin

Hasil setelah membuat user/akun.

Selanjutnya konfigurasi tambahan mengenai update channel dan tema.
Direkomendasikan update channel menggunakan monthly agar update dilakukan secara 1 bulan sekali.

Setelah klik Finish Install.

Setelah instalasi selesai akan diarahkan ke halaman login, masuk dengan akun/user yang telah kita buat tadi.

Setelah instalasi selesai ubah permissions.

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

Troubleshoot

Mengubah base URL

lnms config:set base_url http://librenms.kingpolah.net:8098/

Sumber/referensi:

https://docs.librenms.org/Installation/Docker/