mirror of
https://github.com/rsyslog/rsyslog.git
synced 2025-12-11 05:00:41 +01:00
Newer Elasticsearch versions reject typed APIs. This adapts the module so shipping works out of the box with modern clusters and keeps the codebase aligned with typeless ES conventions. Impact: bulk metadata no longer includes _type unless explicitly set. Old setups that relied on a default "events" type (ES < 8) may need explicit configuration. Technically, the default searchType is now NULL (OMES_SEARCHTYPE_DEFAULT). setPostURL continues to route requests to the typeless /_doc endpoint, but bulk metadata is generated without a _type field when searchType is unset. The legacy default "events" for ES < 8 is removed. Tests are updated to stop passing searchType, and the searchType-empty test is dropped to reflect the new default. No OMODTX or action-queue semantics change. Closes: https://github.com/rsyslog/rsyslog/issues/5060
55 lines
1.4 KiB
Bash
Executable File
55 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# This file is part of the rsyslog project, released under ASL 2.0
|
|
. ${srcdir:=.}/diag.sh init
|
|
ensure_elasticsearch_ready
|
|
|
|
init_elasticsearch
|
|
echo '{ "name" : "foo" }
|
|
{"name": bar"}
|
|
{"name": "baz"}
|
|
{"name": foz"}' > $RSYSLOG_DYNNAME.inESData.inputfile
|
|
generate_conf
|
|
add_conf '
|
|
global(workDirectory="'$RSYSLOG_DYNNAME.spool'")
|
|
# Note: we must mess up with the template, because we can not
|
|
# instruct ES to put further constraints on the data type and
|
|
# values. So we require integer and make sure it is none.
|
|
template(name="tpl" type="list") {
|
|
constant(value="{\"")
|
|
property(name="$!key") constant(value="\":") property(name="$!obj")
|
|
constant(value="}")
|
|
}
|
|
|
|
module(load="../plugins/omelasticsearch/.libs/omelasticsearch")
|
|
module(load="../plugins/imfile/.libs/imfile")
|
|
ruleset(name="foo") {
|
|
set $!key = "my_obj";
|
|
set $!obj = $msg;
|
|
action(type="omelasticsearch"
|
|
template="tpl"
|
|
searchIndex="rsyslog_testbench"
|
|
bulkmode="on"
|
|
serverport="19200"
|
|
errorFile="./'${RSYSLOG_DYNNAME}'.errorfile"
|
|
erroronly="on"
|
|
interleaved="on")
|
|
}
|
|
|
|
input(type="imfile" File="'$RSYSLOG_DYNNAME.'inESData.inputfile"
|
|
Tag="foo"
|
|
Severity="info"
|
|
ruleset="foo")
|
|
'
|
|
startup
|
|
shutdown_when_empty
|
|
wait_shutdown
|
|
|
|
$PYTHON $srcdir/elasticsearch-error-format-check.py errorinterleaved
|
|
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo "error: Format for error file different! " $?
|
|
exit 1
|
|
fi
|
|
exit_test
|