Fixes the system unit TimeoutStopSec option to set 0 on older version that do not support 'infinity'.
Also handles the upgrade case where the OS may not automatically upgrade the systemd file.
During upgrade, Logstash packaging removes /etc/systemd/system/logstash.service because Logstahs used to install the systemd unit there. However, this could have been modified by the user by overriding the systemd file. As such, the upgrade process should only remove if it is certain it wasn't installed by Logstash.
Unfortunately, there's no particular way to determine if Logstash installation process installed the file because it was done on the fly, by a script, on a postinst script of the package.
As such, the best way to address this is to check if both the new and the old file exists. If the new one doesn't exist, we can assume we are upgrading (or installing afresh), and the old file should be removed. If the new one exists and the user-create one (old location) also exists, we assume it is user created, and as such, we don't remove it just to be safe.
This change removes the usage of 'pleaserun', which
was leveraged create the init.d scripts or systemd units.
Now, we ship init.d scripts and systemd units to make
the maintenance easier and following the lead of the
other Elastic projects.
Fixes: #10519, Fixes: #12439, Fixes: #8253
This change keeps the previous behavior but implements it using multiple
pipelines (pipelines.yml) instead of with `path.config`.
* The default pipeline name is still "main"
* Default config path is still /etc/logstash/conf.d/*.conf
Other small changes included:
* Specify fpm workdir. Otherwise rpmbuild is given an empty value for
its temporary directory. It's unclear if this is a bug in fpm or in my
environment, but I like the change anyway to put fpm's build activity
in the build directory.
* DRY's up the common files going in /etc/logstash for both rpm and deb
packages.
For #8893Fixes#8894
Update after-install.sh - fix log file permissions
When installing Logstash (after previous removal of the Logstash RPM), there is a chance that there are old log files without proper owner.
Running Logstash as service, it may want to append data to these log files. Consequently, the logstash service does not start because it doesn't have write permissions to that files. This patch sets the (new) user logstash to own these historic files.
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
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
In some cases it seems that the file permissions for the logrotate
configuration file are not set properly. This should address those
cases.
Fixes#4136
This resolves a few inconsistencies and issues in the generated packages
for Debian/Ubuntu:
* Creates /etc/logstash/conf.d
* Installs a basic defaults file in /etc/default/logstash (which also sets HOME)
* Stops creating /var/run/logstash (unused)
* Uses /var/lib/logstash as the home directory of the logstash user instead of /home/logstash
* Defaults package files to be owned by root, fixes ownership in post-install script
* Properly stops service when removing the package on Debian
The end result is that after installing, LogStash will pretty much "just
work" with only 2 changes:
1) Enable START=yes in /etc/default/logstash
2) Provide a config for the LogStash agent