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

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Solusi AWS CLI SSL VALIDATION failed

Last Updated on 13 June 2022 By tommy Leave a Comment

Bila anda menggunakan laptop kantor dan di MITM SSL-nya, maka akan sering menemukan pesan di CLI

SSL validation failed for https://sts.amazonaws.com [SSL_CERTIFICATE_FAILED] certificate verify failed: unamble to get issuer certificate
connectionpool.py:1004: InsecureRequestWarning: Unverified HTTPS request is being made to host 'xx.xx.xx.xx'. Adding certificate verification is strongly advised
urllib3/connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host 'sts.eu-west-2.amazonaws.com'. Adding certificate verification is strongly advised.

Solusi yang biasa digunakan adalah menambahkan --no-verify-ssl, contoh

aws sts get-caller-identity --no-verify-ssl

hal ini hanya bersifat sementara, karena masih akan tetap menampilkan informasi “Unverified HTTPS request”

Masalah ini terjadi karena CA yang digunakan belum dikenali oleh AWS CLI (Python), solusinya adalah menambahkan manual root CA, melalui environment variable

AWS_CA_BUNDLE
REQUESTS_CA_BUNDLE

Pertama download terlebih dahulu root CA tersebut, apapun domain yang digunakan tidak masalah, karena otomatis akan di inject (SSL interception) oleh proxy. Sebagai contoh kita akan menggunakan sts.amazonaws.com

openssl s_client -servername sts.amazonaws.com -connect sts.amazonaws.com:443 -showcerts </dev/null 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Download ROOT CA

Simpan file tersebut ke file /home/jaranguda/root.ca, lalu tambahkan di dalam ~/.bashrc

export AWS_CA_BUNDLE=/home/jaranguda/root.ca
export REQUESTS_CA_BUNDLE=/home/jaranguda/root.ca

reload configurasi bashrc

source ~/.bashrc

cek apakan kedua variable tersebut sudah diload dengan env | grep -E CA_BUNDLE

$ env | grep -E CA_BUNDLE
REQUESTS_CA_BUNDLE=/home/jaranguda/root.ca
AWS_CA_BUNDLE=/home/jaranguda/root.ca

terakhir jalankan kembali AWS CLI, contoh

aws sts get-caller-identity

informasi unverified HTTPS sudah tidak muncul lagi.

Filed Under: Linux

Monitoring Kubernetes Cluster dengan Prometheus

Last Updated on 27 May 2022 By tommy Leave a Comment

Setelah menjalankan/menginstall kubernetes hal selanjutnya yang perlu dilakukan adalah untuk monitoring performa dari node, pod dan services yang dijalankan oleh kubernetes. Beruntungnya dengan mudah bisa kita gunakan prometheus, karena sudah ada helm chart yang langsung melakukan semua proses tersebut.

Ada banyak sekali metrics yang diambil oleh prometheus, seperti CPU, Memory, Disk I/O, Network, DNS, Volume dan banyak lainnya. Metrics ini sangat penting dimilikin untuk melihat troubleshooting masalah yang terjadi di kubernetes yang anda kelola.

Buat namespace monitoring

Agar semua tools untuk monitoring lebih rapi, kita akan menggunakan namespace monitoring.

kubectl create namespace monitoring

Tambah Prometheus repository di helm

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# update helm repo
helm repo update

Install prometheus-stack chart, chart ini akan menginstall grafana, prometheus-node-exporter dan kube-state-metrics

helm install prometheus-stack prometheus-community/kube-prometheus-stack --namespace monitoring

proses install prometheus-stack memakan waktu kurang lebih 1-2 menit, tunggu sampai muncul output

NAME: prometheus-stack
LAST DEPLOYED: Wed May 25 22:44:59 2022
NAMESPACE: monitoring
STATUS: deployed
REVISION: 1
NOTES:
kube-prometheus-stack has been installed. Check its status by running:
  kubectl --namespace monitoring get pods -l "release=prometheus-stack"

setelah selesai, cek pod yang baru di install

kubectl --namespace monitoring get pods -l "release=prometheus-stack"

output

NAME                                                   READY   STATUS    RESTARTS   AGE
prometheus-stack-kube-prom-operator-5df567dc96-dwfcj   1/1     Running   0          54s
prometheus-stack-kube-state-metrics-56d4759d67-kqzwd   1/1     Running   0          54s
prometheus-stack-prometheus-node-exporter-bng5f        1/1     Running   0          54s
prometheus-stack-prometheus-node-exporter-l5dlh        1/1     Running   0          54s

Cek pods, services dan configmap yang digunakan oleh prometheus-stack

kubectl --namespace monitoring get pods,services,configmap -l "release=prometheus-stack"

Port Forward Prometheus dan Grafana

Untuk melihat web ui prometheus dan grafana, kita bisa menggunakan port-forward

Grafana

kubectl port-forward services/prometheus-stack-grafana 8080:80 -n monitoring

setelah melakukan port forward, sekarang kita bisa membuka grafana dari komputer dengan mengakses http://localhost:8080. Kita tidak menggunakan port 80 seperti yang digunakan grafana di server, karena untuk membuka port 80 membutuhkan akses root.
default user name admin grafana username admin password prom-operator.
Cara untuk mendapatkan informasi tersebut jalankan perintah

# password admin
kubectl get secret prometheus-stack-grafana -o jsonpath="{.data.admin-password}" -n monitoring | base64 --decode
# user admin
kubectl get secret prometheus-stack-grafana -o jsonpath="{.data.admin-user}" -n monitoring | base64 --decode

Untuk grafana, sudah di install dashboard untuk monitoring kubernetes cluster, jadi bisa dijadikan acuan bila membutuhkan custom dashboard.
kubernetes prometheus dashboard

Prometheus

kubectl port-forward services/prometheus-stack-kube-prom-prometheus 9090:9090 -n monitoring

sekarang prometheus bisa diakses di http://localhost:9090
prometheus web ui

Filed Under: dll

Solusi Playwright Firefox version `GLIBCXX_3.4.30′ not found (required by /lib64/libicuuc.so.69)

Last Updated on 19 May 2022 By tommy Leave a Comment

Hari ini saya mendapati error dari playwright

    browserType.launch: Protocol error (Browser.enable): Browser closed.
    ==================== Browser output: ====================
    <launching> /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/firefox -no-remote -headless -profile /home/jaranguda/tmp/playwright_firefoxdev_profile-6JsjrN -juggler-pipe -silent
    <launched> pid=25600
    [pid=25600][err] XPCOMGlueLoad error for file /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/libmozgtk.so:
    [pid=25600][err] /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib64/libicuuc.so.69)
    [pid=25600][err] Couldn't load XPCOM.
    =========================== logs ===========================
    <launching> /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/firefox -no-remote -headless -profile /home/jaranguda/tmp/playwright_firefoxdev_profile-6JsjrN -juggler-pipe -silent
    <launched> pid=25600
    [pid=25600][err] XPCOMGlueLoad error for file /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/libmozgtk.so:
    [pid=25600][err] /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib64/libicuuc.so.69)
    [pid=25600][err] Couldn't load XPCOM.
    ============================================================

Dilihat dari log diatas yang bermasalah ada di file /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/libstdc++.so.6, mari kita cek GLIBCXX dari file tersebut

strings /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/libstdc++.so.6 | grep GLIBCXX
# output
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_DEBUG_MESSAGE_LENGTH

memang benar GLIBCXX_3.4.30 tidak ditemukan, cek shared library yang digunakan oleh Firefox tersebut

$ ldd /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/firefox
	linux-vdso.so.1 (0x00007fff5ddae000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc4913a2000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007fc49139d000)
	libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fc491169000)
	libm.so.6 => /lib64/libm.so.6 (0x00007fc49108b000)
	libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc49106b000)
	libc.so.6 => /lib64/libc.so.6 (0x00007fc490e68000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc49148c000)

libstdc++.so.6 menggunakan /lib64/libstdc++.so.6 Cek kembali GLIBCXX,

$ strings  /lib64/libstdc++.so.6 | grep GLIBCXX
# output
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_3.4.29
GLIBCXX_3.4.30
GLIBCXX_DEBUG_MESSAGE_LENGTH

kalo dilihat dari output tersebut harusnya sudah sesuai, untuk solusi (sementara), kita gunakan file libstdc++.so.6 dari system

# backup libstdc++.so.6
mv /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/libstdc++.so.6 ~/
# symbolic link dari system
ln -s /lib64/libstdc++.so.6 /home/jaranguda/.cache/ms-playwright/firefox-1323/firefox/libstdc++.so.6

jalankan kembali playwright

npx playwright test

Firefox berjalan dengan normal

Filed Under: Linux

Cara Upgrade Fedora 35 ke Fedora 36

Last Updated on 14 May 2022 By tommy Leave a Comment

Saat terbaik melakukan upgrade biasanya 1-2 minggu setelah Fedora versi terbaru, karena sudah banyak yang melakukan testing dan bug yang muncul saat proses upgrade sudah di fix atau sudah didokumentasikan cara mengatasinya.

Yang perlu dilakukan sebelum melakukan upgrade:
1. Backup data penting, untuk keamanan dan kenyamanan backup semua data penting karena kita tidak bisa prediksi semua berjalan lancar
2. Cek situs masing-masing repository di /etc/yum.repos.d/, untuk memastikan repository tersebut sudah memiliki Fedora 36. Bila belum ada, bisa nonaktifkan terlebih repository.
3. Agar proses upgrade lancar, pastikan koneksi internet stabil. Fedora melakukan upgrade setelah semua file yang dibutuhkan sudah terdownload dengan baik, sehingga mengurangi efek gagal upgrade.

Mari kita lakukan proses upgrade:
1. Upgrade semua package yang di install dengan dnf

sudo dnf --refresh upgrade

2. Install dnf plugin untuk upgrade system

sudo dnf install dnf-plugin-system-upgrade

3. Aktifkan Repository Fedora dan RPM Fusion
Tahap ini opsional, setelah bagian inti (core) Fedora sudah di upgrade ke Fedora 36, nanti kita bisa mengupdate dari repository ini.

# buat folder backup file repository
mkdir ~/yum.repos.d
# pindahkan semua repository kecuali repository Fedora dan RPM Fusion
mv /etc/yum.repos.d/!(fedora*|rpmfusion)

4. Download package Fedora 36
Download package untuk Fedora 36

sudo dnf system-upgrade download --releasever=36

bila anda menemui error

Error: 
 Problem: package php-pecl-imagick-im6-3.7.0-1.fc35.remi.8.0.x86_64 requires php(api) = 20200930-64, but none of the providers can be installed
  - package php-pecl-imagick-im6-3.7.0-1.fc35.remi.8.0.x86_64 requires php(zend-abi) = 20200930-64, but none of the providers can be installed
  - php-common-8.0.19-1.fc35.remi.x86_64 does not belong to a distupgrade repository
  - problem with installed package php-pecl-imagick-im6-3.7.0-1.fc35.remi.8.0.x86_64
(try to add '--skip-broken' to skip uninstallable packages)

hapus package yang bermasalah tersebut, pastikan anda mengecek package apa saja yang bermasalah dan mencari informasi lebih jauh sebelum menghapusnya. Pada kasus ini, kedua package tersebut aman untuk dihapus

sudo dnf remove php80-php-phpiredis-1.0.1-3.fc35.remi.x86_64 php-pecl-imagick-im6-3.7.0-1.fc35.remi.8.0.x86_64 -y

lalu jalankan kembali dnf system-upgrade diatas

Contoh di komputer saya, sekitar 11 menit

(3670/3675): xorg-x11-drv-nvidia-kmodsrc-510.68.02-1.fc36.x86_64.rpm                                                                                                               4.2 MB/s |  28 MB     00:06    
(3671/3675): xorg-x11-drv-nvidia-libs-510.68.02-1.fc36.i686.rpm                                                                                                                    4.2 MB/s |  24 MB     00:05    
(3672/3675): xorg-x11-drv-nvidia-libs-510.68.02-1.fc36.x86_64.rpm                                                                                                                  4.4 MB/s | 168 MB     00:38    
(3673/3675): compat-ffmpeg28-2.8.19-1.fc36.x86_64.rpm                                                                                                                               38 kB/s | 5.6 MB     02:33    
(3674/3675): audacity-freeworld-3.1.3-3.fc36.x86_64.rpm                                                                                                                             95 kB/s |  14 MB     02:34    
(3675/3675): xorg-x11-drv-nvidia-power-510.68.02-1.fc36.x86_64.rpm                                                                                                                  94 kB/s | 284 kB     00:03    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                              6.8 MB/s | 4.6 GB     11:35     
Fedora 36 - x86_64                                                                                                                                                                 1.6 MB/s | 1.6 kB     00:00

upgrade to Fedora 36
5. Setelah semua di download, restart untuk melanjutkan proses upgrade

sudo dnf system-upgrade reboot

6. Bersih bersih
Setelah reboot, anda sudah masuk ke Fedora 36, saatnya mengmenghapus semua package dan metadata yang tidak terpakai

sudo dnf system-upgrade clean
dnf clean packages

Filed Under: dll

Ekstrak Gzip File dan Ambil Total dengan Python

Last Updated on 11 May 2022 By tommy Leave a Comment

Kali ini contoh kasusnya adalah client memberikan folder yang berisi banyak file log dari aplikasi CRM, file-filenya di kompres dengan zip. Untuk itu client minta semua file didalam folder tersebut dibaca, lalu diambil total berapa total data yang diproses oleh CRM mereka.

Kali ini kita akan menggunakan Python, karena mereka minta dibuat dengan Python :D

Sebagai contoh kita akan membuat file price.txt yang akan digunakan dalam eksperimen ini

# buat 100 baris file
for i in {1..100}; do echo "price: $RANDOM" >> price.txt; done
# buat gzip file
gzip price.txt
# file diatas akan membuat file price.txt.gz

Ekstrak Gzip File

Untuk mengkesktrak file gz dengan Python, kita perlu mengimpor modul gzip. Setelah file tersebut di ekstrak, tampilkan setiap baris yang ada dengan menggunakan looping, baris perbaris.

Buat file dengan nama parse.py, yang berisi

#!/usr/bin/env python3
import gzip
with gzip.open('price.txt.gz', 'rb') as lines:
    for line in lines:
      print(line)
python3 parse.py

angka yang ditampilan disini akan berbeda dengan file yang anda buat, karena waktu generate file price.txt kita menggunakan angka acak.

Split (Pecah) String

Disini kita mengambil data dari file yang baru di ekstrak. Dari hasil looping diatas, type datanya byte, agar bisa dipecah, pertama kita akan ubah menjadi string dengan str

#!/usr/bin/env python3
import gzip
with gzip.open('price.txt.gz', 'rb') as lines:
    for line in lines:
      # ubah byte menjadi string
      strline = str(line, 'utf-8')
      # ambil angka dari setiap baris setelah kata kunci price:
      number = strline.split('price: ')[1]
      print(number)

jalankan script diatas

python3 parse.py
# output
...
27589
4248
18554
...

dengan format ini kita sudah mendapatkan angka yang kita perlukan, langkah selanjutnya menghitung jumlah angka tersebut.

Menghitung Total Angka

Angka yang kita perlukan sudah didapat, tetapi dari code sebelumnya kita merubah byte menjadi string. Agar bisa menghitung jumlah total, kita harus merubah string tersebut menjadi integer

#!/usr/bin/env python3
import gzip
# nilai awal
total = 0
with gzip.open('price.txt.gz', 'rb') as lines:
    for line in lines:
      # ubah byte menjadi string
      strline = str(line, 'utf-8')
      # ambil angka dari setiap baris setelah kata kunci price:
      number = strline.split('price: ')[1]
      # ubah string jadi integer
      total += int(number)
print(total)

jalankan script diatas

python3 parse.py
# output
1499614

Filed Under: dll

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

Filed Under: Linux

  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Interim pages omitted …
  • Go to page 210
  • Go to Next Page »

Primary Sidebar

Pencarian

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

Terbaru

  • Solusi AWS CLI SSL VALIDATION failed
  • Monitoring Kubernetes Cluster dengan Prometheus
  • Solusi Playwright Firefox version `GLIBCXX_3.4.30′ not found (required by /lib64/libicuuc.so.69)
  • Cara Upgrade Fedora 35 ke Fedora 36
  • Ekstrak Gzip File dan Ambil Total dengan Python

Komentar

  • Xpud on Script PHP untuk Mengambil History Lagu Shoutcast v2.5
  • Jrenx on Membuat Bot Telegram Sederhana dengan PHP
  • Sella on Kemana Menghilangnya Saldo BCA 50 ribu
  • Rian on Mengganti Halaman Error Laravel
  • Suchie on Kemana Menghilangnya Saldo BCA 50 ribu

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1m views
  • Password Terbaru ZTE F609 Indihome 781.6k views
  • Password Superadmin Huawei HG8245A 294.7k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 267.9k views
  • Cara Setting Wireless ZTE F609 Indihome 251.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 165.4k views
  • Akses UseeTV Indihome via Wireless ZTE F609 154.8k views
  • Cara Reset Password ZTE F609 Indihome 146k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 135.5k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 109k views

Kategori

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

Sponsor

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