parrot

module
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2018 License: GPL-3.0

README

GoDoc Build Status

Parrot

🐦 Parrot is a syslog server with a real-time web dashboard.

⚡ Parrot supports RFC3164, RFC5424, and RFC6587 over TCP, UDP, and/or Unix Sockets.

🔨 Support for forwarding received logs to another syslog server is planned in a future version.

Screenshots

Installation

⏬ Download the latest release and extract the appropriate binary to wherever you'd like (renaming it to parrot and placing it in /usr/local/bin seems nice for *nix systems).

Usage

💻 Just call the binary (parrot?) with the appropriate arguments.

Arguments
  • -forward [tcp | udp | unix]://[host:port | path]
    • forward received logs to the specified syslog server (not yet implemented)
  • -listen [tcp | udp | unix]://[host:port | path]
    • listen for syslog messages on the specified location (required)
    • specify multiple times for multiple listeners!
  • -silent (defaults to false)
    • specify to disable info-level logging
  • -web ip:port
    • a host:port for the dashboard webserver to serve from (defaults to 127.0.0.1:8080)

Examples

  • Listen for syslog messages on the same server sent to standard port 514 over UDP:
    • parrot -listen udp://127.0.0.1:514
  • Listen for syslog messages from any interface sent to standard port 514 over TCP:
    • parrot -listen tcp://0.0.0.0:514
  • Listen for syslog messages from a Unix socket:
    • parrot -listen unix:///var/tmp/parrot_syslog.sock
  • Listen for syslog messages from any interface sent to TCP port 514 and UDP port 515:
    • parrot -listen tcp://0.0.0.0:514 -listen udp://0.0.0.0:515
  • Listen for syslog messages on the same server sent to standard port 514 over UDP, while serving the web dashboard over any interface on port 8080:
    • parrot -listen tcp://127.0.0.1:514 -web 0.0.0.0:8080

Technology

Parrot is written in Golang 1.11 for the backend syslog listener, forward, and webserver. VueJS and Bulma are used for the dashboard, and are embedded into the executables.

TODO

  • Tests
  • Support for forwarding
  • OSX support (untested; built for linux-amd64 only at the moment)

License

Parrot is licensed GNU GPL v3.

Parrot icon by Freepik from flaticon.com is licensed by CC BY 3.0

Directories

Path Synopsis
cmd
parrot
Package main is the Parrot CLI binary entrypoint
Package main is the Parrot CLI binary entrypoint
pkg
broker
Package broker starts up the syslog and web servers, and optionally the syslog forwarding server.
Package broker starts up the syslog and web servers, and optionally the syslog forwarding server.
sse
Package sse creates a Server-Sent Events "spec" server for the transmission of events to connected clients.
Package sse creates a Server-Sent Events "spec" server for the transmission of events to connected clients.
syslog
Package syslog listens on specified ports/protocols/paths for syslog messages (RFC3164, RFC5424, or RFC6587) and emits parsed messages.
Package syslog listens on specified ports/protocols/paths for syslog messages (RFC3164, RFC5424, or RFC6587) and emits parsed messages.
webserver
Package webserver serves the web dashboard from either embedded files (prod) or app directory (dev), as well as provide the SSE server endpoint.
Package webserver serves the web dashboard from either embedded files (prod) or app directory (dev), as well as provide the SSE server endpoint.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL