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
-
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
-
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
-
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"
}
-
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 :
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
Di Monitoring Security kalau ingin menambahkan Protected Custom Variable
kalian bisa ketikan di kolomnya, jika tidak ada tambahan kalian bisa klik Next
Dan nanti akan muncul halaman Configuration untuk konfirmasi bagian Monitoring Setup di Icinga2 Web dan bisa kalian klik Finish
Jika sudah selesai konfigurasi Icinga2 Web akan muncul tampilan seperti image diatas tersebut.
-
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 :
Silakan kalian coba untuk isikan username dan password kalian untuk loginnya, jika sukses akan muncul tampilan dashboard seperti berikut ini :
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