Log Bull 是一個強調易用性的日誌收集系統。它可以通過 .sh 腳本、Docker 和 Docker Compose 進行部署。該項目完全開源,採用 Apache 2.0 許可證。Log Bull 是一個強調易用性的日誌收集系統。它可以通過 .sh 腳本、Docker 和 Docker Compose 進行部署。該項目完全開源,採用 Apache 2.0 許可證。

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 上提供反饋、改進建議和問題報告。

免責聲明:本網站轉載的文章均來源於公開平台,僅供參考。這些文章不代表 MEXC 的觀點或意見。所有版權歸原作者所有。如果您認為任何轉載文章侵犯了第三方權利,請聯絡 service@support.mexc.com 以便將其刪除。MEXC 不對轉載文章的及時性、準確性或完整性作出任何陳述或保證,並且不對基於此類內容所採取的任何行動或決定承擔責任。轉載材料僅供參考,不構成任何商業、金融、法律和/或稅務決策的建議、認可或依據。
分享文章

您可能也會喜歡

從「執法嚇阻」到「框架創新」,美國 SEC 的加密貨幣政策轉變

從「執法嚇阻」到「框架創新」,美國 SEC 的加密貨幣政策轉變

作者:Martin 美國證券交易委員會正從執法監管轉向框架建設,為加密貨幣行業勾勒清晰的發展路徑。「加密貨幣和代幣化是SEC的首要優先事項。」美國證券交易委員會(SEC)主席Paul Atkins在最近華盛頓特區舉行的金融科技週上明確表示。面對這個長期處於監管灰色地帶的行業,Atkins改變了以往監管機構的嚴肅態度,半開玩笑地稱SEC為「證券與創新委員會」。這一表述表明美國對加密資產的監管政策可能出現重大轉變。 Atkins強調,SEC希望建立強有力的監管框架,吸引已離開美國的加密人才和公司回歸,為未來的創新和發展奠定基礎。事實上,SEC已經開始推動具體措施。Atkins透露,將推出「創新豁免」機制,使公司能夠更快地將鏈上產品和服務推向市場。 新監管思維:從執法到框架建設 長期以來,美國SEC對加密貨幣行業採取「通過執法進行監管」的方式。這一策略屢次引發爭議,但現任SEC領導層展現了不同的治理方式——建立適應性監管框架,而非盲目抑制。 Atkins指出,SEC將推出「創新豁免」計劃,目標是創建一個類似「超級應用」的系統,使多個涉及加密資產的監管機構能夠協同工作,避免公司需要在多個部門重複註冊的麻煩。 這一轉變的背景是加密貨幣監管的緊迫性日益增加。近年來,加密市場規模迅速擴大,各種代幣化實踐不斷湧現,全球監管態度正從嚴格風控轉向監管引導。 在演講中,Atkins還強調了他對分佈式賬本技術的樂觀態度,稱其為「加密領域最令人興奮的部分」。這一表述間接反映了SEC對區塊鏈技術基本價值的認可,而非完全否定加密貨幣的潛在貢獻。 「加密計劃」:美國市場的戰略佈局 SEC的積極轉變並非孤立事件,而是美國對加密資產戰略佈局的一部分。今年早些時候,SEC啟動了「加密計劃」,這是一項全面改革證券規則的行動。它旨在更新證券規則和法規,使美國市場能夠遷移到區塊鏈上。 該計劃的優先事項明確:提供關於加密資產證券性質的確定性;確保企業家能夠在鏈上籌集資金而不面臨無休止的法律不確定性;並允許「超級應用」交易平台進行創新。 同時,根據總統數字資產市場工作組的最新報告,SEC將與其他機構合作,確保平台能夠在單一監管框架下提供加密資產的交易、質押和借貸服務。 Atkins認為,「監管應提供保護投資者所需的『最低有效劑量』的監管,不多也不少。」 現實挑戰:政府關閉和市場波動 然而,SEC在推動加密監管方面面臨實際障礙。美國政府關閉現已進入第二週,國會未能達成資金協議,導致聯邦機構的行動受到重大限制,SEC員工被安排無薪休假。 這種停滯可能影響SEC應對加密市場緊急情況的能力。例如,就在最近,SEC宣布計劃對Ripple銷售XRP採取法律行動,導致XRP當天下跌了30%,其他主要加密貨幣也大幅下跌。 在訴訟中,SEC指控Ripple進行「未註冊證券發行」,而Ripple則辯稱XRP應被視為貨幣而非證券。這類爭議突顯了建立明確監管框架的緊迫性。 全球視角下的數字貨幣競爭 美國的加密監管措施在全球背景下具有更重要的戰略意義。目前,全球數字貨幣領域正逐漸分化為三條主要路徑:以中國為代表的中央銀行數字貨幣路徑,以美國為代表的「加密貨幣+穩定幣」路徑,以及以歐盟為代表的多元化路徑。 美國正試圖通過建立以戰略比特幣儲備為錨定資產、美元穩定幣為流通手段的加密美元霸權,進一步鞏固美元在數字經濟時代的全球貨幣地位。 歐盟的《加密資產市場監管法案》(MiCA)最近生效,為數字資產建立了全面的監管框架。一些歐洲政策制定者已呼籲制定「MiCA 2」,以涵蓋去中心化金融、非同質化代幣和數字資產借貸。 在這種國際競爭形勢下,美國監管機構的積極行動不僅是國內金融監管的需要,也是全球貨幣主權競爭的一部分。正如Atkins所說,「加密時代已經到來。」現在的問題是各國如何應對這一趨勢。 未來幾個月將是美國加密監管改革的關鍵時期。如果SEC能在政府資金恢復後迅速推進「加密計劃」和「創新豁免」,美國可能吸引大量加密公司和人才回歸,代幣化股票、預測市場和早期代幣發行等新產品也可能有更廣闊的發展空間。 隨著歐盟和新加坡等主要經濟體加速建立數字資產監管框架,全球加密競爭格局正在形成。美國SEC的政策轉變將成為影響未來數字資產格局的關鍵變量。
分享
PANews2025/10/17 11:00
分享