Cara Install Icinga2 di VPS - NimeTech.com

Jul 18, 2019 DevOps

Cara install Icinga2 di CentOS [how to]

Apa itu Icinga2

Buat kalian yang sering manage server pasti membutuhkan tools monitoring server untuk memantau aktivitas kinerja server. Di artikel Cara install Icinga2 di CentOS kali ini merupakan artikel yang akan membahas bagaimana caranya install tools monitoring server Icinga2 di VPS CentOS kalian. Apa sih itu Icinga2? Icinga2 merupakan sebuah tools monitoring sistem dan network yang berbasis open source. Icinga merupakan project tools monitoring yang dikembangkan dari tools monitoring Nagios.

Dengan memberikan tampilan interface web yang lebih friendly, Icinga memberikan kemudahan kepada usernya dalam membaca data alert yang muncul pada monitoringnya. Bagaimana cara install Icinga2 di VPS CentOS? simak langkah-langkah berikut ini.

Cara install Icinga2 di VPS

  1. LEMP Preparation

Pertama, untuk membuat server monitoring icinga2 yang perlu kalian install adalah LEMP Stack seperti di panduan sebelumnya (Baca : Cara Install LEMP) atau kalian bisa ikuti command berikut ini untuk install LEMP Stack :

yum install epel-release wget curl vim -y
yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
yum-config-manager --enable remi-php72
yum install -y nginx php php-common php-fpm php-mysql php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml php-pecl-apc php-cli php-pear php-pdo php-intl php-ldap php-imagick php-ZendFramework php-ZendFramework-Db-Adapter-Pdo-Mysql mysql-server

Setelah LEMP terinstall kalian bisa mengaktifkan dan menjalankan servicenya dengan command berikut ini :

systemctl enable nginx
systemctl start nginx

systemctl enable php-fpm
systemctl start php-fpm

systemctl enable mysqld
systemctl start mysqld
  1. Install Icinga2

  • Add Repository Icinga2

Selanjutnya jika LEMP Stack telah terinstall kalian bisa lanjut untuk menginstall Icinga2. Untuk dapat menginstall Icinga2 kalian perlu menambahkan dahulu repository official dari Icinga2 dengan command berikut ini :

rpm --import http://packages.icinga.org/icinga.key 
rpm -i http://packages.icinga.org/epel/7/release/noarch/icinga-rpm-release-7-1.el7.centos.noarch.rpm
yum install -y centos-release-scl
  • Install Package Icinga2 & Icinga2 Web

Kemudian jika sudah menambahkan repository Icinga2, untuk command install package icinga2 kalian bisa mengikuti command berikut ini :

yum install icinga2 icingacli icingaweb2 icinga2-ido-mysql nagios-plugins-all -y

Lalu untuk mengaktifkan dan menjalankan service icinga2 kalian bisa menggunakan command berikut ini :

systemctl enable icinga2
systemctl start icinga2
  • Enable fitur IDO MySQL

Oh ya, perlu di ingat Icinga2 ini memerlukan sebuah database untuk menyimpan dan menampung beberapa konfigurasi dan alert-alert untuk monitoringnya. Untuk database Icinga2 bisa menggunakan PostgreSQL ataupun MySQL, dan di artikel ini menggunakan MySQL sebagai databasenya agar lebih familiar saat proses konfigurasinya.

Dan untuk mengaktifkan fitur database mysql di Icinga2 kalian perlu menjalankan command berikut ini :

icinga2 feature enable ido-mysql
  • Import database Icinga2

Setelah mengaktifkan fitur database mysql di Icinga2 kalian perlu membuat 2 database dengan 2 user yang berbeda. Yang pertama yaitu database untuk Icinga2 itu sendiri dan yang kedua database untuk web interfacenya yaitu Icinga2 Web. Langsung saja untuk membuat databasenya kalian bisa mengikuti command berikut ini

mysql -u root

create database icinga2;
grant all privileges on icinga2.* to 'icinga2user'@'localhost' identified by 'strong_password';
flush privileges;

create database icingaweb2;
grant all privileges on icingaweb2.* to 'icingaweb2user'@'localhost' identified by 'strong_password';
flush privileges;
exit;

Langkah terakhir sesudah membuat database kalian perlu import schema database Icinga2 yang sudah tersedia di folder /usr/share/icinga2-ido-mysql/schema, untuk importnya kalian cukup menjalankan command ini :

mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql
  1. Install Icinga2 Web

  • Konfigurasi VirtualHost NGINX

Setelah installasi dan konfigurasi pada Icinga2 selanjutnya konfigurasi untuk Icinga2 Web atau interface web-based Icinga2 yang digunakan untuk menampilkan monitoringnya. Agar tampilan interface Icinga2 bisa diakses melalui url kalian perlu setting virtualhost untuk Icinga2 Web, dan agar lebih mudah membuat virtualhostnya kalian cukup jalankan command berikut ini :

icingacli setup config webserver nginx

Nanti akan muncul konfigurasi virtualhost kurang lebih seperti berikut ini :

location ~ ^/icingaweb2/index\.php(.*)$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /usr/share/icingaweb2/public/index.php;
        fastcgi_param ICINGAWEB_CONFIGDIR /etc/icingaweb2;
        fastcgi_param REMOTE_USER $remote_user;
   }

   location ~ ^/icingaweb2(.+)? {
        alias /usr/share/icingaweb2/public;
        index index.php;
        try_files $1 $uri $uri/ /icingaweb2/index.php$is_args$args;
   }

Masukan konfigurasi virtualhost tersebut pada file virtualhost icinga.conf dengan command berikut ini :

vim /etc/nginx/conf.d/icinga.conf

Dan lakukan sedikit modifikasi konfigurasi virtualhostnya sehingga menjadi seperti berikut ini :

server {
   server_name icinga.domain.com;
   root /usr/share/icingaweb2/;

   location ~ ^/icingaweb2/index\.php(.*)$ {
        fastcgi_pass unix:/var/run/php-fpm/php72-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /usr/share/icingaweb2/public/index.php;
        fastcgi_param ICINGAWEB_CONFIGDIR /etc/icingaweb2;
        fastcgi_param REMOTE_USER $remote_user;
   }

   location ~ ^/icingaweb2(.+)? {
        alias /usr/share/icingaweb2/public;
        index index.php;
        try_files $1 $uri $uri/ /icingaweb2/index.php$is_args$args;
   }

}
  • Konfigurasi PHP-FPM

Nah, karena di konfigurasi virtualhost NGINX menggunakan PHP-FPM, maka kalian perlu konfigurasi juga php-fpm. Untuk edit konfigurasi php-fpm silakan kalian gunakan command berikut ini :

vim /etc/php-fpm.d/www.conf

Kemudian pada baris-baris berikut ini dan silakan kalian ubah
pertama cari baris listen :

listen = 127.0.0.1:9000

ubah menjadi :

listen = /var/run/php-fpm/php72-fpm.sock;

kedua cari baris listen.owner dan listen.group :

;listen.owner = nobody
;listen.group = nobody

Ubah menjadi :

listen.owner = nginx
listen.group = nginx

terakhir, ubah baris user dan group :

;user = apache
;group = apache

Ubah menjadi :

user = apache
group = apache
  • Change Owner root directori Icinga2 Web

Karena root document icingaweb ada di path /usr/share/icingaweb2 maka perlu kalian ubah owner path tersebut ke nginx, untuk merubah owner path folder silakan kalian ikuti command berikut :

chown -R nginx:nginx /usr/share/icingaweb2/
  • Konfigurasi ido-mysql.conf

Terakhir untuk konfigurasi pada Icinga2 Web kalian perlu menambahkan kredential database di ido-mysql.conf, untuk command edit filenya bisa ikuti command ini :

vim /etc/icinga2/feature-enabled/ido-mysql.conf

Kemudian ubah konfigurasi yang ada menjadi kurang lebih seperti ini :

/**
 * The IdoMysqlConnection type implements MySQL support
 * for DB IDO.
 */
library "db_ido_mysql"

object IdoMysqlConnection "ido-mysql" {
  //user = "icinga"
  //password = "icinga"
  //host = "localhost"
  //database = "icinga"
  user = "icinga2user"
  password = "strong_password"
  host = "localhost"
  database = "icinga2"
}
  1. Setup IcingaWeb Web-based Interface

  • Generate Token Icinga2

Untuk dapat mengakses Icinga2 melalui Web-based Interfacenya kalian perlu melakukan konfigurasi web-basednya terlebih dahulu. Sebelumnya silakan siapkan token Icinga2 terlebih dahulu, kalian bisa generate tokennya dari command berikut ini :

icingacli setup token create

dan jika kalian lupa token yang sudah tergenerate kalian bisa cek melalui command ini :

icingacli setup token show
  • Konfigurasi Icinga2 Web

Selanjutnya setelah generate token silakan kalian akses url http://subdomain.namadomain.com/icingaweb2/setup
Nanti akan muncul tampilan kurang lebih seperti berikut ini :
Cara Install Icinga di CentOS - NimeTech.com

Silakan kalian isikan token kalian dan klik Next untuk ke langkah selanjutnya.

Kemudian akan muncul konfigurasi Modules, silakan kalian pilih sesuai kebutuhan kalian. Klik Next untuk ke tahap konfigurasi berikutnya.

Di bagian Requirement jika semua sudah terinstall kalian bisa klik Next untuk ke tahap selanjutnya.

Pada Configuration – Authentication pilih Database dan kemudian klik Next untuk ke konfigurasi selanjutnya.

Nah, kemudian masukkan kredensial MySQL database yang icingaweb2 dengan user icingaweb2user, kalau sudah bisa kalian coba klik Validate Configuration untuk mengecek apakah kredensialnya sudah benar atau belum. Jika sudah benar kredensialnya kalian bisa klik Next

Di Authentication Backend silakan isi Backend Name dengan icingaweb2 dan silakan langsung klik Next

Lalu buat kredensial user login icinga2 pada bagian Configuration – Administration setelahnya silakan klik Next

Selanjutnya pada bagian Configuration – Application Configuration, kalian bisa setting sesuai dengan image diatas dan klik Next

Kemudian akan muncul halaman konfirmasi konfigurasi, jika sudah sesuai dan benar bisa lanjut klik Next

Di halaman Confiuration – Welcome to the configuration of the monitorign module for Icinga Web2! kalian bisa klik Next untuk langsung lanjut.

Selanjutnya setting di halaman Configuration – Monitoring Backend. Di bagian ini kalian bisa isi pada Backend Name dengan icinga dan Backend Type bisa pilih IDO

Sama seperti halnya di bagian Configuration – Database Resource, di bagian Configuration – Monitoring IDO Resource kalian perlu input kredensial database. Nah, silakan isikan database name icinga2 dan usernya icinga2user untuk database Monitoring pada Icinga2. Selanjutnya bisa klik Validate Configuration untuk cek konfigurasinya sudah benar atau belum, jika sudah benar klik Next untuk lanjut.

Untuk Configuration – Command Transport cukup kalian ubah pada Transport Type menjadi Local Command File dan Klik Next

Configuration Monitoring Security - NimeTech.com

Di Monitoring Security kalau ingin menambahkan Protected Custom Variable kalian bisa ketikan di kolomnya, jika tidak ada tambahan kalian bisa klik Next

Confirmation Page Monitoring Backend - NimeTech.com

Dan nanti akan muncul halaman Configuration untuk konfirmasi bagian Monitoring Setup di Icinga2 Web dan bisa kalian klik Finish

Congratulations! Icinga Web 2 has been successfully set up - NimeTech.com

Jika sudah selesai konfigurasi Icinga2 Web akan muncul tampilan seperti image diatas tersebut.

  1. Pengujian

Ketika seluruh package dan web-based interface terinstall langkah terakhir adalah mencoba untuk akses Icinga2 melalui web browser. Untuk aksesnya kalian bisa coba akses url http://icinga.domain.com/icingaweb2

Nanti akan muncul halaman login ke dashboard Icinga2 seperti berikut ini :

Cara Install Icinga di CentOS - NimeTech.com

Silakan kalian coba untuk isikan username dan password kalian untuk loginnya, jika sukses akan muncul tampilan dashboard seperti berikut ini :

Cara Install Icinga di CentOS - NimeTech.com

Kesimpulan

Dengan menerapkan Icinga2 sebagai monitoring server, bisa mempermudah para pengguna server dalam hal antisipasi server ketika down karena akan terdeteksi lebih mudah dan bisa menangani lebih cepat terkait issue yang muncul. Dengan mengikuti artikel Cara install Icinga2 di CentOS kalian bisa melakukan installasi tools monitoring ini sendiri pada VPS/Server kalian.

Apabila kalian mengalami kendala, kami NimeTech.com siap membantu kalian dalam Jasa Manage VPS/Server