Skip to main content

Kibana

Kibana adalah antarmuka visualisasi data untuk Elasticsearch. Digunakan untuk eksplorasi data, membuat dashboard, dan monitoring cluster.

Prerequisites

KomponenVersi
OSRHEL / CentOS / Rocky Linux 8+
JavaOpenJDK 11
Kibana8.x
Elasticsearch8.x (harus sudah berjalan)

Instalasi (VPS)

Step 1: Install Kibana

# Install Java 11
sudo yum install java-11-openjdk java-11-openjdk-devel

# Import GPG Key Elasticsearch
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

# Tambah Elastic Repository
sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
EOF

# Install Kibana
sudo yum install kibana

Step 2: Konfigurasi

Generate password untuk kibana_system:

sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -u kibana_system -i

Generate encryption keys:

sudo /usr/share/kibana/bin/kibana-encryption-keys generate

Salin output key-nya, lalu masukkan ke kibana.yml:

sudo nano /etc/kibana/kibana.yml
/etc/kibana/kibana.yml
xpack.reporting.encryptionKey: "YOUR_KEY"
xpack.security.encryptionKey: "YOUR_KEY"
xpack.encryptedSavedObjects.encryptionKey: "YOUR_KEY"

server.host: "0.0.0.0"
server.port: 5601
elasticsearch.hosts: ["http://localhost:9200"]

elasticsearch.username: "kibana_system"
elasticsearch.password: "YOUR_PASSWORD"

logging:
appenders:
file:
type: file
fileName: /var/log/kibana/kibana.log
layout:
type: json
root:
appenders:
- default
- file

pid.file: /run/kibana/kibana.pid

Systemctl

sudo systemctl daemon-reload
sudo systemctl enable kibana
sudo systemctl start kibana
sudo systemctl status kibana
sudo systemctl stop kibana

# Realtime log
sudo journalctl -u kibana -f

Docker

Untuk environment lokal / development, jalankan Kibana via Docker. Pastikan Elasticsearch sudah berjalan sebelumnya.

Explorer
docker-compose.yml
.env
docker-compose.yml
version: "3.8"

services:
kibana:
image: docker.elastic.co/kibana/kibana:8.13.4
ports:
- "5601:5601"
volumes:
- kibanadata:/usr/share/kibana/data
environment:
- SERVERNAME=kibana
- ELASTICSEARCH_HOSTS=${ELASTIC_HOSTS}
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD}
mem_limit: 1073741824
healthcheck:
test: ["CMD-SHELL", "curl -s -I http://localhost:5601 | grep -q 'HTTP/1.1 302 Found'"]
interval: 10s
timeout: 10s
retries: 120

volumes:
kibanadata:

Akses: http://localhost:5601

Jalankan:

docker compose up -d

# Log realtime
docker compose logs -f kibana

# Restart
docker compose restart kibana

Troubleshooting

# Cek port Kibana
sudo netstat -tlnp | grep 5601

# Cek port Elasticsearch
sudo netstat -tlnp | grep 9200

# Log container (Docker)
docker compose logs kibana --tail=100

# Masuk ke shell container
docker exec -it <container-name> bash