• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Cara Lengkap Install dan Konfigurasi Elastic Stack 8 Debian 11

Last Updated on 1 March 2022 By tommy Leave a Comment

Elastic stack (Elasticsearch, Kibana dan Logstash) sangat populer dikalangan startup, karena kesusahan setup :) dan kemudahan untuk menggunakannya. Kali ini akan kita bahas cara lengkap untuk menginstall Elasticsearch, Kibana dan Logstash di Debian 11. Dibagian paling akhir kita akan membahas cara mengirim log dari internal ataupun external, sehingga sangat memudahkan bisa menggunakan AWS, GCP ataupun cloud provider yang memberikan akses lokal, ataupun multiple cloud.

Kebutuhan System

Kebutuhan minimal system
Memory : 4 GB
Hardisk : 20 GB
CPU : 1

Update dan Upgrade System

Ingat untuk selalu update system anda agar stabil dan mendapatkan update terbaru.

sudo apt update; sudo apt upgrade -y

ingat untuk menjalankan ini secara berkala, misalkan tiap seminggu sekali.

Install Dependency

Install dependency untuk proses instalasi Elastic Stack ini. Dependency ini dibutuhkan agar proses instalasi lancar

sudo apt install curl wget gnupg apt-transport-https socat -y

Set Server Timezone

Set timezone server ke tempat anda. Ini diperlukan agar memudahkan waktu troubleshooting dan jamnya menyesuaikan jam lokal anda.

sudo timedatectl set-ntp true
sudo timedatectl set-timezone "Asia/Jakarta"
timedatectl

tampilan dari zona waktu yang sudah disetting
linux timezone

Install Java JRE

Untuk menjalankan Elasticsearch, Logstash dan Kibana kita memerlukan Java, untuk itu kita akan install versi bawaan distro yang tersedia saat ini.

sudo apt install default-jre -y

saat ini bawaan default JAVA di Debian 11 adalah Java 11, untuk verifikasi jalankan

java --version
which java
readlink -f $(which java)

verifikasi versii java

Repository Elasticsearch

Config file or folder for elasticsearch, kibana and logstash

#Config File/Folder
Elasticsearch/etc/elasticsearch and /etc/default/elasticsearch
Kibana/etc/kibana and /etc/default/kibana
Logstash/etc/logstash and /etc/default/logstash

Import PGP Key

Untuk memastikan software yang kita install di repository Debian merupakan software yang telah di-sign oleh pembuatnya, dalam hal ini Elasticsearch, maka kita perlu mengimport PGP key.

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | gpg --dearmor | sudo tee /usr/share/keyrings/elasticsearch.gpg

verifikasi ini akan otomatis dijalankan oleh APT.

Tambah Repository

Tambah repository elastic stack versio 8.x

echo "deb [signed-by=/usr/share/keyrings/elasticsearch.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

Update cache APT agar mengenali repository yang baru ditambahkan

sudo apt update

Install Elasticsearch

Tahap pertama dari instalasi ini adalah menginstall Elasticsearch, elastic search merupakan inti dari Elastic Stack yang menyediakan full-text search engine dan juga HTTP API untuk dikonsumsi oleh client.

sudo apt-get install elasticsearch -y

tunggu sampai muncul

The generated password for the elastic built-in superuser is : bHBIzuVpyMtWmbaye1_4

Aktifkan Elasticsearch dengan Systemd

# aktifkan waktu boot
sudo systemctl enable elasticsearch.service
# jalankan elasticsearch
sudo systemctl start elasticsearch.service

Tes Query

curl -u "elastic:bHBIzuVpyMtWmbaye1_4" https://localhost:9200 -k

hasilnya

{
  "name" : "logs",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "sgt2mCBqSJq5HISN5BoztA",
  "version" : {
    "number" : "8.0.0",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "1b6a7ece17463df5ff54a3e1302d825889aa1161",
    "build_date" : "2022-02-03T16:47:57.507843096Z",
    "build_snapshot" : false,
    "lucene_version" : "9.0.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

Install Kibana

Kibana merupakan web UI untuk mengakses fitur-fitur Elasticsearch, begitu juga untuk membuat tampilan dashboard yang menarik.

sudo apt install kibana -y

Edit file /etc/kibana/kibana.yml, update bagian

server.port: 5601
server.host: "0.0.0.0"

agar Kibana bisa diakses dari http://domain-atau-ip-server:5601

Generate token Kibana

sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

token ini akan digunakan untuk inisialisasi kibana dengan elasticsearch.

Buka http://domain-atau-ip-server:5601
enrolment token kibana
masukkan token yang tadi digenerate, klik Configure Elastic

Muncul permintaan verifikasi code
elasticsearch verification token

untuk mengambil token tersebut jalankan

sudo /usr/share/kibana/bin/kibana-verification-code

atau bisa juga dengan melihat tokennya dari log kibana

sudo journalctl -u kibana  | grep verification

masukkan code tersebut, lalu klik Verify

Tunggu beberapa saat, sampai setup selesai dan anda dihapankan dengan halaman login. Gunakan user elastic dan password dari hasil instalasi Elasticsearch, pada contoh saya passwordnya bHBIzuVpyMtWmbaye1_4
login kibana dengan user elastic

Akses Elasticsearch dari Internet

Elasticsearch hanya bisa diakses dari localhost, agar elasticsearch bisa diakses dari internet kita bisa menggunakan nginx sebagai reverse proxy. Setiap kali domain elasticsearch dipanggil, akan diteruskan oleh nginx ke Elasticsearch. Keuntungan menggunakan metode ini adalah kita bisa membuat banyak aturan (firewall) untuk membatasi akses dan juga menggunakan SSL.

1. Setup DNS
Sebagai contoh saya akan menggunakan DNS elastic.jaranguda.com
elastic dns
Cara konfigurasinya mungkin berbeda tiap provider, yang perlu di setting adalah A record dengan Public IP yang anda miliki. Proses update DNS ini bisa sampai 1 jam, untuk memastikannya bisa digunakan bantuan tool dig di linux

dig elastic.jaranguda.com +short
# dns google
dig elastic.jaranguda.com +short @8.8.8.8
# dns cloudflare
dig elastic.jaranguda.com +short @1.1.1.1

pastikan IP yang muncul adalah IP public yang sudah anda setting.
dig dns debian

2. Generate SSL Let’s Encrypt
Login sebagai root (sudo su), lalu eksekusi perintah dibawah ini

wget https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh
bash acme.sh install
source ~/.bashrc
acme.sh --set-default-ca --server letsencrypt

install letsencrypt debian 11
Generate SSL dengan menjalankan

acme.sh --issue --domain elastic.jaranguda.com --standalone

tunggu sampai muncul informasi SSL telah berhasil

[Sun 27 Feb 2022 10:49:29 PM WIB] Your cert is in: /root/.acme.sh/elastic.jaranguda.com/elastic.jaranguda.com.cer
[Sun 27 Feb 2022 10:49:29 PM WIB] Your cert key is in: /root/.acme.sh/elastic.jaranguda.com/elastic.jaranguda.com.key
[Sun 27 Feb 2022 10:49:29 PM WIB] The intermediate CA cert is in: /root/.acme.sh/elastic.jaranguda.com/ca.cer
[Sun 27 Feb 2022 10:49:29 PM WIB] And the full chain certs is there: /root/.acme.sh/elastic.jaranguda.com/fullchain.cer

2. Install Nginx
Install nginx dari repository Debian 11

sudo apt install nginx -y

Buat virtual host untuk elastic.DOMAIN.com (/etc/nginx/sites-enabled/elastic.DOMAIN.com), yang berisi

server {
    listen 443 ssl http2;
    server_name elastic.DOMAIN.com;
    client_max_body_size 50M;
    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_redirect off;
        proxy_pass https://localhost:9200;
    }
 
    ssl_certificate /root/.acme.sh/elastic.DOMAIN.com/fullchain.cer;
    ssl_certificate_key /root/.acme.sh/elastic.DOMAIN.com/elastic.DOMAIN.com.key;
}

restart nginx

sudo nginx -t && sudo systemctl restart nginx

verifikasi SSL

curl -u "elastic:bHBIzuVpyMtWmbaye1_4" https://elastic.jaranguda.com

ssl nginx berhasil

Mengirim Log dengan Logstash

Di server yang akan kita kirim log aplikasi atau lainnya jalankan tahap “Repository Elasticsearch” agar bisa langsung menginstall logstash dengan apt

sudo apt install logstash -y

Tambah config untuk logstash di /etc/logstash/conf.d/server.conf yang berisi

input {
    file {
        path => [
            "/var/log/kern.log",
            "/var/log/user.log",
            "/var/log/dpkg.log",
            "/var/log/auth.log",
        ]
        start_position => "beginning"
    }
}
 
output {
    stdout { codec => rubydebug }
    elasticsearch {
        hosts => "https://localhost:9200"
        user => "elastic"
        password => "bHBIzuVpyMtWmbaye1_4"
        index => "server"
        cacert => "/tmp/ca_1645975245142.crt"
    }
}

karena ini dijalankan di server tempat menginstall elastic stack, jadi kita bisa menggunakan localhost. Untuk digunakan di server lain confignya berubah menjadi

input {
    file {
        path => [
            "/var/log/kern.log",
            "/var/log/user.log",
            "/var/log/dpkg.log",
            "/var/log/auth.log",
        ]
        start_position => "beginning"
    }
}
 
output {
    stdout { codec => rubydebug }
    elasticsearch {
        hosts => "https://elastic.jaranguda.com:443"
        user => "elastic"
        password => "bHBIzuVpyMtWmbaye1_4"
        index => "server"
    }
}

Keterangan
Hosts : server elasticsearch
User : user elasticsearch
Password : password elasticsearch
Index : index di elasticsearch
cacert : cek filenya di /etc/kibana/kibana.yml

Agar logstash bisa mengakses log di /var/log berikan akses adm untuk user logstash

sudo usermod -a -G adm logstash

lalu restart logstash

sudo systemctl restart logstash

cek status logstash

sudo journalctl -u logstash -f

output logstash linux

Tulisan menarik lainnya

  • Cara Install NTOPNG di Debian 7

    ntopng adalah salah satu tools yang bisa digunakan untuk monitoring jaringan, beberapa fitur dari ntopng…

  • Cara Install dan Konfigurasi vsftpd Debian 8

    vsftpd adalah salah satu FTP Server yang masih banyak digunakan, bila anda membutuhkan FTP sangat…

  • Install dig di Debian

    Tool dig mempermudah untuk mengecek DNS record melalui terminal Linux. bash: dig: command not found…

  • Cara Lengkap Install VirtualBox 6.x di Debian 11

    Disini kita akan membahas cara lengkap menginstall VirtualBox 6.1.x di Debian 11. VirtualBox adalah virtualisasi…

Filed Under: dll

Reader Interactions

Leave a Reply Cancel reply

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

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey
  • MacOS Minta Install Git

Komentar

  • Ari on Cara Mematikan SSID Molecool Balifiber
  • kiki anarki on Mengambil Data dari Situs BPJS Ketenagakerjaan dengan PHP cURL
  • musgan on Password Router Huawei HG8245H5 Indihome
  • ghabily on Mengambil Informasi Router Alcatel Lucent G-241W-A dengan PHP
  • nea on Mencari urutan angka yang hilang di PHP

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.1m views
  • Password Terbaru ZTE F609 Indihome 784k views
  • Password Superadmin Huawei HG8245A 314.2k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 272.2k views
  • Cara Setting Wireless ZTE F609 Indihome 256.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.1k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.5k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 150.3k views
  • Cara Reset Password ZTE F609 Indihome 147.2k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 112.9k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java