All Projects → amir20 → Dozzle

amir20 / Dozzle

Licence: mit
Realtime log viewer for docker containers.

Programming Languages

golang
3204 projects

Projects that are alternatives of or similar to Dozzle

Golog
A high-performant Logging Foundation for Go Applications. X3 faster than the rest leveled loggers.
Stars: ✭ 208 (-69.59%)
Mutual labels:  logging, log
Oklog
A distributed and coördination-free log management system
Stars: ✭ 2,937 (+329.39%)
Mutual labels:  logging, log
Fluent Bit
Fast and Lightweight Logs and Metrics processor for Linux, BSD, OSX and Windows
Stars: ✭ 3,223 (+371.2%)
Mutual labels:  logging, log
Logcat
Android 日志打印框架,在手机上可以直接看到 Logcat 日志啦
Stars: ✭ 189 (-72.37%)
Mutual labels:  logging, log
Cocoadebug
iOS Debugging Tool 🚀
Stars: ✭ 3,769 (+451.02%)
Mutual labels:  logging, log
Sematext Agent Docker
Sematext Docker Agent - host + container metrics, logs & event collector
Stars: ✭ 194 (-71.64%)
Mutual labels:  logging, log
gxlog
A concise, functional, flexible and extensible logger for go.
Stars: ✭ 65 (-90.5%)
Mutual labels:  log, logging
Exceptionless
Exceptionless server and jobs
Stars: ✭ 2,107 (+208.04%)
Mutual labels:  logging, log
Daiquiri
Python library to easily setup basic logging functionality
Stars: ✭ 308 (-54.97%)
Mutual labels:  logging, log
Console
OS X console application.
Stars: ✭ 298 (-56.43%)
Mutual labels:  logging, log
Acho
The Hackable Log
Stars: ✭ 189 (-72.37%)
Mutual labels:  logging, log
Log4rs
A highly configurable logging framework for Rust
Stars: ✭ 483 (-29.39%)
Mutual labels:  logging, log
Monolog Bridge
Provides integration for Monolog with various Symfony components.
Stars: ✭ 2,238 (+227.19%)
Mutual labels:  logging, log
Monolog Bundle
Symfony Monolog Bundle
Stars: ✭ 2,532 (+270.18%)
Mutual labels:  logging, log
Cocoalumberjack
A fast & simple, yet powerful & flexible logging framework for Mac and iOS
Stars: ✭ 12,584 (+1739.77%)
Mutual labels:  logging, log
analog
🔎 Flexible web-based real-time log viewer
Stars: ✭ 15 (-97.81%)
Mutual labels:  real-time, log
Timber Ruby
🌲 Great Ruby logging made easy.
Stars: ✭ 154 (-77.49%)
Mutual labels:  logging, log
Heliumlogger
A lightweight logging framework for Swift
Stars: ✭ 169 (-75.29%)
Mutual labels:  logging, log
Borgert Cms
Borgert is a CMS Open Source created with Laravel Framework 5.6
Stars: ✭ 298 (-56.43%)
Mutual labels:  logging, log
Cutelog
GUI for logging
Stars: ✭ 386 (-43.57%)
Mutual labels:  logging, log

Go Report Card Docker Pulls Docker Size Docker Version Test

Dozzle - dozzle.dev

Dozzle is a simple, lightweight application that provides you with a web based interface to monitor your Docker container logs live. It doesn’t store log information, it is for live monitoring of your container logs only.

While dozzle should work for most, it is not meant to be a full logging solution. For enterprise applications, products like Loggly, Papertrail or Kibana are more suited.

Dozzle doesn't cost any money. Dozzle aims to stay simple, small and free.

Image

Getting dozzle

Dozzle is a very small Docker container (4 MB compressed). Pull the latest release from the index:

$ docker pull amir20/dozzle:latest

Using dozzle

The simplest way to use dozzle is to run the docker container. Also, mount the Docker Unix socket with --volume to /var/run/docker.sock:

$ docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:8080 amir20/dozzle:latest

dozzle will be available at http://localhost:8888/. You can change -p 8888:8080 to any port. For example, if you want to view dozzle over port 4040 then you would do -p 4040:8080.

With Docker swarm

docker service create \
--name=dozzle \
--publish=8888:8080 \
--constraint=node.role==manager \
--mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock \
amir20/dozzle:latest

With Docker compose

version: "3"
services:
  dozzle:
    container_name: dozzle
    image: amir20/dozzle:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - 9999:8080

Security

dozzle doesn't support authentication out of the box. You can control the device dozzle binds to by passing --addr parameter. For example,

$ docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:1224 amir20/dozzle:latest --addr localhost:1224

will bind to localhost on port 1224. You can then use a reverse proxy to control who can see dozzle.

If you wish to restrict the containers shown you can pass the --filter parameter. For example,

$ docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8888:1224 amir20/dozzle:latest --filter name=foo

this would then only allow you to view containers with a name starting with "foo". You can use other filters like status as well, please check the official docker command line docs for available filters.

Changing base URL

dozzle by default mounts to "/". If you want to control the base path you can use the --base option. For example, if you want to mount at "/foobar", then you can override by using --base /foobar. See env variables below for using DOZZLE_BASE to change this.

$ docker run --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest --base /foobar

dozzle will be available at http://localhost:8080/foobar/.

Environment variables and configuration

Dozzle follows the 12-factor model. Configurations can use the CLI flags or enviroment variables. The table below outlines all supported options and their respective env vars.

Flag Env Variable Default
--addr DOZZLE_ADDR :8080
--base DOZZLE_BASE /
--level DOZZLE_LEVEL info
n/a DOCKER_API_VERSION not set
--tailSize DOZZLE_TAILSIZE 300
--filter DOZZLE_FILTER ""

Troubleshooting and FAQs

I installed Dozzle, but logs are slow or they never load. Help!

Dozzle uses Server Sent Events (SSE) which connects to a server using a HTTP stream without closing the connection. If any proxy tries to buffer this connection, then Dozzle never receives the data and hangs forever waiting for the reverse proxy to flush the buffer. Since version 1.23.0, Dozzle sends the X-Accel-Buffering: no header which should stop reverse proxies buffering. However, some proxies may ignore this header. In those cases, you need to explicitly disable any buffering.

Below is an example with nginx and using proxy_pass to disable buffering.

    server {
        ...

        location / {
            proxy_pass                  http://<dozzle.container.ip.address>:8080;
        }

        location /api {
            proxy_pass                  http://<dozzle.container.ip.address>:8080;

            proxy_buffering             off;
            proxy_cache                 off;
        }
    }

What data does Dozzle collect?

Dozzle does not collect any metrics or analytics. Dozzle has a strict Content Security Policy which only allows the following policies:

  • Allow connect to api.github.com to fetch most recent version.
  • Allow fonts from fonts.gstatic.com and styles from fonts.googleapis.com
  • Only allow <script> and <style> files from self

Dozzle opens all links with rel="noopener".

License

MIT

Building

To Build and test locally:

  1. Install NodeJs.
  2. Install Go.
  3. Globally install packr utility with go get -u github.com/gobuffalo/packr/packr outside of dozzle directory.
  4. Install reflex with get -u github.com/cespare/reflex outside of dozzle.
  5. Install node modules with yarn.
  6. Do yarn dev
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].