Tutorial Linux
Indonesia -- Analisi
log selalu menjadi bagian penting
dari administrasi system, tetapi ini
adalah tugas yang sangat membosankan, melelahkan dan
sangat jenuh.
Terutama ketika
berhadapan dengan sejumlah system
yang sedang bermasalah. Sekarang jangan khawatir, karena ada
Elastic stack telah meringankan
kerjaan utama kita.
Elastic search stack
sekarang digunakan untuk melakukan
analisa log dan merupakan
kombinasi dari 3 produk elastic stack yang
terpenting adalah
1.
Elastic search
ini merupakan database No-Sql yang melakukan index
data dan menyimpan
informasi.
2.
Kibana ini merupakan Dashboard yang
menyediakan GUI ( Graphical User Inrface ) dan
digunakan untuk melakukan
visualisasi data yang
bekerja di bawah
elastic search.
3.
Logstash merupakan
agent elastic search yang
digunakan untuk mengumpulkan dan memisahkan
log yang penting saja dari
beberapa log yang sudah berhasil di kumpulkan.
Elastic stack
menerima log dari client menggunakan protocol
beats. Dikirim menggunakan beats
dari client.
Dalam tutorial ini,
kita akan membuat elk stack
pada OS Centos 7
dan juga akan
menginstall beat client bernama filebeat
pada server client.
Pada tutorial ini,
kita akan melakukan beberapa langkah, di antaranya:
Langkah
1 - Instalasi Java
Langkah 2 - Instalas
dan Konfigurasi Elastic Search
Langkah
3 - Install dan Konfigurasi Logstash
Langkah 4 - Install
dan Konfigurasi Kibana Dashboards
Langkah
5 - Install dan Konfigurasi
FileBeat pada klient di CentOS 7
Langkah 6 -
Install dan Konfigurasi FileBeat
pada klient di FreeBSD 11
Langkah
7 - Install dan Konfigurasi MetricBeat pada klient di Centos 7
Langkah 8 - Menambahkan Visualisasi di Kibana Dashboards
Langkah 9 –
Buat Dashboard di
Kibana
Persiapan
1.
CentOS 7 dengan
Ram 8 GB – devcluster.bagol69.com ( 10.10.10.1 )
2.
CentOS 7 dengan
Ram 4 GB – Hostingdev.bagol69.com ( 10.10.10.2)
3.
FreeBSD 11 dengan Ram 3 GB – relay.bagol69.com (
10.10.10.3 )
Langkah 1 - Instalasi
Java
Pertama yang
kita lakukan adalah
install java terlebih
dahulu di server
elk stack.
Kita dapat
install java menggunakan
perintah di bawah ini.
[root@devcluster ~]# yum install java-1.8.0-openjdk-devel –y
Langkah 2 - Instalasi dan Konfigurasi Elastic Search
Sekarang kita mulai
dengan menambahkan repository
elastic search di server
ELK Stack kita.
[root@devcluster ~]# nano /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-6.x]
name=Elasticsearch repository
for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Lakukan import kunci GPG untuk elasticsearch.
[root@devcluster ~]#rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Pastikan repository
elastic search sudah ada di
server ELK STACK.
[root@devcluster ~]# yum clean all
[root@devcluster ~]# yum makecache
Sekarang, kita
dapat instalasi elastic search menggunakan perintah
di bawah ini.
[root@devcluster ~]# yum -y install elasticsearch
Kita dapat
melakukan limitasi penggunaan
ram untuk elastic search. Karena
elastic search menggunakan java.
Java sangat
boros menggunakan ram,
untuk mengurangi beban ram di server
ELK STACK. Maka itu, kita
batasi ram untuk
elastic search.
Dengan catatan 50 % dari
ram total. Misalnya kita
mengunakan ram di
server ELK STACK 4
Gb, karena itu kita
batasi hanya 2GB.
[root@devcluster ~]# nano
/etc/elasticsearch/jvm.options
-Xms2g
-Xmx2g
Kita edit sedikit
konfigurasi elastic search. Konfigurasi elk stack di
file elasticsearch.yml
[root@devcluster ~]# nano /etc/elasticsearch/elasticsearch.yml
Silahkan ikutin perintah
di bawah ini.
bootstrap.memory_lock: true
network.host: 10.10.10.1
http.port: 8001
Perhatian !!!
Bootstrap.memory_lock
kita aktifkan memory lock
di elk stack, karena sudah kita batasi
penggunanan memory di jvm.options
sebelumnya. Supaya dapat bekerja
dengan lancer elk stacknya.
Network.host
Masukan ip address
server elk stack
kita. Disni saya masukan
ip addresnya 10.10.10.1
http.port
Secara default elk
stack menggunakan port 9002, tetapi disni tidak menggunakan port
9002 tapi menggunakan port 8001.
Sesuaikan
dengan kebutuhan kalian
ya guys.
Sekarang kita memulai layanan dan juga
mulai pada saat boot.
[root@devcluster ~]# systemctl enable --now elasticsearch
[root@devcluster ~]# systemctl start elasticsearch
[root@devcluster ~]# systemctl restart elasticsearch
Jika kalian menggunakan firewall
di server elk stack, silahkan
izinkan port 8001 tcp di firewall os.
Jika firewall sedang berjalan.
[root@devcluster ~]# firewall-cmd
-–permanent –add-port 8001/tcp
[root@devcluster ~]#firewall-cmd
reload
Kita sekarang akan
menguji elastic search sudah
berjalan dengan normal.
[root@devcluster ~]# curl http://10.10.10.1:8001
Perintah yang
di keluarkan harus seperti
dibawah ini.
{
"name" : "eln8r-W",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "AaIa2ScjQ2CYiQ9Jw394aA",
"version" : {
"number" : "5.6.14",
"build_hash" : "f310fe9",
"build_date" : "2018-12-05T21:20:16.416Z",
"build_snapshot" : false,
"lucene_version" : "6.6.1"
},
"tagline" : "You Know, for Search"
}
Langkah 3 - Instalasi dan Konfigurasi Logstash
Untuk dapat
instalasi logstash, kalian
harus sudah punya
repository elastic search
terlebih dahulu.
Sekarang kita
akan instalasi logstash,
menggunakan perintah di
bawah ini.
[root@devcluster ~]# yum -y install logstash
Sekarang kita lakukan
konfigurasi logstash.
Logstash ini berfungsi
untuk mengumpulkan log dan melakukan
parsing log (
memisahkan log ).
File beats-input.conf digunakan untuk menerima log
dari server client yang
dikirimkan melalui beats.
[root@devcluster conf.d]# nano
/etc/logstash/conf.d/02-beats-input.conf
Nantinya di sisi
server client akan di install
filebeats untuk melempar log
dari server client ke
server elk stack.
Mengunakan beats.
input {
beats {
port =>
8000
}
}
Perhatian !!!
Secara default
logstash menggunakan port 5044, tetapi disini
saya menggunakan port 8000.
Sebelumnya sudah selesai
buat file untuk
menerima log dari server client, sekarang kita
buat file untuk mengirimkan
log server client
yang sudah di
tamping di logstash ke
elastic search.
[root@devcluster conf.d]# nano
/etc/logstash/conf.d/30-elasticsearch-output.conf
Silahkan masukan
perintah di bawah
ini.
output {
elasticsearch
{
hosts =>
["10.10.10.1:8001"]
manage_template => false
index =>
"%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
}
if
"_grokparsefailure" not in [tags] {
elasticsearch {
hosts
=> ["10.10.10.1:8001"]
sniffing
=> true
manage_template => false
index
=> "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
document_type => "%{[@metadata][type]}"
}
}
}
Sekarang kita
restart layanan logstash
menggunakan perintah di bawah ini.
[root@devcluster conf.d]# systemctl restart logstash
[root@devcluster conf.d]# systemctl enable logstash
Langkah 4 - Instalasi dan Konfigurasi Kibana
Dashbaords
Kami sekarang
akan menginstall kibana
dashboards, sebelum melakukan
instalasi kibana. Kita di haruskan
menambahkan repository elastic
search terlebih dahulu.
Kita dapat
melakukan instalasi kibana
menggunakan perintah di bawah
ini.
[root@devcluster ~]# yum -y install kibana
Sekarang kita edit konfigurasi kibana menggunakan
perintah di bawah ini.
[root@devcluster
~]# nano /etc/kibana/kibana.yml
Masukan perintah
ini.
server.port:
8080
server.host:
"10.10.10.1"
server.name:
"devcluster.bagol69.com "
elasticsearch.url:
"http://10.10.10.1:8001"
Perhatian !!!
Secara default
kibana dashboards menggunakan
port 5601. Tetapi di sini saya
menggunakan port 8080
untuk kibana dashboards.
Server.port
Kita dapat merubah
port kibana, sesuai dengan keinginan kita.
Server.host
Masukan alamat ip
address server elk
stack kita.
Server.name
Masukan hostname
dari server elk
stack kita.
Elasticsearch.url
Kita masukan
alamat server elastic search.
Kami sekarang
akan memulai layanan
kibana, mengunakan perintah di
bawah ini.
[root@devcluster
~]# systemctl enable --now kibana
[root@devcluster
~]# systemctl start kibana
[root@devcluster
~]# systemctl restart kibana
Kalian izinkan port
8080 di firewall.
Jika firewall os
kalian sedang berjalan.
[root@devcluster
~]# firewall-cmd –permanent –add-port 8080/tcp
[root@devcluster
~]# firewalld-cmd --reload
Kita dapat
mengakses kibana dashboard menggunakan link
di bawah ini. Alamat
ip address kalian
ganti dengan alamat
ip address server elk
stack.
Nanti akan
muncul tampilan dashboard
kibana kalian.
Langkah
5 – Instalasi dan Konfigurasi
FileBeat di CentOs 7 ( Client )
Beats adalah pengirim data,agen
ringan yang dapat
di install pada server
client untuk mengirim sejumlah
besar data dari mesin
clients ke mesin
elastic search.
Ada 4
agent yang di sediakan
oleh Elastic Search yaitu FileBeats ( log files ) , Metric Beats ( Metric system
),WinlogBeat ( Windows Client event log ), Packet Beat ( Analytik Network ).
Kita akan
menginstall dan konfigurasi
Filebeat untuk melakukan transfer file
log data dari
mesin clients ke server
elastic search.
Sekarang kita install
paket filebeat menggunakan
perintah di bawah ini.
[root@hostingdev home]# yum install filebeat -y
Setelah selesai
instalasi filebeat, kita
dapat konfigurasi filebeat
untuk mengirimkan log.
[root@hostingdev home]# nano /etc/filebeat/filebeat.yml
kalian edit filebeat.yml seperti gambar di bawah ini.
Perhatian !!!
Pada baris type pilih
log untuk formatnya.
Pada baris
path, kalian dapat
berikan log server. Sesuaikan dengan kebutuhan kalian.
Pada baris document_type, kalian
berikan syslog. Karena format
log server itu
syslog.
Di sni, kita akan
menggunakan logstash untuk
menyimpan semua log
dari server client.
Lakukan uncomment pada baris
Output.logstash:
Hosts :
{“10.10.10.1: 8000 }
Perhatian !!!
Output. Logstash
Kita akan
mengatifkan logstash,
supaya log dari
server client di transfer
ke server logstash
( elk stack ).
Hosts:
Kalian masukan
alamt ip address server elk stack
yang sudah di install
logstash terlebih dahulu.
Jika sudah
konfigurasi filebeat di server
client, lakukan restart services filebeat menggunakan perintah di bawah ini.
[root@hostingdev
home]# services filebeat restart
[root@hostingdev
home]# services filebeat start
Sekarang, kita tambahkan agents filebeat di Kiban dashboard. Supaya dapat muncul
log server client yang sudah konfigurasi sebelumnya.
Buka kibana
dashboard kalian, menggunakan
alamat ip addres
atau domain anda.
Pergi ke menu Management
à Index Pattern
Tambahkan Index pattern
kalian, dengan cara klik create index pattern.
Nah disni
kalian masukan agent filebeat pada kolom index
pattern. Silahkan
ikutin seperti gambar di
bawah ini.
Jika sudah
berhasil menambahkan index
pattern. Secara otomatis
akan menampilkan log dari server
client di dashboard
kibana kalian. Seperti
gambar di bawah ini.
Sekarang kita
install filebeat di
system operasi FreeBSD 11, sebelumnya sudah berhasil instalasi
filebeat di system
operasi CentOS 7.
Secara konfigurasi filebeat sama saja, hanya ada
perbedaan di sisi file
saja. Kita dapat
instalasi filebeat di
freebsd menggunakan ports
yang sudah di sediakan oleh
freebsd.
[root@smtp-relay]#
cd /usr/local/ports/sysutils/beats
[root@smtp-relay]#
make install clean;
Sekarang, konfigurasi
filebeat di file
filebeat.yml
[root@smtp-relay]# nano /usr/loca/etc/filebeat.yml
Saatnya kita
konfigurasi filebeat.
Perhatian !!!
Type
Pada baris
type ini, kalian
pilih log.
Paths:
Kita masukan
file log yang
ingin di lakukan monitoring oleh
elk stack.
Input_type
Kalian tentukan
type apa yang mau
di monitoring. Di sini saya
masukan type log. Karena
saya ingin monitoring
log.
Document_type
Pada baris
Document_type, kalian berikan
syslog. Karena
format log adalah
syslog.
Sekarang, kita
pergi ke menu Logstash output.
Lakukan uncomment ( # ) pada
baris output.logstash dan hosts
Output.logstash
Pada baris
ini, kita lakukan uncomment. Supaya dapat
mengirim log dari server client
ke server logstash.
Hosts:ipanda:port
Kita masukan alamat
ip address dan
port logstashnya
Lakukan restart services
filebeat menggunakan perintah
di bawah ini.
[root@smtp-relay]# service filebeat restart
Stopping
filebeat.
Waiting
for PIDS: 74705.
Starting
filebeat.
Kita tidak perlu
lagi menambahkan index
pattern di kibana, karena sudah ada
pattern untuk filebeat
di kibana. tinggal tunggu
waktu saja, log dari server client
muncul di dashboard
kibana kalian.
Pada gambar
di bawah ini, menunjukan log
dari server client
yang menggunakan system operasi
FreeBSD sudah berhasil
mengirim log ke
dashboard kibana.
Langkah
7 – Instalasi dan Konfigurasi Metric Beat di CentOS 7
Metric Beat meruapakan
salah satu agent elk
stack, berfungsi untuk
mengirimkan metric seperti
memory usage, disk usage, cpu usage, network traffic.
Sebelum
melakukan instalasi metricbeat,
pastikan server client kalian
sudah ada repository elastic search. Kita
dapat instalasi metricbeat
menggunakan perintah di bawah
ini.
[root@hostingdev
home]# yum install metricbeat -y
Untuk konfigurasi
metric beat ada dua
file metricbeat.yml dan
metricbeat.reference.yml.
Sekarang kita
konfigurasi metricbeat di file
metricbeat.yml.
[root@hostingdev home]# nano
/etc/metricbeat/metricbeat.yml
Pada baris Kibana kalian
aktifkan setup.kibana. Supaya
dapat melakukan import
dashboard metricbeat langsung ke kibana
dashboardsnya.
Perhatian !!!
Setup.kibana
Kalian aktifkan kibana, dengan cara hilangkan
tanda pagar #
Hosts:ipanda:portkibana
Kalian masukan alamat
ip address kibana dengan
port kibana kalian, jangan lupa ya.
Pada menu
output, kalian pilih elasticsearch. Jangan pilih
output.logstash karena tidak
support untuk metricbeat. Pada dasarnya
logstash hanya menerima logs
dari server client, bukan metric.
Perhatian !!!
Output.elasticsearch
Kalian hilangkan
tanda (#) untuk mengaktifkan
perintah tersebut.
Hosts:ipanda:portanda
Kalian masukan
alamat ip address
elastic search dan port elastic
search kalian.
Untuk file metricbeat.reference, sedikit kita
konfigurasi untuk monitoring system server client, seperti cpu usage, memory usage, disk usage, network
usage.
[root@hostingdev
home]# nano /etc/metricbeat/metricbeat.reference.yml
Pergi ke menu modules
configuration untuk mengaktifkan
module system yang sudah tersedia sebelumnya. Seperti gambar di bawah ini.
Sekarang,kita aktikan layanan metricbeat
menggunakan perintah di
bawah ini.
[root@hostingdev
home]# service
metricbeat start
[root@hostingdev
home]# service
metricbeat restart
Lakukan import
dashboards sample yang
di miliki oleh metricbeat ke
dashboard kibana.
Menggunakan perintah bawah
ini.
[root@hostingdev
home]# metricbeat setup --dashboards
Loaded
dashboards
Jika sudah
berhasil melakukan import
dashboard metric dari server
client, akan muncul di kibana
dashboard seperti gambar di
bawah ini.
Salah satu
metric yang berhasil di monitoring
oleh elk stack.
Seperti gambar di
bawah ini.
Langkah
8 - Menambahkan Visualisasi di Kibana Dashboards
Sebelumnya,
kita sudah berhasil
instalasi filebeat dan metricbeat
di server client dan sudah berhasil monitoring log dan metric
di dashboard kibana.
Log dari server
client sudah di
kumpulkan di elastic
search, saatnya kita buat
visualisasi dari log
tertentu. Supaya memudahkan kita
untuk melakukan analisa terhadap
log yang
kita monitoring.
Pertama kita
buat visualisasi dari
sebuah log. Silahkan
buka dashboard kibana
kalian dan pergi ke menu
visualisasi dan tambahkan
( + ).
Pilih Graffik
untuk log kalian,
disni saya pilih
horizontal bar. Klik dua kali
graffik horizontal.
Pilih Index
dari agent mana,
kali ini saya
akan buat visualisasi
dari log server client
yang menggunakan agent
filebeat, maka dari
itu saya pilih
filebeat.
Untuk membuat
visualisasi dari sebuah log,
kita harus tahu
terlebih dahulu keyword yang
kita pakai apa
saja.
Kalian bisa
cari menggunakan discover
untuk mencari keyword log ya. Misalnya saya
ingin buat visualisasi
dari log invalid
login ssh.
Kemudian cari
keyword “invalid”, “login”,
“ssh” di discover
kibana dashboard. Seperti gambar
di bawah ini.
Saatnya buat
visualisasi dari log
yang kalian pilih.
Tambahkan add filter untuk
server client kalian.
Pada menu
filter pilih beats.hostname dan
pilih is, kemudian pilih
hostname server client.
Perhatian !!!
Beat.hostname merupakan
filter yang digunakan untuk
memilih log dari server client, bedasarkan hostname
server tersebut.
Tambahkan
filter kembali, untuk log “ invalid ssh”
Seperti gambar di bawah ini.
Tambahkan filter kembali. Seperti gambar di bawah ini.
Kemudian, kita save
visualisasi yang sudah berhasil
kita buat, dengan klik
save dan berikan
nama visualization.
Langkah
9 - Buat Dashboards
di Kibana
Pada tahap
ini, kita d apat buat
dashboards untuk server
client. Sebelum buat
dashboard untuk server,
pastikan sudah selesai buat
visualisasi terlebih dahulu.
Masuk ke
dashboard kibana kalian,
pilih dashboard dan
tambahkan ( + ).
Tambahkan ( add
) untuk menambahkan visualisasi
di dashboard yang sudah kalian buat.
Kalian bisa
pilih visualisasi yang
kalian inginkan, seperti
cpu usage, disk usage, memory
usage, network traffic
dll. Bisa kalian
tambahkan dengan klik dua
kali, pada visualisasi yang di pilih.
Jika sudah
melakukan pilih visualisasi
untuk dashboard server
client. Sekarang simpan
dashboard yang sudah di edit, dengan klik save
dan berikan nama dashboard.
Nanti akan
muncul seperti ini, dashboard yang
sudah dibuat. Kita
dapat melakukan monitoring
server client dengan mudah
dan efesien.
Kesimpulan
Elk-Stack dapat memberikan solusi
yang tepat dan efisien
untuk monitoring dan log
management server kalian.
Dashboard
ya pun, bias kita custome
( edit sendiri
) sesuai dengan kebutuhan kita.
Elastic
stack lebih ribet, susah dan
menantang, Tidak semudah deploy
zabbix yang mudah
praktis dan cepat.