Назад | Перейти на главную страницу

Выполнение пост-вызова Rest Api из rsyslog

Я хочу сделать вызов 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="\"}")
}