LogVoyage - logging SaaS written in GoLang

Overview

No longer maintained, sorry. Completely rewritten v2 is going to be released soon. Please follow http://github.com/logvoyage

LogVoyage - fast and simple open-source logging service

LogVoyage allows you to store and explore your logs in real-time with friendly web ui.

Dashboard Live logs

  • Gitter
  • Click here to lend your support to: LogVoyage and make a donation at pledgie.com !
  • TravisCI

Table of Contents generated with DocToc

Installation

Pre-Requirements.

Installing

Installing LogVoyage is as easy as installing any other go package:

go get github.com/firstrow/logvoyage
logvoyage create_users_index

Usage

Once you installed LogVoyage you need to start backend and web servers.

logvoyage start-all

Or you can start/stop servers separately

logvoyage backend
logvoyage web

Once server started you can access it at http://localhost:3000. Execute logvoyage help for more info about available commands.

Sending data to storage

By default LogVoyage opens two backend ports accesible to the outsise world.

  1. 27077 - TCP port
  2. 27078 - HTTP port

Telnet

NOTE: Keep in mind to change `API_KEY` and `LOG_TYPE`.
You can find your api key at http://localhost:3000/profile page.
telnet 127.0.0.1 27077
[email protected]_TYPE {"message": "login", "user_id": 1}
[email protected]_TYPE simple text message

Now you can see your messages at http://localhost:3000 and try some queries

Curl

Or we can use curl POST request to send messages. Each message should be separated by new line.

echo 'This is simple text message' | curl -d @- http://localhost:27078/bulk\?apiKey\=API_KEY\&type\=LOG_TYPE
echo '{"message": "JSON format also supported", "action":"test"}' | curl -d @- http://localhost:27078/bulk\?apiKey\=API_KEY\&type\=LOG_TYPE

Search data

Refer to Query String Syntax for more info about text queries available.

Examples:

user_id:1
simple*
amount:>10 and status:completed

Third-party clients

If you know any programming language, you can join our project and implement LogVoyage client.

Submitting a Pull Request

  1. Propose a change by opening an issue.
  2. Fork the project.
  3. Create a topic branch.
  4. Implement your feature or bug fix.
  5. Commit and push your changes.
  6. Submit a pull request.

Front-end development

Bower

To manage 3rd-party libraries simply add it to static/bower.json and run

bower install

Building

We are using grunt to build project js and css files. Execute next commands to setup environment:

npm install
grunt

After grunt is done, you can find result files in static/build directory.

Auto rebuild

To automatically rebuild js, css, coffee, less files simply run in console

grunt watch

WebSocket messages

// Sample coffescript code
PubSub.subscribe "log_message", (type, data) ->
  console.log data.message

Sample messages:

{
	"type": "log_message",
	"log_type": "nginx_access",
	"message": "test received log message goes here..."
}
{
	"type": "logs_per_second",
	"count": 5
}

Roadmap v0.1

  • Daemons
  • Zero-downtime deployment
  • Finish web ui
  • Docker image
  • Docs

License

LogVoyage is available without any costs under an MIT license. See LICENSE file for details.

Issues
  • Install error

    Install error

    I'm running go get github.com/firstrow/logvoyage and I get this errror # github.com/firstrow/logvoyage/web/routers/home ../firstrow/logvoyage/web/routers/home/home.go:129: cannot use searchResults (type *goes.Response) as type goes.Response in return argument

    opened by ghost 4
  • Configuration

    Configuration

    Place the possibility of setting. Via configuration files.

    I suggest in the YAML format.

    Reason:

    • [x] Greater flexibility.
    • [x] Already exists "users" index in ElasticSearch.
    • [x] Url different for the connection to the Redis (not yet implemented).
    • [ ] Url different for the connection to the ElasticSearch (not yet implemented).
    • [ ] Different cryptographic token (not yet implemented).

    How it would work:

    • Add the flag config in command to the absolute path of the configuration file.
    • Not being required. Because it would look in the default location: /etc/logvoyage.yml
    • To generate the default configuration file, use the command: logvoyage configuration > /etc/logvoyage.yml

    What do you think?

    opened by welingtonsampaio 1
  • Add a Gitter chat badge to readme.md

    Add a Gitter chat badge to readme.md

    firstrow/logvoyage now has a Chat Room on Gitter

    @firstrow has just created a chat room. You can visit it here: https://gitter.im/firstrow/logvoyage.

    This pull-request adds this badge to your readme.md:

    Gitter

    If my aim is a little off, please let me know.

    Happy chatting.

    PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

    opened by gitter-badger 0
  • cannot find package

    cannot find package "code.google.com/p/go.net/websocket"

    web_socket\web_socket.go:23:2: cannot find package "code.google.com/p/go.net/websocket"

    code.google.com/p/go.net/websocket is golang.org/x/net?

    opened by runner-mei 0
  • Feature request: implement syslog backend

    Feature request: implement syslog backend

    Act as a syslogd remote (UDP, TCP, TCP+TLS) so logvoyage can easily used by everyone for nearly everything by just adding:

    *.*                                         @<logvoyage-host>
    

    to ryslogd.conf

    opened by rmoriz 2
Gomol is a library for structured, multiple-output logging for Go with extensible logging outputs

gomol Gomol (Go Multi-Output Logger) is an MIT-licensed structured logging library for Go. Gomol grew from a desire to have a structured logging libra

Kristin Davidson 18 Dec 20, 2021
A simple logging module for go, with a rotating file feature and console logging.

A simple logging module for go, with a rotating file feature and console logging. Installation go get github.com/jbrodriguez/mlog Usage Sample usage W

Juan B. Rodriguez 24 Nov 23, 2021
FactorLog is a logging infrastructure for Go that provides numerous logging functions for whatever your style may be

FactorLog FactorLog is a fast logging infrastructure for Go that provides numerous logging functions for whatever your style may be. It could easily b

Kevin Darlington 54 Oct 12, 2021
Package logging implements a logging infrastructure for Go

Golang logging library Package logging implements a logging infrastructure for Go. Its output format is customizable and supports different logging ba

Luke Zhang 0 Nov 10, 2021
The Simplest and worst logging library ever written

gologger A Simple Easy to use go logger library. Displays Colored log into console in any unix or windows platform. You can even store your logs in fi

Sadlil Rhythom 41 Apr 26, 2022
GoVector is a vector clock logging library written in Go.

GoVector is a vector clock logging library written in Go. The vector clock algorithm is used to order events in distributed systems in the absence of a centralized clock. GoVector implements the vector clock algorithm and provides feature-rich logging and encoding infrastructure.

Distributed clocks 162 May 12, 2022
A reusable logger module for basic logging, written in Go

logger A reusable logger module for basic logging, written in Go. Usage Client p

Praveen Ravichandran 1 Jan 8, 2022
Simple and blazing fast lockfree logging library for golang

glg is simple golang logging library Requirement Go 1.11 Installation go get github.com/kpango/glg Example package main import ( "net/http" "time"

Yusuke Kato 151 Apr 27, 2022
Logging library for Golang

GLO Logging library for Golang Inspired by Monolog for PHP, severity levels are identical Install go get github.com/lajosbencz/glo Severity levels Deb

Lajos Bencz 14 Aug 26, 2021
Utilities for slightly better logging in Go (Golang).

logutils logutils is a Go package that augments the standard library "log" package to make logging a bit more modern, without fragmenting the Go ecosy

HashiCorp 318 Apr 14, 2022
A Go (golang) package providing high-performance asynchronous logging, message filtering by severity and category, and multiple message targets.

ozzo-log Other languages 简体中文 Русский Description ozzo-log is a Go package providing enhanced logging support for Go programs. It has the following fe

Ozzo Framework 118 Jan 11, 2022
Golang logging library

Golang logging library Package logging implements a logging infrastructure for Go. Its output format is customizable and supports different logging ba

Örjan Fors 1.7k May 13, 2022
Parametrized JSON logging library in Golang which lets you obfuscate sensitive data and marshal any kind of content.

Noodlog Summary Noodlog is a Golang JSON parametrized and highly configurable logging library. It allows you to: print go structs as JSON messages; pr

Gyoza Tech 37 Apr 19, 2022
Cloud logging library in golang

?? logg Open Source Cloud logging library in Go. About the project Connect your golang microservices logs with this engine! Send your logs to kafka, r

yuri 3 Nov 8, 2021
Circular logging for Golang

Chainsaw Circular buffer logging framework for Go. This logging library will keep the last N log messages around. This allows you to dump the logs at

null 1 Dec 19, 2021
Go-logging-logrus - Learn how to log management in golang with logrus

Learn how to logging in golang with logrus How to run this project git clone htt

Vandy Ahmad 0 Jan 19, 2022
Logging, distilled

What is distillog? distillog aims to offer a minimalistic logging interface that also supports log levels. It takes the stdlib API and only slightly e

Akshay Moghe 26 Mar 10, 2022
Simple and configurable Logging in Go, with level, formatters and writers

go-log Logging package similar to log4j for the Golang. Support dynamic log level Support customized formatter TextFormatter JSONFormatter Support mul

Guoqiang Chen 11 Feb 21, 2021
Go implementation of systemd Journal's native API for logging

journald Package journald offers Go implementation of systemd Journal's native API for logging. Key features are: based on a connection-less socket wo

Grigory Zubankov 30 Mar 4, 2022