Я пытаюсь создать индекс еженедельно в поиске c поиск через агент журнала, но logagent не может распознать шаблоны дат, представленные в их документации, когда я начал глубоко отлаживать его и увидел, что logagent принимает только DD / Шаблон MM / YYYY в имени индекса и ничего больше.
https://github.com/sematext/logagent-js/blob/master/lib/plugins/output/elasticsearch.js
function applyDateFormatToIndex (index, data) {
// support for time-based index patterns
return index.replace(/YYYY|MM|DD/g, function (match) {
if (match === 'YYYY') {
return '' + data['@timestamp'].getFullYear()
}
if (match === 'MM') {
return ('0' + (data['@timestamp'].getMonth() + 1)).substr(-2)
}
if (match === 'DD') {
return ('0' + data['@timestamp'].getDate()).substr(-2)
}
return match
})
}
Есть ли способ, которым я могу настроить эту функцию внутри файла YML, так что это будет вызываться вместо функции из эластичного поиска. js.
Я могу изменить базовую библиотеку, что не является хорошей практикой. Также есть какой-то другой способ, где в самом файле yml я могу вызвать функцию для динамического создания индекса.
Фрагмент моего файла конфигурации logagent.
output:
secure-elasticsearch:
# elasticsearch:
module: elasticsearch
url: ${ELASTICSEARCH_URL}
httpOptions:
key: /elastic-${LOG_ENV}-client.key
cert: /elastic-${LOG_ENV}-client.crt
ca: /elasticsearch.crt
rejectUnauthorized: false
# default index to use, for all logs that don't match any other configuration
index: log-${LOG_ENV}-YYYY.MM.WW
indices:
dockerbeat-${LOG_ENV}-YYYY.MM.WW:
- .*dockbeat\.json
stdout: pretty