GNU/Linux

CentOS 7 – Install LibreNMS dan Oxidized (Parts 1)

September 21, 2018

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 . . .

Leave a Reply

Your email address will not be published. Required fields are marked *