elastic / elastic/logstash

build logstash for a new platform--mips64el

Open
#6,111 10 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
14.9k
Forks
3.5k
Avg merge
1d 4h
Merged PRs (30d)
88

Description

Hi, I am a new comer and wanna build logstash for my platform---mips64el. I got source code from github. and run the command "rake bootstrap". The results list as follows:
**The build result**
[root@dscn2 logstash]# logstash --version
logstash 6.0.0-alpha1
[root@dscn2 logstash]# logstash --help
Usage:
bin/logstash [OPTIONS]

Options:
-n, --node.name NAME Specify the name of this logstash instance, if no value is given
it will default to the current hostname.
(default: "172.17.42.1")
-f, --path.config CONFIG_PATH Load the logstash config from a specific file
or directory. If a directory is given, all
files in that directory will be concatenated
in lexicographical order and then parsed as a
single config file. You can also specify
wildcards (globs) and any matched files will
be loaded in the order described above.
-e, --config.string CONFIG_STRING Use the given string as the configuration
data. Same syntax as the config file. If no
input is specified, then the following is
used as the default input:
"input { stdin { type => stdin } }"
and if no output is specified, then the
following is used as the default output:
"output { stdout { codec => rubydebug } }"
If you wish to use both defaults, please use
the empty string for the '-e' flag.
(default: nil)
-w, --pipeline.workers COUNT Sets the number of pipeline workers to run.
(default: 15)
-b, --pipeline.batch.size SIZE Size of batches the pipeline is to work in.
(default: 125)
-u, --pipeline.batch.delay DELAY_IN_MS When creating pipeline batches, how long to wait while polling
for the next event.
(default: 5)
--pipeline.unsafe_shutdown Force logstash to exit during shutdown even
if there are still inflight events in memory.
By default, logstash will refuse to quit until all
received events have been pushed to the outputs.
(default: false)
--path.data PATH This should point to a writable directory. Logstash
will use this directory whenever it needs to store
data. Plugins will also have access to this path.
(default: "/usr/local/logstash/data")
-p, --path.plugins PATH A path of where to find plugins. This flag
can be given multiple times to include
multiple paths. Plugins are expected to be
in a specific directory hierarchy:
'PATH/logstash/TYPE/NAME.rb' where TYPE is
'inputs' 'filters', 'outputs' or 'codecs'
and NAME is the name of the plugin.
(default: [])
-l, --path.logs PATH Write logstash internal logs to the given
file. Without this flag, logstash will emit
logs to standard output.
(default: "/usr/local/logstash/logs")
--log.level LEVEL Set the log level for logstash. Possible values are:
- fatal
- error
- warn
- info
- debug
- trace
(default: "info")
--config.debug Print the compiled config ruby code out as a debug log (you must also have --debug enabled).
WARNING: This will include any 'password' options passed to plugin configs as plaintext, and may result
in plaintext passwords appearing in your logs!
(default: false)
-i, --interactive SHELL Drop to shell instead of running as normal.
Valid shells are "irb" and "pry"
-V, --version Emit the version of logstash and its friends,
then exit.
-t, --config.test_and_exit Check configuration for valid syntax and then exit.
(default: false)
-r, --config.reload.automatic Monitor configuration changes and reload
whenever it is changed.
NOTE: use SIGHUP to manually reload the config
(default: false)
--config.reload.interval RELOAD_INTERVAL How frequently to poll the configuration location
for changes, in seconds.
(default: 3)
--http.host HTTP_HOST Web API binding host (default: "127.0.0.1")
--http.port HTTP_PORT Web API http port (default: 9600..9700)
--log.format FORMAT Specify if Logstash should write its own logs in JSON form (one
event per line) or in plain text (using Ruby's Object#inspect)
(default: "plain")
--path.settings SETTINGS_DIR Directory containing logstash.yml file. This can also be
set through the LS_SETTINGS_DIR environment variable.
(default: "/usr/local/logstash/config")
--verbose Set the log level to info.
DEPRECATED: use --log.level=verbose instead.
--debug Set the log level to debug.
DEPRECATED: use --log.level=debug instead.
--quiet Set the log level to info.
DEPRECATED: use --log.level=quiet instead.
-h, --help print help

**But when I run the following command for test the new logstash. The error is listed at the later part;**
[root@dscn2 logstash]# logstash -e 'input { stdin { } } output { stdout {} }'
Sending Logstash logs to /usr/local/logstash/logs which is now configured via log4j2.properties.
LoadError: Unsupported platform: unknown-linux
require at org/jruby/RubyKernel.java:1040
require at /usr/local/logstash/vendor/bundle/jruby/1.9/gems/polyglot-0.3.5/lib/polyglot.rb:65
(root) at /usr/local/logstash/vendor/jruby/lib/ruby/shared/ffi/ffi.rb:69
require at org/jruby/RubyKernel.java:1040
require at /usr/local/logstash/vendor/bundle/jruby/1.9/gems/polyglot-0.3.5/lib/polyglot.rb:65
(root) at /usr/local/logstash/vendor/jruby/lib/ruby/shared/ffi.rb:1
require at org/jruby/RubyKernel.java:1040
require at /usr/local/logstash/vendor/bundle/jruby/1.9/gems/polyglot-0.3.5/lib/polyglot.rb:65
(root) at /usr/local/logstash/vendor/jruby/lib/ruby/shared/ffi.rb:1
(root) at /usr/local/logstash/logstash-core/lib/logstash/util/prctl.rb:1
require at org/jruby/RubyKernel.java:1040
require at /usr/local/logstash/vendor/bundle/jruby/1.9/gems/polyglot-0.3.5/lib/polyglot.rb:65
LibC at /usr/local/logstash/logstash-core/lib/logstash/util/prctl.rb:3
(root) at /usr/local/logstash/logstash-core/lib/logstash/util/prctl.rb:2
(root) at /usr/local/logstash/logstash-core/lib/logstash/util.rb:1
set_thread_name at /usr/local/logstash/logstash-core/lib/logstash/util.rb:20
execute at /usr/local/logstash/logstash-core/lib/logstash/runner.rb:204
(root) at /usr/local/logstash/lib/bootstrap/environment.rb:68

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure after `rake bootstrap` with `logstash -e 'input { stdin { } } output { stdout {} }'`. Start at `logstash-core/lib/logstash/util/prctl.rb` and the bundled JRuby FFI code mentioned in the trace; done means Logstash can start on mips64el without the `Unsupported platform: unknown-linux` error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, linux, ruby
Domain
build-system, operating-systems
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.