Я хочу сделать вызов REST API из rsyslog. Так выглядит команда curl
curl --request POST \
--url http://10.1.1.1:9000/logforwarder \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '[
{
"text": "text1",
"samplefield":"sample",
"hostname": "eng.com",
"appname": "RA"
},
{
"text": "text2",
"samplefield":"sample",
"hostname": "eng.com",
"appname": "RA"
}
]'
Как добиться этого из rsyslog.conf. К сожалению, документация Rsyslog не так ясна по этому поводу. У меня есть шаблон, который форматирует сообщения в виде json, и я хочу отправить этот json в виде почтового запроса.
Образец шаблона:
# define a template to specify which fields we send
template(name="jsonLogFormat" type="list" option.json="on") {
constant(value="{")
constant(value="\"@timestamp\":\"")
property(name="timereported" dateFormat="rfc3339")
constant(value="\",\"host\":\"")
property(name="hostname")
constant(value="\",\"severity\":\"")
property(name="syslogseverity-text" caseConversion="upper")
constant(value="\",\"syslog-tag\":\"")
property(name="syslogtag")
constant(value="\",\"message\":\"")
property(name="msg")
constant(value="\"}")
}