Log Bull is a log collection system with an emphasis on ease of use. It can be deployed via a .sh script, via Docker and via Docker Compose. The project is completely open source under the Apache 2.0 license.Log Bull is a log collection system with an emphasis on ease of use. It can be deployed via a .sh script, via Docker and via Docker Compose. The project is completely open source under the Apache 2.0 license.

ELK, Loki, and Graylog Were Overkill, So I built Log Bull

2025/10/16 23:31

For about five years, I have faced the task of collecting logs, typically from small to medium-sized codebases. Sending logs from code is not a problem: Java and Go have libraries for this practically out of the box. But deploying something to collect them is a headache. I understand that it's a solvable task (even before ChatGPT, and now even more so). Still, all logging systems are primarily geared toward the large enterprise world and its requirements, ~~r~~ather than small teams or single developers with a few sticks, glue, and a “yesterday” deadline.

Launching ELK is a challenge for me every time: a bunch of settings, a non-trivial deployment, and when I enter the UI, my eyes run wild from the tabs. With Loki and Graylog, it's a little easier, but there are still way more features than I need. At the same time, separating logs between projects and adding other users to the system so that they don't see anything they shouldn't, is not the most obvious process either.

So about a year ago, I decided to make my own log collection system. One that is as easy to use and launch as possible. It would be deployed on the server with a single command, without any configuration or unnecessary tabs in the interface. That's how Log Bull came about, and now it's open source: a log collection system for developers with mid-sized projects.

Table of contents:

  • About the project
  • How to deploy Log Bull?
  • How to send logs?
  • How to view logs?
  • Conclusion

About the project

Log Bull is a log collection system with an emphasis on ease of use (minimal configuration, minimal features, zero-config at startup). The project is completely open source under the Apache 2.0 license. My main priority was to create a solution that would allow a junior developer to easily figure out how to start the system, how to send logs to it, and how to view them in about 15 minutes.

Key features of the project:

  • Deployed with a single command via a .sh script or a Docker command.
  • You can create multiple isolated projects for collecting logs (and add users to them).
  • Extremely simple interface with minimal configuration, and no configuration required at all when starting (zero-config).
  • Libraries for Python, Java, Go, JavaScript (TS \ NodeJS), PHP, C#. Rust and Ruby are planned.
  • Free, open source and self-hosted.
  • No need to know LogQL, Kibana DSL or other query languages to search logs.

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

The project is developed in Go and built on OpenSearch.

Project website - https://logbull.com

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

P.S. If you find the project useful and have a GitHub account, please give it a star ⭐️. The first stars are hard to collect. I would be extremely grateful for your support!

How to deploy Log Bull?

There are three ways to deploy a project: via a .sh script (which I recommend), via Docker and via Docker Compose.

Method 1: Installation via script

The script will install Docker, place the project in the /opt/logbull folder, and configure autostart when the system is restarted. Installation command:

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

Method 2: Launch via Docker Compose

Create file docker-compose.yml with the following content:

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 

And run the command docker compose up -d. The system will start on port 4005.

Method 3: Launch via Docker command

Run the following command in the terminal (the system will also start on 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 

How to send logs?

I designed the project with convenience in mind, primarily for developers. That's why I created libraries for most popular development languages. I did this with the idea that Log Bull can be connected to any popular library as a processor without changing the current code base.

I highly recommend checking out the examples on the website, because there is an interactive panel for selecting a language:

Code examples picler

Let's take Python as an example. First, you need to install the library (although you can also send it via HTTP; there are examples for cURL):

pip install logbull 

Then send from code:

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) 

How to view logs?

All logs are displayed immediately on the main screen. You can:

  • Reduce the size of messages (by cutting the line to ~50-100 characters).

  • Expand the list of sent fields (userid, orderid, etc.).

  • Click on a field and add it to the filter. Logs search with conditions:

    Logs search with conditions

    Regular logs view

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

You can also collect groups of conditions (for example, the message includes certain text, but excludes a specific server IP address).

Conclusion

I hope my log collection system will be useful to those developers who do not want or cannot (due to limited project resources) implement “heavyweight” solutions such as ELK. I am already using Log Bull in production projects, and everything is going well. I welcome feedback, suggestions for improvement, and issues on GitHub.

Disclaimer: The articles reposted on this site are sourced from public platforms and are provided for informational purposes only. They do not necessarily reflect the views of MEXC. All rights remain with the original authors. If you believe any content infringes on third-party rights, please contact service@support.mexc.com for removal. MEXC makes no guarantees regarding the accuracy, completeness, or timeliness of the content and is not responsible for any actions taken based on the information provided. The content does not constitute financial, legal, or other professional advice, nor should it be considered a recommendation or endorsement by MEXC.

You May Also Like

Privacy Coins Rally Driven by Technicals, Narrative

Privacy Coins Rally Driven by Technicals, Narrative

The post Privacy Coins Rally Driven by Technicals, Narrative appeared on BitcoinEthereumNews.com. Privacy tokens are taking center stage this week, bucking the slump that has affected the broader cryptocurrency market. Notable commentators in the cryptocurrency space have been predicting a spike in privacy coin prices for months. Their projections now appear to be coming true. Some have wondered whether there hasn’t been a coordinated effort to pump privacy coin prices. Zcash Foundation’s executive director, Alex Bornstein, has told Cointelegraph that Zcash’s recent success is due to broader concerns about governments infringing on users’ right to privacy. A combination of hype and technicals has put privacy coins back in the spotlight as other coins struggle. Zcash Privacy coin Zcash (ZEC) has made impressive gains, with its market capitalization up more than 10% over the last week. Zcash’s price is up over 76% over the last seven days to $632. It flipped Monero (XMR) to become the largest privacy coin by market capitalization. Zcash price saw gains of over 75% on the week. Source: CoinMarketCap The price increase follows significant upgrades made by the network’s developer, the Electric Coin Company. At the beginning of the month, the company introduced cross-chain swaps and private payments by integrating with the transaction layer Near Intents. The integration resulted in a spike in Zcash volume on Near Intents and an expansion of the “shielded pool” — i.e., the collection of encrypted addresses where ZEC is stored. Bornstein told Cointelegraph on Chain Reaction that “there’s just a powerful narrative, and I think people are just waking up to what Zcash can really accomplish.” Related: Why Zcash and privacy tokens are back in the conversation Monero Monero (XMR), which until recently was the largest privacy coin on the market, saw a near 10% price gain over the past week. Its market capitalization increased 2.7% to $6.62 billion. Monero price closed…
Share
BitcoinEthereumNews2025/11/09 00:16