Selain menggunakan Fluentd/Fluentbit untuk mengirimkan log ke OpenSearch/ElasticSearch kita bisa menggunakan Logstash, yang merupakan official tools dari pembuat Elasticsearch.
Di tutorial kali ini diharapkan anda sudah memiliki OpenSearch yang berjalan, bisa belum ada bisa gunakan docker/podman

docker run -e OPENSEARCH_INITIAL_ADMIN_PASSWORD=tpPVvqWpRwRveAP4p9w9 -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" opensearchproject/opensearch:latest

Setting Logstash

Untuk memulainya kita akan melakukan konfigurasi di Logstash, karena diharapkan anda sudah memiliki OpenSearch yang berjalan.

Logstash di Windows/Windows Server

Download Logstash dari situs elastic

Ekstrak file logstash-8.17.2-windows-x86_64.zip yang baru di download. Ambil contoh hasil ekstrak tersebut ada di C:\Users\jaranguda\Downloads\logstash-8.17.2
logstash windows folder
Di dalam folder config buat file baru logstash.conf, yang berisi

input {
    file {
        path => "D:\app\log.txt"
        start_position => "beginning"
        codec => multiline { pattern => "\[[\d]{4}" negate => "true" what => "previous" }
    }
}
 
filter {
    # kosong
}
 
output {
    stdout {
        codec => rubydebug
    }
    opensearch {
        hosts => ["https://search.jaranguda.com"]
        user => "USERNAME-OPENSEARCH"
        password => "PASSWORD-OPENSEARCH"
        ssl => true
        ssl_certificate_verification => false
        index => "windows-logs"
    }
}

D:\app\log.txt adalah lokasi dari file log anda
hosts domain/ip address OpenSearch
ssl_certificate_verification disini untuk skip verification CA SSL, untuk production ubah jadi true

Install Plugin OpenSearch untuk logstash

cd C:\Users\jaranguda\Downloads\logstash-8.17.2\bin
logstash-plugin install logstash-output-opensearch

Setelah konfigurasi tersebut selesai, jalankan logstash

cd C:\Users\jaranguda\Downloads\logstash-8.17.2\bin
logstash -f C:\Users\jaranguda\Downloads\logstash-8.17.2\config\logstash.conf

logstash logs running

Leave a comment

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