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

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Install Elastic Stack di Kubernetes / Minikube

Last Updated on 22 October 2021 By tommy Leave a Comment

Kali ini kita akan membahas cara install Elasticsearch dan Kibana di Kubernetes. Ada banyak cluster yang bisa digunakan di berbagai cloud provider, untuk kebutuhan lab bisa menggunakan Minikube yang mudah dan sama seperti managed kubernetes yang ditawarkan di cloud.

Ditutorial ini yang digunakan adalah software berikut:
1. Minikube (v1.21.0)
2. Docker (20.10.7)
3. Elasticsearch (7.13.2)
4. Kibana (7.13.2)
5. kubectl

Cara install minikube dan docker bisa dilihat pada tutorial ini.

Buat satu namespace baru sebagai tempat meletakkan elasticsearch, mari kita namai jaranguda.

kubectl create namespace jaranguda

set namespace tersebut sebagai default

kubectl config set-context minikube --namespace=jaranguda

dengan mengganti default namespace tidak perlu menambahkan -n jaranguda setiap melakukan deploy.

Untuk project ini kita buat folder tempat menyimpan semua konfigurasi yang digunakan.

mkdir elastic-stack

1. Elasticsearch

Yang pertama akan kita install adalah Elasticsearch, buat file elasticsearch.yaml yang berisi

apiVersion: apps/v1
kind: Deployment
metadata:
  name: elasticsearch
spec:
  selector:
    matchLabels:
      component: elasticsearch
  template:
    metadata:
      labels:
        component: elasticsearch
    spec:
      containers:
      - name: elasticsearch
        image: docker.elastic.co/elasticsearch/elasticsearch:7.13.3
        env:
        - name: discovery.type
          value: single-node
        ports:
        - containerPort: 9200
          name: http
          protocol: TCP
        resources:
          limits:
            cpu: 500m
            memory: 2Gi
          requests:
            cpu: 500m
            memory: 2Gi
---
apiVersion: v1
kind: Service
metadata:
  name: elasticsearch
  labels:
    service: elasticsearch
spec:
  type: NodePort
  selector:
    component: elasticsearch
  ports:
  - port: 9200
    targetPort: 9200

Variable discovery.type single-node digunakan untuk memberitahu Elasticsearch kita hanya menggunakan satu node. Informasi ini didapat dari official Docker Elasticsearch

Deployment : digunakan untuk membuat pod
Service: untuk mengekspose service, agar bisa diakses dari network. Disini agar bisa diakses dari komputer

Deploy elasticsearch ke kubernetes

kubectl apply -f elasticsearch.yaml

Cek service dan pod yang baru dibuat

kubectl get pod,services
# output
NAME                               READY   STATUS    RESTARTS   AGE
pod/elasticsearch-cff64d4d-wxpnc   1/1     Running   0          2m4s
 
NAME                    TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/elasticsearch   NodePort   10.101.198.249   <none>        9200:32599/TCP   2m4s

Untuk bisa mengakses elasticsearch dari komputer anda, panggil minikube service untuk mendapatkan IP address beserta portnya

minikube service --url elasticsearch -n jaranguda
# output
http://192.168.49.2:31546

buka di browser anda http://192.168.49.2:31546
akses elasticsearch

2. Kibana

Pasangan sejati Elasticsearch adalah kibana, yang selalu muncul disetiap berdampingan dengan Elasticsearc. Kibana digunakan untuk menampilkan grafik dan query data dari elasticsearch, dan merupakan tool yang banyak digunakan DevOps ataupun Site Reliability Engineer (SRE)

Buat file kibana.yaml lalu copy paste baris dibawah ini

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
spec:
  selector:
    matchLabels:
      run: kibana
  template:
    metadata:
      labels:
        run: kibana
    spec:
      containers:
      - name: kibana
        image: docker.elastic.co/kibana/kibana:7.13.2
        env:
        - name: ELASTICSEARCH_URL
          value: "elasticsearch.jaranguda"
        - name: XPACK_SECURITY_ENABLED
          value: "true"
        ports:
        - containerPort: 5601
          name: http
          protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: kibana
  labels:
    service: kibana
spec:
  type: NodePort
  selector:
    run: kibana
  ports:
  - port: 5601
    targetPort: 5601

Bagian yang perlu diperhatikan adalah elasticsearch.jaranguda, bagian ini berarti service yang bernama elasticsearch yang berada di namespace jaranguda. Bila anda menggunakan namespace yang berbeda, sesuaikan nilainya disini.

Deploy kibana ke kubernetes

kubectl apply -f kibana.yaml

Cek pod dan service yang baru dibuat

$ kubectl get pod,service
NAME                                 READY   STATUS      RESTARTS   AGE
pod/elasticsearch-7766cc5bf9-d6xbk   1/1     Running     0          24m
pod/kibana-79cf5b4c79-chswv          1/1     Running     0          11s
 
NAME                    TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/elasticsearch   NodePort   10.108.235.219   <none>        9200:31546/TCP   24m
service/kibana          NodePort   10.96.146.212    <none>        5601:31014/TCP   11s

Gunakan cara yang sama dengan elasticsearch untuk mendapatkan IP:Port kibana yang bisa diakses dari komputer

minikube service --url kibana -n jaranguda
# output
http://192.168.49.2:31546

tampilan kibana di elasticsearch

Testing Data
Untuk mencoba instalasi Kibana dan Elasticsearch, kita akan membuat index tutorial-elasticsearch dengan data dummy.
Buka console di kibana atau lewat link IP:PORT/app/dev_tools
Di console masukkan

POST /tutorial-elasticsearch/situs
{
  "domain": "jaranguda.com",
  "author": "jaranguda",
  "title": "Belajar Kibana Elasticsearch"
}

klik tanda panah ke samping untuk menjalankan query tersebut.
kibana console

Buka menu Stack Management -> Index Patterns -> Index Patterns
click Create Index Patterns
create index patterns kibana

klik Next Step, lalu akhiri dengan klik Create Index Patterns

Buka menu Discover, data log yang tadi dibuat harusnya sudah muncul
elasticsearch logs from kibana

Last Updated on 22 October 2021 by tommy

Tulisan menarik lainnya

  • Install dig di Debian

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

  • Install Lazreport di Lazarus 1.26

    Lazreport, component untuk membuat report di Lazarus, sebenarnya sudah ada di dalam installer Lazarus hanya…

  • Cara Install VLC 2.2 di Fedora

    Cara mudah untuk menginstall VLC (VideoLAN) versi terbaru di Fedora 20/21/Rawhide adalah lewat rpmfusion, install…

  • Install fail2ban di CentOS 7

    Untuk mengatasi brute-force akun SSH di CentOS kita menggunakan fail2ban untuk memblokir ip-ip yang mencoba…

Filed Under: Linux

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 Mengganti Port Screen Sharing macOS
  • 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

Komentar

  • mazda on Tutorial Lengkap Install Mail Server Postfix Dovecot MariaDB di CentOS 7
  • adi on Menggunakan Mikrotik Sebagai SSH Client
  • aris u on Solusi Simple Queue Mikrotik Tidak Berjalan
  • Bowo on Cara Mematikan SSID Molecool Balifiber
  • aris on Solusi Simple Queue Mikrotik Tidak Berjalan

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.2m views
  • Password Terbaru ZTE F609 Indihome 784.5k views
  • Password Superadmin Huawei HG8245A 318.7k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 273.1k views
  • Cara Setting Wireless ZTE F609 Indihome 257.2k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.9k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.8k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 153.4k views
  • Cara Reset Password ZTE F609 Indihome 147.6k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 113.6k 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