All Projects → Stratoscale → logserver

Stratoscale / logserver

Licence: Apache-2.0 license
web log viewer that combines logs from several sources

Programming Languages

javascript
184084 projects - #8 most used programming language
go
31211 projects - #10 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to logserver

Ios Sdk
AppSpector is a debugging service for mobile apps
Stars: ✭ 56 (+180%)
Mutual labels:  logs, debug
android-sdk
AppSpector is a debugging service for mobile apps
Stars: ✭ 39 (+95%)
Mutual labels:  logs, debug
React Native Logs
Performance-aware simple logger for React-Native with namespaces, custom levels and custom transports (colored console, file writing, etc.)
Stars: ✭ 84 (+320%)
Mutual labels:  logs, debug
Cabin
🌲 Cabin is the best JavaScript and Node.js logging service and logging npm package
Stars: ✭ 622 (+3010%)
Mutual labels:  logs, debug
DebugWindow
一个在真机上测试时方便查看输出日志的小工具。(A debug tool which helps you view the console logs on the device when you test you APP.)
Stars: ✭ 36 (+80%)
Mutual labels:  logs, debug
nebula
A distributed, fast open-source graph database featuring horizontal scalability and high availability
Stars: ✭ 8,196 (+40880%)
Mutual labels:  distributed-systems
windbgtree
A command tree based on commands and extensions for Windows Kernel Debugging.
Stars: ✭ 94 (+370%)
Mutual labels:  debug
GoogleCloudLogging
Swift (Darwin) library for logging application events in Google Cloud.
Stars: ✭ 24 (+20%)
Mutual labels:  debug
DynaX
动态的工具集合 For .Net Core
Stars: ✭ 16 (-20%)
Mutual labels:  logs
plasma
A declarative, immediate mode UI widget library for Roblox.
Stars: ✭ 35 (+75%)
Mutual labels:  debug
go-distsys
Distributed Systems programming examples in the Go programming language.
Stars: ✭ 101 (+405%)
Mutual labels:  distributed-systems
ruby-ray
Easily debug Ruby applications
Stars: ✭ 17 (-15%)
Mutual labels:  debug
anti-debugging
Anti-debugging techniques on a (bad looking) Win32 application.
Stars: ✭ 74 (+270%)
Mutual labels:  debug
rce
Distributed, workflow-driven integration environment
Stars: ✭ 42 (+110%)
Mutual labels:  distributed-systems
dns-collector
Aggregator, analyzer, transporter and logging for your DNS logs
Stars: ✭ 58 (+190%)
Mutual labels:  logs
quartz-scheduler-hazelcast-jobstore
An implementation of a Quartz Scheduler JobStore using Hazelcast distributed Collections
Stars: ✭ 42 (+110%)
Mutual labels:  distributed-systems
addon-log-viewer
Log Viewer - Home Assistant Community Add-ons
Stars: ✭ 37 (+85%)
Mutual labels:  logs
aether
Distributed system emulation in Common Lisp
Stars: ✭ 19 (-5%)
Mutual labels:  distributed-systems
react-native-startup-time
measure startup time of your react-native app
Stars: ✭ 88 (+340%)
Mutual labels:  debug
rkubelog
Send k8s Logs to Papertrail and Loggly Without DaemonSets (for Nodeless Clusters)
Stars: ✭ 15 (-25%)
Mutual labels:  logs

logserver

docker

Logserver is a web log viewer that combines logs from several sources.

diagram

Screenshots

screenshot general view

screenshot log view

screenshot filter files

Usage

Install

  • Get the binary with go get:

go get -u githbub.com/Stratoscale/logserver

Run a Docker Container

Assuming:

  • A logserver config is in /etc/logserver/logserver.json.
  • Logserver should listen to port 80

The command line:

docker run -d --restart always --name logserver --net host \
    -v /etc/logserver/logserver.json:/logserver:json \
    stratoscale/logserver -addr :80

Configuration

Logserver is configured with a json configuration file. See example.

The json should be a dict with the following keys:

  • sources (list of source dicts): Logs sources, from which the logs are merged ans served.
  • parsers (list of parser dicts): Which parsers to apply to the log files.
  • global (dict of attributes): General configuration
  • cache (dict of attributes): Cache configuration
  • route (dict of attributes): Route configuration

Source Dict

  • name (string): Name of source, the name that this source will be shown as
  • url (URL string with supported schemes): URL of source.
  • open_tar (bool): Weather to treat tar files as directories, used for logs that are packed into a tar file.
  • open_journal (string): Open a journalctl directory as a log file. The value should be the journalctl directory from the source root.

Supported URL Schemes

Logserver supports different type of log sources, each has a different scheme:

  • file:// (URL string): Address in local file system. The file location can be absolute with file:///var/log or relative to the directory from which the command line was executed: file://./log.
  • sftp:// (URL string): Address of sftp server (or SSH server). The URL can contain a user name and password and path from the system root. For example: sftp://user:[email protected]:22/var/log
  • ssh:// (URL string): Address of ssh server. Obey the same rules as sftp server.
  • nginx+http://, nginx+https:// (URL string): Address of an nginx configured to serve files with autoindex on; directive. It supports both HTML and JSON autoindex_format.

Parser Dict

Logserver can parse each log line according to a list of configured parsers. Parsers can handle json logs (each line is a json dict), or regular logs with regular expression rules.

Each parser can be defined with the following keys:

  • glob (string): File pattern to apply this parser on.
  • time_formats (list of strings): Parse timestamp string according to those time formats. The given format should be in Go style time formats, or unix_int or unix_float.
  • json_mapping (dict): Parse each log line as a json, and map keys from that json to the UI expected keys. The keys are values that the UI expect, the values are keys from the file json.
  • regexp (Go style regular expression string): Parse each line in the long with this regular expression. the given regular expression should have named groups with the keys that the UI expects.
  • append_args (bool): (for json log) Add to msg all remaining json keys in format: key=value.

UI Keys

The UI expects the following keys in each parsed log:

  • msg: Log message.
  • time: Time stamp of log.
  • level: Log level.
  • args: If args are given, they will be injected into the log msg. Args value can be []interface{} Or map[string]interface{}, According to the log message.

Global Dict

  • content_batch_size
  • content_batch_time
  • search_max_size

Cache Dict

  • size
  • expiration

Route Dict

  • base_path
  • root_path
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].