Log Bull, kullanım kolaylığına vurgu yapan bir günlük toplama sistemidir. Bir .sh betiği aracılığıyla, Docker aracılığıyla ve Docker Compose aracılığıyla dağıtılabilir. Proje, Apache 2.0 lisansı altında tamamen açık kaynaktır.Log Bull, kullanım kolaylığına vurgu yapan bir günlük toplama sistemidir. Bir .sh betiği aracılığıyla, Docker aracılığıyla ve Docker Compose aracılığıyla dağıtılabilir. Proje, Apache 2.0 lisansı altında tamamen açık kaynaktır.

ELK, Loki 和 Graylog 太過複雜,所以我建立了 Log Bull

2025/10/16 23:31

大約五年來,我一直面臨著收集日誌的任務,通常是來自小型到中型的代碼庫。從代碼發送日誌不是問題:Java和Go幾乎開箱即用就有這方面的庫。但部署一些東西來收集它們卻是一個頭痛的問題。我明白這是一個可解決的任務(甚至在ChatGPT之前,現在更是如此)。不過,所有的日誌系統主要都是針對大型企業世界及其需求而設計的,而不是針對只有幾根棍子、膠水和"昨天"截止日期的小團隊或單個開發者。

每次啟動ELK對我來說都是一個挑戰:一堆設置,非平凡的部署,當我進入UI時,我的眼睛被標籤頁弄得眼花繚亂。使用Loki和Graylog會稍微容易一些,但仍然有比我需要的多得多的功能。同時,在項目之間分離日誌並向系統添加其他用戶,使他們看不到不應該看到的內容,也不是最明顯的過程。

所以大約一年前,我決定製作自己的日誌收集系統。一個盡可能易於使用和啟動的系統。它可以通過單個命令部署在服務器上,無需任何配置或界面中不必要的標籤頁。這就是Log Bull的由來,現在它是開源的:一個為擁有中型項目的開發者設計的日誌收集系統。

目錄:

  • 關於項目
  • 如何部署Log Bull?
  • 如何發送日誌?
  • 如何查看日誌?
  • 結論

關於項目

Log Bull是一個強調易用性的日誌收集系統(最小配置,最少功能,啟動時零配置)。該項目完全在Apache 2.0許可下開源。我的主要優先事項是創建一個解決方案,使初級開發人員能夠輕鬆弄清楚如何啟動系統,如何向其發送日誌,以及如何在大約15分鐘內查看它們。

項目的主要特點:

  • 通過.sh腳本或Docker命令用單個命令部署。
  • 您可以創建多個隔離的項目來收集日誌(並向其添加用戶)。
  • 極其簡單的界面,最少的配置,啟動時完全不需要配置(零配置)。
  • 支持Python、Java、Go、JavaScript(TS \ NodeJS)、PHP、C#的庫。計劃支持Rust和Ruby。
  • 免費、開源且自託管。
  • 搜索日誌不需要了解LogQL、Kibana DSL或其他查詢語言。

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

該項目用Go開發,基於OpenSearch構建。

項目網站 - https://logbull.com

項目GitHub - https://github.com/logbull/logbull

P.S. 如果您覺得這個項目有用並且有GitHub帳戶,請給它一個星標⭐️。最初的星標很難收集。我將非常感謝您的支持!

如何部署Log Bull?

有三種方式部署項目:通過.sh腳本(我推薦的方式)、通過Docker和通過Docker Compose。

方法1:通過腳本安裝

該腳本將安裝Docker,將項目放在/opt/logbull文件夾中,並配置系統重啟時自動啟動。安裝命令:

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

方法2:通過Docker Compose啟動

創建docker-compose.yml文件,內容如下:

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 

然後運行命令docker compose up -d。系統將在4005端口啟動。

方法3:通過Docker命令啟動

在終端中運行以下命令(系統也將在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 

如何發送日誌?

我設計這個項目時考慮到了便利性,主要是為了開發者。這就是為什麼我為大多數流行的開發語言創建了庫。我這樣做是基於這樣的想法:Log Bull可以作為處理器連接到任何流行的庫,而無需更改當前的代碼庫。

我強烈建議查看網站上的示例,因為那裡有一個用於選擇語言的交互式面板:

Code examples picler

讓我們以Python為例。首先,您需要安裝庫(雖然您也可以通過HTTP發送;有cURL的示例):

pip install logbull 

然後從代碼發送:

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) 

如何查看日誌?

所有日誌都會立即顯示在主屏幕上。您可以:

  • 減小消息的大小(通過將行截斷到~50-100個字符)。

  • 展開發送字段的列表(user_id, order_id等)。

  • 點擊一個字段並將其添加到過濾器中。帶條件的日誌搜索:

    Logs search with conditions

    Regular logs view

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

您還可以收集條件組(例如,消息包含某些文本,但排除特定的服務器IP地址)。

結論

我希望我的日誌收集系統對那些不想或不能(由於項目資源有限)實施"重量級"解決方案(如ELK)的開發者有所幫助。我已經在生產項目中使用Log Bull,一切進展順利。我歡迎在GitHub上提供反饋、改進建議和問題報告。

Sorumluluk Reddi: Bu sitede yeniden yayınlanan makaleler, halka açık platformlardan alınmıştır ve yalnızca bilgilendirme amaçlıdır. MEXC'nin görüşlerini yansıtmayabilir. Tüm hakları telif sahiplerine aittir. Herhangi bir içeriğin üçüncü taraf haklarını ihlal ettiğini düşünüyorsanız, kaldırılması için lütfen [email protected] ile iletişime geçin. MEXC, içeriğin doğruluğu, eksiksizliği veya güncelliği konusunda hiçbir garanti vermez ve sağlanan bilgilere dayalı olarak alınan herhangi bir eylemden sorumlu değildir. İçerik, finansal, yasal veya diğer profesyonel tavsiye niteliğinde değildir ve MEXC tarafından bir tavsiye veya onay olarak değerlendirilmemelidir.

Ayrıca Şunları da Beğenebilirsiniz

Suudi Arabistan iki charter havayolu lisansı verdi

Suudi Arabistan iki charter havayolu lisansı verdi

Suudi Arabistan, 2030 yılına kadar yıllık 100 milyon ziyaretçiye ulaşmayı planlarken iki konsorsiyuma ulusal charter havayolu lisansları verdi. Sivil Havacılık Genel Müdürlüğü (Gaca), bir açıklamada belirttiği üzere, Jazeera Airways ve BeOnd Aviation liderliğindeki ittifaklara lisansları verdi. İki ittifaka da faaliyet gösterme izni verilecek [...]
Paylaş
Agbi2025/12/11 12:13
Depremden tayfunlara: DigiPlus Vakfı Filipinler genelinde 8 milyon P'lik afet yardımını harekete geçiriyor

Depremden tayfunlara: DigiPlus Vakfı Filipinler genelinde 8 milyon P'lik afet yardımını harekete geçiriyor

Kuzey Cebu depremi ve ardından gelen Tayfun Tino ve Uwan'ın etkisinin ardından, daha önce BingoPlus Vakfı olarak bilinen ve DigiPlus Interactive Corp.'un sosyal kalkınma kolu olan DigiPlus Vakfı, Visayas genelinde yaklaşık 70.000 Filipinli'nin hayatlarını yeniden inşa etmelerine yardımcı olmak için toplam 8 milyon P değerinde afet yardımı seferber etti ve […]
Paylaş
Bworldonline2025/12/11 00:05