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")
}