Log Bullは使いやすさを重視したログ収集システムです。.shスクリプト、Docker、またはDocker Composeを通じてデプロイできます。このプロジェクトはApache 2.0ライセンスの下で完全にオープンソース化されています。Log Bullは使いやすさを重視したログ収集システムです。.shスクリプト、Docker、またはDocker Composeを通じてデプロイできます。このプロジェクトはApache 2.0ライセンスの下で完全にオープンソース化されています。

ELK、Loki、Graylogは過剰だったので、Log Bullを構築しました

約5年間、私は小規模から中規模のコードベースからログを収集するという課題に直面してきました。コードからログを送信すること自体は問題ではありません:JavaやGoにはこれを行うためのライブラリがほぼ最初から用意されています。しかし、それらを収集するための何かをデプロイすることは頭痛の種です。これは解決可能な課題だと理解しています(ChatGPT以前でも、そして今ではさらに容易に)。それでも、すべてのログシステムは主に大企業の世界とその要件に向けられており、少数の道具と接着剤、そして「昨日までに」という締め切りを持つ小さなチームや個人開発者向けではありません。

ELKを起動することは私にとって毎回挑戦です:多くの設定、簡単ではないデプロイメント、そしてUIに入ると、タブの多さに目が回ります。LokiやGraylogではもう少し簡単ですが、それでも私が必要とする以上の機能があります。同時に、プロジェクト間でログを分離し、他のユーザーがシステムに追加されても見るべきでないものを見ないようにすることも、最も明白なプロセスではありません。

そこで約1年前、私は自分自身のログ収集システムを作ることにしました。できるだけ使いやすく起動しやすいものです。サーバー上で単一のコマンドでデプロイされ、設定やインターフェースの不要なタブなしで。そうして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をデプロイする方法は?

プロジェクトをデプロイする方法は3つあります:.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での問題提起を歓迎します。

市場の機会
Elk Finance ロゴ
Elk Finance価格(ELK)
$0.01946
$0.01946$0.01946
-1.46%
USD
Elk Finance (ELK) ライブ価格チャート
免責事項:このサイトに転載されている記事は、公開プラットフォームから引用されており、情報提供のみを目的としています。MEXCの見解を必ずしも反映するものではありません。すべての権利は原著者に帰属します。コンテンツが第三者の権利を侵害していると思われる場合は、削除を依頼するために [email protected] までご連絡ください。MEXCは、コンテンツの正確性、完全性、適時性について一切保証せず、提供された情報に基づいて行われたいかなる行動についても責任を負いません。本コンテンツは、財務、法律、その他の専門的なアドバイスを構成するものではなく、MEXCによる推奨または支持と見なされるべきではありません。