Log Bull adalah sistem pengumpulan log dengan penekanan pada kemudahan penggunaan. Sistem ini dapat di-deploy melalui skrip .sh, melalui Docker dan melalui Docker Compose. Proyek ini sepenuhnya open source di bawah lisensi Apache 2.0.Log Bull adalah sistem pengumpulan log dengan penekanan pada kemudahan penggunaan. Sistem ini dapat di-deploy melalui skrip .sh, melalui Docker dan melalui Docker Compose. Proyek ini sepenuhnya open source di bawah lisensi Apache 2.0.

ELK, Loki, dan Graylog Terlalu Berlebihan, Jadi Saya Membangun Log Bull

2025/10/16 23:31

Selama sekitar lima tahun, saya telah menghadapi tugas mengumpulkan log, biasanya dari basis kode berukuran kecil hingga menengah. Mengirim log dari kode bukanlah masalah: Java dan Go memiliki pustaka untuk ini yang praktis tersedia langsung. Tetapi men-deploy sesuatu untuk mengumpulkannya adalah hal yang memusingkan. Saya mengerti bahwa ini adalah tugas yang dapat diselesaikan (bahkan sebelum ChatGPT, dan sekarang lebih mudah lagi). Namun, semua sistem logging terutama ditujukan untuk dunia perusahaan besar dan persyaratannya, bukan untuk tim kecil atau pengembang tunggal dengan sedikit sumber daya, lem, dan tenggat waktu "kemarin".

Meluncurkan ELK adalah tantangan bagi saya setiap kali: banyak pengaturan, deployment yang tidak sederhana, dan ketika saya memasuki UI, mata saya kebingungan melihat tab-tabnya. Dengan Loki dan Graylog, sedikit lebih mudah, tetapi masih ada lebih banyak fitur daripada yang saya butuhkan. Pada saat yang sama, memisahkan log antar proyek dan menambahkan pengguna lain ke sistem agar mereka tidak melihat apa yang seharusnya tidak mereka lihat, juga bukan proses yang paling jelas.

Jadi sekitar setahun yang lalu, saya memutuskan untuk membuat sistem pengumpulan log saya sendiri. Yang semudah mungkin digunakan dan diluncurkan. Sistem ini akan di-deploy di server dengan satu perintah, tanpa konfigurasi atau tab yang tidak perlu di antarmuka. Begitulah Log Bull muncul, dan sekarang bersifat open source: sistem pengumpulan log untuk pengembang dengan proyek berukuran menengah.

Daftar isi:

  • Tentang proyek
  • Bagaimana men-deploy Log Bull?
  • Bagaimana mengirim log?
  • Bagaimana melihat log?
  • Kesimpulan

Tentang proyek

Log Bull adalah sistem pengumpulan log dengan penekanan pada kemudahan penggunaan (konfigurasi minimal, fitur minimal, zero-config saat startup). Proyek ini sepenuhnya open source di bawah lisensi Apache 2.0. Prioritas utama saya adalah menciptakan solusi yang memungkinkan pengembang junior untuk dengan mudah memahami cara memulai sistem, cara mengirim log ke dalamnya, dan cara melihatnya dalam waktu sekitar 15 menit.

Fitur utama proyek:

  • Di-deploy dengan satu perintah melalui skrip .sh atau perintah Docker.
  • Anda dapat membuat beberapa proyek terisolasi untuk mengumpulkan log (dan menambahkan pengguna ke dalamnya).
  • Antarmuka yang sangat sederhana dengan konfigurasi minimal, dan tidak memerlukan konfigurasi sama sekali saat memulai (zero-config).
  • Pustaka untuk Python, Java, Go, JavaScript (TS \ NodeJS), PHP, C#. Rust dan Ruby direncanakan.
  • Gratis, open source dan self-hosted.
  • Tidak perlu mengetahui LogQL, Kibana DSL atau bahasa kueri lainnya untuk mencari log.

https://www.youtube.com/watch?v=8H8jF8nVzJE&embedable=true

Proyek ini dikembangkan dengan Go dan dibangun di atas OpenSearch.

Situs web proyek - https://logbull.com

GitHub proyek - https://github.com/logbull/logbull

P.S. Jika Anda merasa proyek ini berguna dan memiliki akun GitHub, silakan berikan bintang ⭐️. Bintang-bintang pertama sulit untuk dikumpulkan. Saya akan sangat berterima kasih atas dukungan Anda!

Bagaimana men-deploy Log Bull?

Ada tiga cara untuk men-deploy proyek: melalui skrip .sh (yang saya rekomendasikan), melalui Docker dan melalui Docker Compose.

Metode 1: Instalasi melalui skrip

Skrip akan menginstal Docker, menempatkan proyek di folder /opt/logbull, dan mengkonfigurasi autostart ketika sistem di-restart. Perintah instalasi:

sudo apt-get install -y curl && \ sudo curl -sSL https://raw.githubusercontent.com/logbull/logbull/main/install-logbull.sh \ | sudo bash 

Metode 2: Peluncuran melalui Docker Compose

Buat file docker-compose.yml dengan konten berikut:

services:   logbull:     container_name: logbull     image: logbull/logbull:latest     ports:       - "4005:4005"     volumes:       - ./logbull-data:/logbull-data     restart: unless-stopped     healthcheck:       test: ["CMD", "curl", "-f", "http://localhost:4005/api/v1/system/health"]       interval: 5s       timeout: 5s       retries: 30 

Dan jalankan perintah docker compose up -d. Sistem akan dimulai pada port 4005.

Metode 3: Peluncuran melalui perintah Docker

Jalankan perintah berikut di terminal (sistem juga akan dimulai pada port 4005):

docker run -d \   --name logbull \   -p 4005:4005 \   -v ./logbull-data:/logbull-data \   --restart unless-stopped \   --health-cmd="curl -f http://localhost:4005/api/v1/system/health || exit 1" \   --health-interval=5s \   --health-retries=30 \   logbull/logbull:latest 

Bagaimana mengirim log?

Saya merancang proyek dengan mempertimbangkan kenyamanan, terutama untuk pengembang. Itulah mengapa saya membuat pustaka untuk sebagian besar bahasa pengembangan populer. Saya melakukan ini dengan ide bahwa Log Bull dapat dihubungkan ke pustaka populer mana pun sebagai prosesor tanpa mengubah basis kode saat ini.

Saya sangat menyarankan untuk melihat contoh di situs web, karena ada panel interaktif untuk memilih bahasa:

Code examples picler

Mari ambil Python sebagai contoh. Pertama, Anda perlu menginstal pustaka (meskipun Anda juga dapat mengirimnya melalui HTTP; ada contoh untuk cURL):

pip install logbull 

Kemudian kirim dari kode:

import time from logbull import LogBullLogger  # Initialize logger logger = LogBullLogger(     host="http://LOGBULL_HOST",     project_id="LOGBULL_PROJECT_ID", )  # Log messages (printed to console AND sent to LogBull) logger.info("User logged in successfully", fields={     "user_id": "12345",     "username": "john_doe",     "ip": "192.168.1.100" })  # With context session_logger = logger.with_context({     "session_id": "sess_abc123",     "user_id": "user_456" })  session_logger.info("Processing request", fields={     "action": "purchase" })  # Ensure all logs are sent before exiting logger.flush() time.sleep(5) 

Bagaimana melihat log?

Semua log ditampilkan segera di layar utama. Anda dapat:

  • Mengurangi ukuran pesan (dengan memotong baris menjadi ~50-100 karakter).

  • Memperluas daftar bidang yang dikirim (user_id, order_id, dll.).

  • Klik pada bidang dan tambahkan ke filter. Pencarian log dengan kondisi:

    Logs search with conditions

    Regular logs view

    Viewing messages text only (you can cut extra fields):

Anda juga dapat mengumpulkan kelompok kondisi (misalnya, pesan mencakup teks tertentu, tetapi mengecualikan alamat IP server tertentu).

Kesimpulan

Saya berharap sistem pengumpulan log saya akan berguna bagi para pengembang yang tidak ingin atau tidak dapat (karena keterbatasan sumber daya proyek) mengimplementasikan solusi "berat" seperti ELK. Saya sudah menggunakan Log Bull dalam proyek produksi, dan semuanya berjalan dengan baik. Saya menyambut umpan balik, saran untuk perbaikan, dan masalah di GitHub.

Penafian: Artikel yang diterbitkan ulang di situs web ini bersumber dari platform publik dan disediakan hanya sebagai informasi. Artikel tersebut belum tentu mencerminkan pandangan MEXC. Seluruh hak cipta tetap dimiliki oleh penulis aslinya. Jika Anda meyakini bahwa ada konten yang melanggar hak pihak ketiga, silakan hubungi [email protected] agar konten tersebut dihapus. MEXC tidak menjamin keakuratan, kelengkapan, atau keaktualan konten dan tidak bertanggung jawab atas tindakan apa pun yang dilakukan berdasarkan informasi yang diberikan. Konten tersebut bukan merupakan saran keuangan, hukum, atau profesional lainnya, juga tidak boleh dianggap sebagai rekomendasi atau dukungan oleh MEXC.