/
githubmirror
/
rsyslog
Обзор
Документация
Войти
/
githubmirror
/
rsyslog
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
tests/imbeats-basic.sh
53 строки
1 KB
Rainer Gerhards
imbeats: harden Lumberjack input resource handling
23 июл 2026, 21:02
23 июл 2026, 21:02
625c32b
Код
Авторство
О чём код?
#!/bin/bash # Verify a basic JSON event is submitted with its Beats fields, reserved # metadata, and cumulative ACK intact. . ${srcdir:=.}/diag.sh init generate_conf add_conf ' module(load="../plugins/imbeats/.libs/imbeats") template(name="outfmt" type="string" string="%msg%|%$!message%|%$!host!name%|%$!metadata!imbeats!protocol%|%$!metadata!imbeats!sequence%\n") ruleset(name="main") { action(type="omfile" file="'$RSYSLOG_OUT_LOG'" template="outfmt") } input(type="imbeats" port="0" listenPortFileName="'$RSYSLOG_DYNNAME'.imbeats.port" ruleset="main") ' startup assign_rs_port "$RSYSLOG_DYNNAME.imbeats.port" python3 - "$RS_PORT" > "$RSYSLOG_DYNNAME.imbeats.ack" <<'PY' import json import socket import struct import sys port = int(sys.argv[1]) payload = json.dumps({"message": "hello", "host": {"name": "web01"}}, separators=(",", ":")).encode() batch = b"2W" + struct.pack(">I", 1) event = b"2J" + struct.pack(">I", 1) + struct.pack(">I", len(payload)) + payload sock = socket.create_connection(("127.0.0.1", port)) sock.sendall(batch + event) ack = sock.recv(6) sys.stdout.write(ack.hex()) sock.close() PY shutdown_when_empty wait_shutdown # shellcheck disable=SC2034 EXPECTED='{"message":"hello","host":{"name":"web01"}}|hello|web01|lumberjack-v2|1' cmp_exact test "$(cat "$RSYSLOG_DYNNAME.imbeats.ack")" = "324100000001" exit_test