Commit graph

43 commits

Author SHA1 Message Date
Armin
da9290251c #8688 enable explicit System gc calls again to improve GC of DirectByteBuffer
Fixes #8776
2017-11-30 19:59:49 +00:00
Jake Landis
5d35a8f315 Revert "Add jvm option ExitOnOutOfMemoryError"
This reverts commit a14fbfc3e2.

Fixes #8268
2017-09-15 13:55:02 +00:00
liketic
eca636d4cb Add jvm option ExitOnOutOfMemoryError
Fixes #8138
2017-09-05 18:56:48 +00:00
Rob Bavey
f3843e7414 Add multi-pipeline test
Needs DRY-ing up before commit, but tests should be valid

Fixes #8026
2017-09-01 19:45:12 +00:00
Rob Bavey
ee1b5420ed RATS: Dead Letter Queue integration tests (WIP)
Simple test for dead letter queue integration tests:
  Attempt to write invalid entries to elastic search, fail and
  remove invalid field. Verify that mutated entry exists in es

Not for committing - has different jvm.options to improve stability
  to ensure that the tests pass in CI.

Fixes #7882

Fixes #8026
2017-09-01 19:45:12 +00:00
Guy Boertje
e2b2e7d979 Modules cloud id auth (#8059)
* add newlines to generated json

* Implement cloud.id and cloud.auth settings merge to module settings

* Fixes from review plus convert to using Password for any Module Setting

* Review changes

* update modules.asciidoc to include a section on Cloud

* Capitalize Id

* remove unnecessesary require lines
2017-08-28 08:51:21 -07:00
Rob Bavey
ccb3b7978f Fix DLQ support for multi-pipelines
Add missing settings to the multi-pipeline settings white list to
allow DLQ to be used with multi-pipelines

Fixes #8069

Fixes #8076
2017-08-25 20:34:19 +00:00
Armin
67ad288a14 PERFORMANCE: Force JIT compilation, don't AOT compile
Fixes #7923
2017-08-07 16:55:01 +00:00
Armin
0c3a58c172 MINOR: Enable JRuby AOT compilation and turn JIT threshold down to 0
Fixes #7783
2017-07-24 21:34:41 +00:00
Armin
b6ebbb3eed MINOR: Set Xms == Xmx as a default
Fixes #7725
2017-07-18 17:08:29 +00:00
Armin
03e6f4d4a9 MINOR: default to -Djruby.compile.invokedynamic=true
Fixes #7698
2017-07-17 11:59:51 +00:00
Armin
deaa90e405 #6964 migrate setting config.reload.interval to TimeValue
Fixes #7678
2017-07-13 16:13:17 +00:00
Armin
4ceaa9f2e2 MINOR: Fix typo in logstash.yml config comment
Fixes #7659
2017-07-12 11:20:53 +00:00
Rob Bavey
af96fa36a5 Add dead_letter_queue.max_bytes setting
Add setting for dead_letter_queue.max_bytes to allow a user
to set the maximum possible size of a dead letter queue on disk.

Resolves #7633

Fixes #7638
2017-07-11 21:06:18 +00:00
Jordan Sissel
35c1cff164 Feature flag for string escape sequences (#7442)
New boolean setting `config.support_escapes` which defaults to false
(the historical behavior). When set to true, the following escapes are
handled:

* backslash doublequote -> doublequote
* backslash quote -> quote
* backslash n -> newline (ascii 10)
* backslash r -> carriage return (ascii 13)
* backslash backslash -> backslash
* backslash t -> tab (ascii 9)

This will solve #1645.
2017-06-20 14:34:10 -07:00
Pier-Hugues Pellerin
7b96c1a5da Small typo in the pipelines.yml (#7470)
The `config.string` option was not correctly closed with a double quote
2017-06-16 10:06:27 +01:00
Jordan Sissel
50cbaf4bf0 Set default entropy source to /dev/urandom
This changes the Java-wide from the default of /dev/random. The reason
for this chnage is that /dev/random can block if there is insufficient
entropy available, and this blocking can cause Logstash to stall on
startup for many many minutes.

Fixes #6117.

This scenario (no entropy) seems especially prone to occur on virtual
machines.

Related: https://github.com/jruby/jruby/wiki/Improving-startup-time#ensure-your-system-has-adequate-entropy

On Windows, I was not sure if this would work, but the JDK source tree
says this:

    On Windows systems, specifying the URLs "file:/dev/random" or
    "file:/dev/urandom" will enable the native Microsoft CryptoAPI seeding
    mechanism for SHA1PRNG.

So defaulting to /dev/urandom should still do the right thing on
Windows.

I also checked to see if other unix-likes had /dev/urandom, and
according to Wikipedia[1], Linux, FreeBSD, OpenBSD, OSX, Solaris,
NetBSD, and others all have urandom.

[1] https://en.wikipedia.org/wiki//dev/random

Fixes #7469
2017-06-15 17:44:34 +00:00
Aaron Mildenstein
f443dae5fe Merge feature/modules into master (#7284)
* My changes (#7218)

* First upstream PR commit (#7172)

No tests yet.  Just for code review for now

* move all inner classes to their own folder + client and importer

* Fixes and tests (#7228)

Add tests for the `LogStash::Modules:CLIParser` class in `cli_parser.rb`
Fix a typo in `cli_parser.rb` (`uparsed` vs `unparsed`)
Fix a bad variable name found by testing in `cli_parser.rb` and update the error message accordingly in `en.yml`

* Remove fb_modules (#7280)

* fixes to import index-pattern & var updates & savedsearch capability (#7283)

* fixes to import index-pattern & var updates & savedsearch capability

fixes to import index-pattern & var updates

add savedsearch capability

* minimise merge conflicts with PR End-to-End test with filebeat apache2

* End-to-End test with filebeat apache2 (#7279)

This is a first run, but data flows from filebeat through Elasticsearch.

Template uploads from `$LS_HOME/modules/MODULENAME/configuration/elasticsearch/MODULENAME.json`

Specifying `--modules filebeat` from the command-line, with `-M "filebeat.var.elasticsearch.output.host=localhost:9200"`

Some of the saved searches don't get uploaded. @guyboertje is on this already.

The logstash configuration needs tweaking to allow receiving both access logs _and_ error logs.  The dashboards and visualizations all seem to expect the presence of both.

Set default to `localhost` in `elasticsearch_client.rb`

Changed command-line variable parsing to allow for a variable with only `modulename.key.subkey=value`, and updated the error message accordingly.

First draft of the filebeat module, as extracted from filebeat 5.4.0

* Add documentation for Modules

This is specific to the Master branch.  Multiple modules will not be supported in 5.5.

* Add READMEs and prune post-code comments

* Add comment regarding the variable name `modul`

Also, fix the default username for the Elasticsearch output in Logstash.  The default x-pack credentials are `elastic:changeme` rather than `elasticsearch:changeme`

* add cef module files (#7292)

* fixes from reviews of PR #7284
2017-06-05 18:49:35 +01:00
Joao Duarte
bed8b8a084 support multiple pipelines in one logstash instance
* add multi_local source for multi pipelines
* introduce pipelines.yml
* introduce PipelineSettings class
* support reloading of pipeline parameters
* fix pipeline api call for _node/pipelines
* inform user pipelines.yml is ignored if -e or -f is enabled
2017-05-30 09:47:53 +01:00
Tal Levy
458910bcb9 Introduce DeadLetterQueue to the Execution Context (#6894)
* Introduce a DeadLetterQueueFactory

DeadLetterQueueFactory is a static class that keeps
a static collection of DeadLetterQueueWriteManagers per
pipeline that has plugins requesting to use it.

* DeadLetterQueue was added as a first-class field in the execution context that input/filter/output plugins can leverage
2017-05-09 14:40:59 -07:00
Aaron Mildenstein
ab6864dfd1 Unset JAVACMD by default
In most cases, this will probably work out, but it will need some testing.

JRuby and `logstash.lib.sh` both check first for the presence of `JAVACMD`. If that isn't found, it tries `$JAVA_HOME/bin/java`. If that isn't found, it tries `java` in the system $PATH.

The previous behavior was to manually assign `JAVACMD=/usr/bin/java`.  This will still work for most users.  Special cases will still need manual configuration, but this will _probably_ work better for most cases in the long run.

Fixes #6919
2017-04-20 17:42:16 +00:00
Mattias Appelgren
47767a70bc config/logstash.yml: Remove trailing whitespace
Fixes #6635
2017-02-13 06:17:57 -05:00
Jordan Sissel
a3b2788129 Enhance note that startup.options is not used when Logstash runs. For #6482.
Fixes #6484
2017-01-11 21:46:37 -05:00
Suyog Rao
a566908a84 specify max_events relation as well
Fixes #6343
2016-12-01 20:13:51 -05:00
Suyog Rao
d42a82eb08 Add default setting for queue.max_bytes
Fixes #6343
2016-12-01 20:13:51 -05:00
Colin Surprenant
f636a751f8 add support for queue.checkpoint.{acks|writes} settings
add queue.max_acked_checkpoint and queue.checkpoint_rate settings

now using checkpoint.max_acks, checkpoint.max_writes and checkpoint.max_interval

rename options

wip rework checkpointing

refactored full acked pages handling on acking and recovery

correclty close queue

proper queue open/recovery

checkpoint dump utility

checkpoint on writes

removed debug code and added missing newline

added better comment on contiguous checkpoints

fix spec for new pipeline setting
2016-11-22 14:48:58 -05:00
Jordan Sissel
60598a0222 Truncate from the end of the message instead of the front.
PatternLayout calls this 'left justify' I think.

Fixes #6255

Fixes #6257
2016-11-15 18:35:12 -05:00
Tal Levy
19d3232873 slowlog
Fixes #6128
2016-11-02 18:48:40 -04:00
Colin Surprenant
761f9f1bc9 merge feature/java_persistence into master 2016-11-01 17:13:23 -04:00
Suyog Rao
0a59592fe8 Use format for log file
Fixes #5903
2016-09-13 19:39:27 -04:00
Tal Levy
16180aec8d remove commented value for path.logs in default settings file
the build scripts rely on the value not being present to update with
appropriate value for the package

Fixes #5904
2016-09-13 18:43:04 -04:00
Tal Levy
63233b1cf1 respect log.format and path.logs from cli
also change how `log.level` is configured at startup time to be set
as a property directly in the log4j2.properties file

Fixes #5900
2016-09-13 16:45:30 -04:00
Tal Levy
2cf53cedf5 Set default log.level to INFO
sets default to INFO and updates some verbose logging to
more appropriate, less verbose log levels where it makes sense.

Closes #5735.
Closes #5893.

Fixes #5898
2016-09-13 16:43:20 -04:00
Tal Levy
61ebeb0b4b update path.log to path.logs directory, and respect it in log4j2
Fixes #5876
2016-09-08 18:06:30 -04:00
Tal Levy
1b2f7a7668 Migrate Logstash to Log4j2 Logging (#5651)
Migrate to use Log4j2 for Logstash logging
2016-08-25 10:30:22 -07:00
Pier-Hugues Pellerin
672b369c41 --http.port Now accept a port range
This PR does a few modifications for our webserver:
 - Add a PortRange setting type.
 - allow the --http.port option to accept a port range or a single port, when a range is provided Logstash will incrementally try this list to find a free port for the webserver.
 - Logstash will report in the log which port it is using. (INFO LEVEL)
 - It refactors a few methods of the webserver.
 - It adds test for the binding of the ports.

Notes:

Port range can be defined in the logstash.yml or pass via the command line like this.

 `bin/logstash -e 'input { generator {}} output { null {}}' --log.level verbose --http.port 2000-2005`

Fixes #5774
2016-08-19 08:04:00 -04:00
DeDe Morton
5b22797b0b corrected description of pipeline.batch.delay from seconds to ms
Fixes #5738
2016-08-08 13:54:34 -04:00
Joao Duarte
c0c9a3babc add data.path setting
Fixes #5528
2016-06-24 07:32:25 -04:00
Aaron Mildenstein
58b1c5386a Fix starting logstash from command-line
This fix is for packages only (RPM/DEB)

This puts the requisite changes into /etc/logstash/logstash.yml so that starting logstash from the command-line, e.g. `/usr/share/logstash/bin/logstash --path.settings /etc/logstash` will read the pipeline from `/etc/logstash/conf.d` and log to `/var/log/logstash/logstash.log`.

fixes #5379

Comment out tmpdir in jvm.options

The absence of the tmpdir can cause JRuby to fail

Fixes #5383
2016-05-27 21:03:12 +00:00
Aaron Mildenstein
e40ecbb6b8 Update existing packaging to use /usr/lib/logstash
Update after-install scripts

Use /usr/lib/logstash instead of /opt/logstash

More revisions.

Using `/usr/share/logstash` instead of `/usr/lib/logstash`

Track these new files

More work in progress.

Proper arg parsing obtained

WIP: Use jvm.options like ES

Remove facter dependency

Due to an update from @jordansissel on pleaserun, facter is no longer necessary

Revert Gemfile to proper version

Latest work in progress.

I added a simple test to logstash.lib.sh to catch empty strings in java options.

Added `startup.options`, and touched up `jvm.options`

Edited the package scripts to make things play nice with new paths.

Tweaked `system-install` to allow users to provide their own `startup.options` file.

Patch up merge failure

Changes to work with the new logstash.yml

Add fpm dependency (build fails without it)

Fix missing gems in Gemfile

Don't know how these got lost

Use /etc/logstash for configuration in packages

Update the instructions/documentation for...

...startup.options

Merging proposed changes

Remove mustache and clamp

They're covered by pleaserun anyway

Prune config dir from /usr/share/logstash...

...but only when using RPM/DEB packages

Fixes #5341
2016-05-25 17:25:26 +00:00
DeDe Morton
27882b1f2c Fixes from the review
Fixes #5332
2016-05-23 17:02:28 +00:00
Suyog Rao
eaca2fd9bd Corrections to CLI options
Fixes #5331
2016-05-20 00:24:09 +00:00
Joao Duarte
7783f76a4c introduce yaml settings file and cli long switches
* by default lives in LOGSTASH_HOME/config/logstash.yml
* location can be changed by $LS_SETTINGS_DIR or --path.settings
* overrides defaults of LogStash::Environment, BUT
* CLI flags override the yaml file
* several breaking changes to cli flag names (see config/logstash.yml)
* setting values are now type checked (see Setting and Settings classes)

Fixes #5313
2016-05-19 18:15:12 +00:00