NoneRsyslog : укажите параметры `action` из переменных среды
Я использую rsyslog для отправки логов на asticsearch. Все это хорошо работает в моей локальной среде, но сейчас я пытаюсь сделать его более общим и вводить переменные среды, где это необходимо.
Как часть моего rsyslog.conf, это действие omelasticsearch:
action(
type="omelasticsearch"
server=<somehow use $ES_HOST here>
template="haproxy"
bulkmode="on"
searchIndex="haproxy-index"
dynSearchIndex="on"
usehttps="on"
asyncrepl="on"
uid=<somehow use $ES_USER here>
pwd=<somehow use $ES_PASSWORD here>
)
Я пытался с помощью getenv()
и установка переменных, но я не смог найти способ вставить указанную переменную в параметры моего действия.
Я пропустил что-то простое, или это просто невозможно?
1 ответ
Решение
Оказывается, вы можете выложить из конфигурационного файла с помощью обратных галочек.
action(
type="omelasticsearch"
server=`echo $ES_HOST`
template="haproxy"
bulkmode="on"
searchIndex="haproxy-index"
dynSearchIndex="on"
usehttps="on"
uid=`echo $ES_USER`
pwd=`echo $ES_PASSWORD`
)
Вы также можете использовать этот метод в шаблоне rsyslog для передачи свойств в ваш индекс elasticsearch с такими значениями переменных среды, как это
template(name="logfile" type="list") {
constant(value="{")
constant(value="\"@timestamp\":\"")
property(name="timegenerated" dateFormat="rfc3339")
constant(value="\", ")
constant(value="\"pod_namespace\":\"")
constant(value=`echo $KUB_POD_NAMESPACE`)
constant(value="\", ")
constant(value="\"pod_name\":\"")
constant(value=`echo $KUB_POD_NAME`)
constant(value="\", ")
constant(value="\"pod_ip\":\"")
constant(value=`echo $KUB_INSTANCE_ADDR`)
constant(value="\", ")
property(name="$!all-json" position.from="2")
}