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

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Cara Menggunakan filter dengan Fluentd

Last Updated on 14 April 2022 By tommy Leave a Comment

Agar mudah dipahami dan dicoba, kita akan belajar menggunakan filter di fluentd dengan bantuan Docker. Secara sederhana cara kerja fluentd

input -> parse -> output

Contoh log yang akan kita kirim

server reboot | oracle-cloud-vm
server shutdown | oracle-cloud-vm

dari data diatas ada dua informasi yang kita dapatkan “server reboot” atau “server shutdown” adalah informasi server, dan “oracle-cloud-vm” adalah nama servernya.

Buat folder baru, contoh fluentd (~/fluentd)

mkdir ~/fluentd

buat file baru dalam folder tersebut dengan nama fluentd.conf

Cara menjalankan docker

docker run -it -p 24224:24224 -v ~/fluentd/fluentd.conf:/fluentd/etc/fluentd.conf -e FLUENTD_CONF=fluentd.conf fluent/fluentd

cara paling mudah untuk restart fluentd adalah dengan mengakses shell docker
1. Ambil ID Container docker

docker ps | grep fluentd
# contoh output
a7097e84152a   fluent/fluentd               "/bin/entrypoint.sh …"   30 seconds ago   Up 29 seconds            5140/tcp, 0.0.0.0:24224->24224/tcp, :::24224->24224/tcp   sad_mclean

pada contoh diatas a7097e84152a, adalah ID container tersebut.
2. Akses shell container tersebut

docker exec -it a7097e84152a sh

3. Restart fluentd
Jalankan perintah ini setiap ada perubahan fluentd.conf, agar perubahan tersebut dijalankan oleh fluentd

kill -HUP 7

Contoh Filter REGEXP

Sebagai contoh untuk filter regexp (regular expression), biasa juga disingkat dengan regex, kita akan mencari kata kunci (keyword) oracle-cloud-vm di tiap baris log yang ada, bila ada akan akan kita tampilkan.

Isi fluentd.conf dengan file

<source>
    @type forward
</source>
 
<filter **>
  @type grep
  <regexp>
    key log
    pattern /oracle-cloud-vm/
  </regexp>
</filter>
 
<match **>
  @type stdout
</match>

Jalankan docker fluentd, seperti contoh diatas

buka satu terminal

docker run --log-driver=fluentd  alpine:latest echo "server shutdown | oracle-cloud-vm"

di terminal yang menjalankan docker fluentd, anda harusnya melihat log menjadi

2022-04-14 14:41:30.000000000 +0000 d0e16301f91b: {"log":"server shutdown | oracle-cloud-vm","container_id":"d0e16301f91b1c50303bfad2f17683fdd7e9f68d9548fff9bde0300d4db6c3d0","container_name":"/determined_mcnulty","source":"stdout"}

terminal fluentd

Bila anda mengirim log

server shutdown | oracle-cloud-onpremise

fluentd tidak akan memproses data tersebut, karena keywork “oracle-cloud-vm” tidak ditemukan

Beberapa variasi log yang tetap akan diproses fluentd

server shutdown, oracle-cloud-onpremise
{"log_info": "server shutdown", "server": "oracle-cloud-onpremise"}
oracle-cloud-onpremise, server shutdown

Contoh Filter EXCLUDE

Sesuai dengan namanya, exclude akan melewatkan log yang sesuai dengan pattern (pola) yang sudah dibuat. Contoh kita akan melewatkan semua log yang memiliki string oracle-cloud-vm
Ubah fluentd.conf dengan

<source>
    @type forward
</source>
 
<filter **>
  @type grep
  <exclude>
    key log
    pattern /oracle-cloud-vm/
  </exclude>
</filter>
 
<match **>
  @type stdout
</match>

Coba kirim log

# log ini tidak akan ditampilkan
docker run --log-driver=fluentd  alpine:latest echo "server shutdown | oracle-cloud-vm"
# log ini akan ditampilkan
docker run --log-driver=fluentd  alpine:latest echo "server shutdown | oracle-cloud-onpremise"

log exclude fluentd

Jangan Biarkan Log Terlewat

Tergantung dengan kebutuhan sistem anda, dengan cara diatas ada kemungkinan log akan terlewatkan bila tidak sesuai dengan pattern yang sudah disetting. Dari contoh diatas, bila kita menemukan oracle-cloud-vm maka akan kita tambahkan key:value (server: oracle-cloud-vm), diluar itu server: unknown

Ubah fluentd.conf, menjadi

<source>
    @type forward
</source>
 
<match **>
  @type copy
  <store>
    @type relabel
    @label oracle-cloud-vm
  </store>
 
  @type copy
  <store>
    @type relabel
    @label others
  </store>
</match>
 
<label oracle-cloud-vm>
  # filter pattern
  <filter **>
    @type grep
    <regexp>
    key log
    pattern /oracle-cloud-vm/
    </regexp>
  </filter>
 
  # add server key
  <filter **>
    @type record_modifier
    <record>
      server oracle-cloud-vm
    </record>
  </filter>
 
  <match **>
    @type stdout
  </match>
</label>
 
<label others>
  # filter pattern
  <filter **>
    @type grep
    <exclude>
    key log
    pattern /oracle-cloud-vm/
    </exclude>
  </filter>
  # add server key
  <filter **>
    @type record_modifier
    <record>
      server unknown
    </record>
  </filter>
 
  <match **>
    @type stdout
  </match>
</label>

Untuk itu kita akan membutuhkan plugin record-modifier, mari kita build docker disertain dengan plugin tersebut. Buat file Dockerfile yang berisi

FROM fluent/fluentd
RUN gem install fluent-plugin-record-modifier

build docker tersebut

docker build . -t fluentd-local

lalu jalankan kembali container docker dengan mengganti image dari fluent/fluentd menjadi fluentd-local

docker run -it -p 24224:24224 -v ~/fluentd/fluentd.conf:/fluentd/etc/fluentd.conf -e FLUENTD_CONF=fluentd.conf fluentd-local

coba kirim log ke fluentd tersebut

docker run --log-driver=fluentd  alpine:latest echo "server shutdown | oracle-cloud-onpremise"
docker run --log-driver=fluentd  alpine:latest echo "server shutdown | oracle-cloud-vm"
docker run --log-driver=fluentd  alpine:latest echo "server reboot | debian-linux"

bila dilihat di fluentd, akan sesuai dengan keluaran yang diinginkan
log not missing

Tulisan menarik lainnya

  • Cara Menggunakan DDNS Gratis dari Mikrotik

    Solusi buat pemilik IP dinamis (Dynamic IP) agar IP anda tetap bisa mengakses Mikrotik tanpa…

  • Cara Memblokir Youtube dengan Mikrotik

    Bila anda menggunakan Layer 7 untuk memblokir Youtube, cara tersebut akan gagal total, dikarenakan Youtube…

  • Cara Menggunakan FastBoot Android Linux

    Fastboot bisa digunakan untuk banyak hal, seperti install Custom Recovery (TWRP) ataupun untuk menginstall Custom…

  • Cara Terampuh Bypass Filter Internet Services Provider

    Cara terampuh untuk melewati filter ISP Indonesia (Telkomspeedy, telkomsel, dll) adalah dengan menggunakan VPN. Bila…

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.2k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 273k views
  • Cara Setting Wireless ZTE F609 Indihome 257.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.8k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.8k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 153.1k views
  • Cara Reset Password ZTE F609 Indihome 147.5k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 113.5k 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