Jika teman-teman mencari tools yang dapat digunakan untuk memonitoring perangkat jaringan, server, atau bahkan memonitoring service yang berjalan pada suatu server. Teman-teman dapat mencoba menggunakan LibreNMS. Sebelum teman-teman memutuskan untuk menginstall ada baiknya coba versi demonya terlebih dahulu untuk mengetahui kekurangan dan kelebihannya.
live demo : https://www.librenms.org/
Yang menarik dari LibreNMS bisa di integrasikan dengan Oxidized, yaitu tools yang digunakan untuk melakukan backup konfigurasi perangkat jaringan. Untuk detail perangkat yang di support bisa di cek di halaman github dari Oxidized https://github.com/ytti/oxidized
Jadi, goals dari catatan ini adalah installasi LibreNMS untuk monitoring perangkat jaringan yang terintergasi dengan Oxidized sebagai backup configuration tools. 😀
Oke, . . .
Karena catatan berikut akan sedikit panjang, disarankan menyiapkan kopi dan cemilan agar tidak bosan.
Berikut adalah panduannya.
Pertama, pastikan teman-teman sudah menyiapkan server yang siap digunakan, disini saya menggunakan VPS dengan OS CentOS 7 dengan kondisi Selinux disable.
Kedua, memiliki akses root atau setidaknya punya privileges sudo.
1. Install paket yang di butuhkan
# yum install epel-release
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install composer cronie fping git ImageMagick jwhois mariadb mariadb-server mtr MySQL-python net-snmp net-snmp-utils nginx nmap php72w php72w-cli php72w-common php72w-curl php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-process php72w-snmp php72w-xml php72w-zip python-memcached rrdtool
2. Menambahkan user librenms
# useradd librenms -d /opt/librenms -M -r
# usermod -a -G librenms nginx
3. Download LibreNMS
# cd /opt
# composer create-project --no-dev --keep-vcs librenms/librenms librenms dev-master
4. Database Server – Konfigurasi Mysql
# systemctl start mariadb
# mysql -u root
buat database dengan nama ‘librenms’, user ‘librenms’, dan password ‘librenms123’ dengan perintah berikut di MySQL queries
CREATE DATABASE librenms CHARACTER SET utf8 COLLATE utf8_unicode_ci;
CREATE USER ‘librenms’@’localhost’ IDENTIFIED BY ‘librenms123’;
GRANT ALL PRIVILEGES ON librenms.* TO ‘librenms’@’localhost’;
FLUSH PRIVILEGES;
exit
Setelah database berhasil di buat, edit /etc/my.cnf dan tambahkan line berikut di bawah [mysqld]
innodb_file_per_table=1
sql-mode=""
lower_case_table_names=0
# nano /etc/my.cnf
Enable dan restart service mariadb
# systemctl enable mariadb
# systemctl restart mariadb
5. Konfigurasi Web Server
Konfigurasi php-fpm
Edit file /etc/php.ini sesuaikan timezone dan edit bagian berikut ini
cgi.fix_pathinfo=0
memory_limit = -1
date.timezone = Asia/Jakarta
Jalankan perintah berikut untuk mengganti sistem timezone
# ln -sf /usr/share/zoneinfo/Asia/Jakarta /etc/localtime
Cek apakah timezone sudah berubah dengan perintah
# timedatectl
Buka file konfigurasi untuk php-fpm
# nano /etc/php-fpm.d/www.conf
Edit pada bagian berikut menjadi
listen = /var/run/php-fpm/php-fpm.sock
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Enable dan restart php-fpm
# systemctl enable php-fpm
# systemctl restart php-fpm
Konfigurasi NGINX
Edit /etc/nginx/conf.d/librenms.conf pada bagian server_name sesuaikan dengan nama domain yang akan digunakan, kalau tidak menggunakan nama domain bisa di isi dengan ip address dari server.
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 /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-fpm/php-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Enable dan restart service nginx
# systemctl enable nginx
# systemctl restart nginx
Install firewalld dan policycoreutils-python
# yum -y install firewalld policycoreutils-python
Enable dan restart firewalld
# systemctl enable firewalld
# systemctl restart firewalld
Open http, https, dan port snmp di firewall
# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --add-port=161/udp --permanent
Reload firewall dan cek service yang sudah kita tambahkan
# firewall-cmd --reload
# firewall-cmd --list-all
Konfigurasi snmpd
# cp /opt/librenms/snmpd.conf.example /etc/snmp/snmpd.conf
# nano /etc/snmp/snmpd.conf
Edit RANDOMSTRINGGOESHERE
dengan nama snmp yang akan digunakan
# 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
Konfigurasi Cron job
# cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms
Copy konfigurasi logrorate
# cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms
Set permissions
# chown -R librenms:librenms /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/
6. Web Installer
Sampai disini konfigurasi dasar untuk LibreNMS sudah selesai. Langkah selanjutnya yaitu konfigurasi via web installer.
Akses web installer LibreNMS dengan nama URL/ip address yang digunakan.
http://librenms.example.com/install.php
Ikuti proses installasi via web installer sampai selesai, pada bagian akhir akan ada notif bahwa kita perlu membuat file config.php
# cd /opt/librenms/
# nano config.php
# chown librenms:librenms config.php
Validasi konfigurasi
Kita dapat melihat validasi dari konfigurasi LibreNMS yang sudah kita install dengan perintah
# cd /opt/librenms
# ./validate.php
LibreNMS sudah running dan sudah bisa digunakan untuk memonitoring perangkat jaringan.
Untuk installasi dan integrasi LibreNMS dengan Oxidized akan berlanjut ke catatan berikutnya . . .