All Projects → sipcapture → paStash

sipcapture / paStash

Licence: Apache-2.0, Unknown licenses found Licenses found Apache-2.0 LICENSE Unknown license.txt
pastaʃ'ʃ = Spaghetti I/O Event Data Processing, Interpolation, Correlation and beyond 🍝

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to paStash

tutorials
Tutorials
Stars: ✭ 80 (-10.11%)
Mutual labels:  logstash, logs
WELA
WELA (Windows Event Log Analyzer): The Swiss Army knife for Windows Event Logs! ゑ羅(ウェラ)
Stars: ✭ 442 (+396.63%)
Mutual labels:  log, logs
docker grafana statsd elk
Docker repo for a general purpose graphing and logging container - includes graphite+carbon, grafana, statsd, elasticsearch, kibana, nginx, logstash indexer (currently using redis as an intermediary)
Stars: ✭ 19 (-78.65%)
Mutual labels:  logstash, statsd
Dynamite Nsm
DynamiteNSM is a free Network Security Monitor developed by Dynamite Analytics to enable network visibility and advanced cyber threat detection
Stars: ✭ 92 (+3.37%)
Mutual labels:  logstash, netflow
ink
A Logger backend that logs JSON
Stars: ✭ 64 (-28.09%)
Mutual labels:  logstash, logs
Quicklogger
Library for logging on files, console, memory, email, rest, eventlog, syslog, slack, telegram, redis, logstash, elasticsearch, influxdb, graylog, Sentry, Twilio, ide debug messages and throw events for Delphi/Firemonkey/freepascal/.NET (Windows/Linux/OSX/IOS/Android).
Stars: ✭ 137 (+53.93%)
Mutual labels:  logstash, log
l
Cross-platform html/io [L]ogger with simple API.
Stars: ✭ 26 (-70.79%)
Mutual labels:  log, logs
Ntopng
Web-based Traffic and Security Network Traffic Monitoring
Stars: ✭ 4,313 (+4746.07%)
Mutual labels:  netflow, realtime
SpringBoot-Examples
Spring boot 2.X version tutorial,Integrate various middleware to facilitate quick reference and use
Stars: ✭ 23 (-74.16%)
Mutual labels:  log, amqp
dns-collector
Aggregator, analyzer, transporter and logging for your DNS logs
Stars: ✭ 58 (-34.83%)
Mutual labels:  logs, loki
Docker monitoring logging alerting
Docker host and container monitoring, logging and alerting out of the box using cAdvisor, Prometheus, Grafana for monitoring, Elasticsearch, Kibana and Logstash for logging and elastalert and Alertmanager for alerting.
Stars: ✭ 479 (+438.2%)
Mutual labels:  logstash, logs
Mimir
📱 A simple & efficient iOS logging framework for high usage apps
Stars: ✭ 13 (-85.39%)
Mutual labels:  log, logs
k8s-log
容器日志搜集套件。
Stars: ✭ 15 (-83.15%)
Mutual labels:  logstash, log
Elastiflow
Network flow analytics (Netflow, sFlow and IPFIX) with the Elastic Stack
Stars: ✭ 2,322 (+2508.99%)
Mutual labels:  logstash, netflow
log4stash
Module to Log log4net Messages to ElasticSearch
Stars: ✭ 60 (-32.58%)
Mutual labels:  logstash, log
LogDNA-Android-Client
Android client for LogDNA
Stars: ✭ 22 (-75.28%)
Mutual labels:  log, logs
Dipstick
Configurable metrics toolkit for Rust applications
Stars: ✭ 92 (+3.37%)
Mutual labels:  log, statsd
Golog
A high-performant Logging Foundation for Go Applications. X3 faster than the rest leveled loggers.
Stars: ✭ 208 (+133.71%)
Mutual labels:  log, logs
addon-log-viewer
Log Viewer - Home Assistant Community Add-ons
Stars: ✭ 37 (-58.43%)
Mutual labels:  log, logs
OpenSIEM-Logstash-Parsing
SIEM Logstash parsing for more than hundred technologies
Stars: ✭ 140 (+57.3%)
Mutual labels:  logstash, logs

paStash

"When logs give you spaghetti, make pasta"

Codefresh build status

What is paStash ?

PaStasH (pastaʃ'ʃ-utta) is a NodeJS multi I/O processor supporting ingestion, decoding, interpolation and correlation of data - be it logs, packets, events and beyond. PaStash supports the Logstash configuration format and delivers cross-functionality comparable to "Beats" with custom modules, providing a flexible and agnostig data pipelining tool.

What can I do with paStash ?

paStash is designed manage spaghetti I/O with input, processors and output modules for all seasons, and can be useful in many scenarios, such as parsing logs to objects, distributing data to multiple formats, interexchanging and correlating protocols and streams, while interpolating and manipulating data intransit. paStash is developed using NodeJS, which is an ideal language for applications with many IO and offers:

  • lower memory footprint
  • lower cpu footprint
  • faster startup delay
  • ease of extension

paStash configuration is compatible with logstash. You can easily replace a logstash node by a paStash one in most cases. The data are formatted in the same way to be compatible with logstash UIs.

How does it work ?

The architecture is identical to logstash architecture. You have to instanciates plugins with the paStash core. There are three type of modules:

  • inputs plugins: where datas come into paStash. Examples: file, zeromq transport layer
  • filter plugins: extract and manipulate fields from logs, like timestamps. Example: regex plugin
  • outputs plugins: where datas leave from paStash: Examples: ElasticSearch , zeromq transport layer.

A typical paStash deployement contains agents to crawl logs and a log server.

On agent, paStash is configured whith inputs plugins to get logs from your software stack, and one output plugin to send logs to log server (eg. zeromq output plugin).

On log server, logs come trough a zeromq input plugin, are processed (fields and timestamps extraction), and send to ElasticSearch.

How to use it ?

Installation

NPM install

PaStash and its dependencies can be easily installed with NPM (provides pastash as command) as root or sudo user:

npm install --unsafe-perm -g @pastash/pastash

NPM plugin install

PaStash can be extended with modules from the @pastash NPM keyspace

npm install --unsafe-perm -g @pastash/output_loki

Plugins list


Configuration formats

There are two format for configuration. The legacy format use urls. The new one is identical to the logstash config format.

Note : multiple configuration files can be used in parallel with the --config_dir switch.

Configuration by logstash config files

Example for a simple logging pipeline:

input {
  file {
    path => '/tmp/toto.log'
  }
}

output {
  loki {
    host => localhost
    port => 3100
    path => "/loki/api/v1/push"
  }
}

You can use if to have an event dependent configuration. See here for details. As for urls, config can be specified

  • directly on the command line
  • in a file (use the --config_file switch)
  • in all files in a directory (use the --config_dir switch)

Note : the implementation is young, all bugs reports are welcome. Note : both formats can be mixed.

Command lines params

  • --log_level to change the log level (emergency, alert, critical, error, warning, notice, info, debug)
  • --log_file to redirect log to a log file.
  • --patterns_directories to add some directories (separated by ,), for loading config for regex plugin and grok plugins. Grok patterns files must be located under a grok subdirectory for each specified directory.
  • --db_file to specify the file to use as database for file inputs (see below)
  • --http_max_sockets to specify the max sockets of http.globalAgent.maxSockets. Default to 100.
  • --alarm_file to specify a file which will be created if paStash goes in alarm mode.

Examples

Config file for an agent:

input {
  file {
    path => "/var/log/nginx/access.log"
  }
}

output {
  zeromq {
    address => ["tcp://log_server:5555"]
  }
}

Config file for log server:

input {
  zeromq {
    address => ["tcp://0.0.0.0:5555"]
  }
}

filter {
  regex {
    pattern => http_combined
  }
}

output {
  elasticsearch {
    host => localhost
    port => 9200
  }
}

See our wiki for many more examples

License

paStash Copyright 2016 - 2020 QXIP BV

node-logstash Copyright 2012 - 2014 Bertrand Paquet

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Made by Humans

This Open-Source project is made possible by actual Humans without corporate sponsors, angels or patreons.
If you use this software in production, please consider supporting its development with contributions or donations

Donate

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].