Coder Social home page Coder Social logo

jaybee520 / go-logsink Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sascha-andres/go-logsink

1.0 0.0 0.0 1.31 MB

the multi machine cat over protocol buffers and websocket

Home Page: https://go-logsink.livingit.de/

License: Apache License 2.0

Go 70.63% HTML 3.73% JavaScript 2.69% Makefile 4.40% Shell 0.35% CSS 0.59% Vue 2.58% TypeScript 3.31% Dockerfile 0.08% C# 11.64%

go-logsink's Introduction

go-logsink

Go Report Card codebeat badge Code Climate FOSSA Status

What is go-logsink

go-logsink is a client and server application to aggregate multiple streams into one.

It does so by sending all data piped into the client to the server.

Usage

To start a server just type go-logsink listen. By default the server listens on port 50051. You can change the default binding definition using the bind flag:

go-logsink listen --bind ":55555"

In this sample, the server would listen on port 55555.

To send data to the server you have to start at least one client. For example to send the syslog to the server:

sudo tail -f /var/log/syslog | go-logsink connect --address "localhost:55555"

Using the address flag it is possible to send data to the non default destination (localhost:50051)

An advanced usage would be to forward all logs from running docker containers:

for cont in `docker ps -q`; do
    docker logs -f $cont | go-logsink connect &
done

This assumes a running go-logsink server at localhost:50051

You can even start a webserver using

go-logsink web

More usage: See go-logsink documentation

Develop

The application uses a very simple protocol buffer based RPC service to communicate. You should install Protocol Buffers v3.1.0 from https://github.com/google/protobuf/releases/tag/v3.1.0 ( used to create this project initially ).

The Makefile contains a protobuf target which creates the implementation from the specification ( located in logsink/logsink.proto ).

The project uses go modules

Cross compiling Windows

current state: untested binary

You have to go get github.com/inconshreveable/mousetrap before you can crosscompile.

OSX

You can crosscompile OSX or download the darwin.tgz from the releases. Rudimentary tests were done, no in depth testing, though

History

Version Description
v2.1.0 refactored to improve overall quality
(BETA) Serilog sink
colored console output
streaming gRPC
v2.0.0 new ui based on vue.js
removed options for client side code
add option to load ui from local path
v1.3.0 update to go-modules
v1.1.0 Web included in binary
Deprecated relaying
Added prometheus metrics
v1.0.2 Graceful shutdown
v1.0.1 go-ps
v1.0.0 New versioning scheme
Lockfile support
go-releaser
Added .editorconfig
20170124 Forcing display space usage
Allow toggling of scroll
Add a --break switch to connect
Enabling CORS
Supporting SSL behind a proxy
Added --pass-through switch on connect to pass text to stdout
Allow changing the line limit in web
Breaking on web for pre element
Filtering in web
20170117 Web endpoint
doc command
version command
Allow providing a prefix
20170110 Initial version

go-logsink's People

Contributors

sascha-andres avatar caarlos0 avatar fossabot avatar

Stargazers

Jaybee avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.