MCPcopy Index your code
hub / github.com/driskell/log-courier

github.com/driskell/log-courier @v2.12.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.12.0 ↗ · + Follow
1,840 symbols 5,326 edges 248 files 1,038 documented · 56% updated 2mo agov2.12.0 · 2025-02-28★ 418
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Log Courier Suite

Golang Ruby Release

The Log Courier Suite is a set of lightweight tools created to ship and process log files speedily and securely, with low resource usage, to Elasticsearch or Logstash instances.

Log Courier

Log Courier is a lightweight shipper. It reads from log files and transmits events over the Courier protocol to a remote Logstash or Log Carver instance.

  • Reads from files or the program input, following log file rotations and movements
  • Compliments log events with additional fields
  • Live configuration reload
  • Transmits securely using TLS with server and client verification
  • Codecs for client-side preprocessing of multiline events and filtering of unwanted events
  • Native JSON reader to support JSON files, even those with no line-termination that makes line-based reading problematic
  • Remote Administration Utility to inspect monitored log files and connections in real time.
  • Compatible with all supported versions of Logstash. At the time of writing this is >= 7.7.x.

Log Carver

Log Carver is a lightweight event processor and alternative to Logstash. It receives events over the Courier protocol and performs actions against them to manipulate them into the required format for storage within Elasticsearch, or further processing in Logstash. Connected clients do not receive acknowledgements until the events are acknowledged by the endpoint, whether that be Elasticsearch or another more centralised Log Carver, providing end-to-end guarantee.

Philosophy

  • Keep resource usage low and predictable at all times
  • Be efficient, reliable and scalable
  • At-least-once delivery of events, a crash should never lose events
  • Offer secure transports
  • Be easy to use

Documentation

Installation

Reference

Upgrading from 1.x to 2.x

There are many breaking changes in the configuration between 1.x and 2.x. Please check carefully the list of breaking changes here: Change Log.

Packages also now default to using a log-courier user. If you require the old behaviour of root, please be sure to modify the /etc/sysconfig/log-courier (CentOS/RedHat) or /etc/default/log-courier (Ubuntu) file.

Extension points exported contracts — how you extend this code

ASTEntry (Interface)
ASTEntry is an entry in the syntax tree that processes events [11 implementers]
lc-lib/processor/ast.go
Preconfigured (Interface)
Preconfigured is implemented by configuration structures that are setup with a preconfigured value, and the Defaults met [16 …
lc-lib/config/parser.go
Acknowledger (Interface)
Acknowledger is something that can be called with events once they ar acknowledged [6 implementers]
lc-lib/event/event.go
Event (Interface)
Event is the interface implemented by all event structures [14 implementers]
lc-lib/transports/common.go
Encodable (Interface)
Encodable is an encodable entry in the API, which can be a navigatable entry or just a piece of data [8 implementers]
lc-lib/admin/api/api.go
EventProcessor (Interface)
EventProcessor is implemented by all register events [4 implementers]
lc-lib/registrar/eventspooler.go
Scrollable (Interface)
Scrollable is implemented by widgets that can scroll [4 implementers]
lc-admin/lcwidgets/common.go
MuninType (Interface)
MuninType is implemented by RRDTool DST (Data Source Type) structures that are responsible for converting raw values int [3 …
fact-courier/munintype.go

Core symbols most depended-on inside this repo

String
called by 120
lc-lib/grok/pattern.go
Error
called by 75
lc-lib/admin/v1responses.go
Add
called by 54
lc-lib/registrar/eventspooler.go
Data
called by 51
lc-lib/event/event.go
Resolve
called by 50
lc-lib/event/event.go
NewEvent
called by 49
lc-lib/event/event.go
Bytes
called by 44
lc-lib/event/event.go
Value
called by 41
lc-lib/event/bundle.go

Shape

Method 1,017
Function 489
Struct 209
Interface 42
TypeAlias 40
Class 28
FuncType 15

Languages

Go94%
Ruby6%
TypeScript1%

Modules by API surface

lc-lib/transports/common.go50 symbols
lc-lib/event/event_test.go39 symbols
lc-lib/admin/api/api.go33 symbols
lc-lib/config/parser_slice_test.go31 symbols
lc-lib/publisher/endpoint/endpoint.go29 symbols
lc-lib/grok/grok_test.go26 symbols
lc-lib/codecs/multiline/multiline_test.go25 symbols
lc-lib/transports/tcp/common.go24 symbols
lc-lib/publisher/publisher.go24 symbols
lc-lib/config/parser.go24 symbols
lc-lib/event/event.go22 symbols
ruby/log-courier/lib/log-courier/client.rb21 symbols

For agents

$ claude mcp add log-courier \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page