Попытка получить журналы приложений, отправленные в Kibana напрямую из библиотеки winston -asticSearch. Проблема в том, что сообщение отправляется вместе с кибаной и не разделяет данные на отдельные поля.
До сих пор пробовал несколько разных форматов, но, похоже, ничего не работает, и документации по функциональности преобразования мало.
const { createLogger } = require('winston');
const Elasticsearch = require('winston-elasticsearch');
const elasticsearch = require('elasticsearch');
const clientData = new elasticsearch.Client({
index: 'xxxxx.winston.logs',
host: 'elasticsearch.xxxxxx.com',
log: 'trace'
});
const login = createLogger({
transports: [
new Elasticsearch({
level: 'info',
client: clientData,
index: 'xxxxx.winston.logs'
})
]
});
module.exports = {
login
};
const logs = require('./winston-logger');
module.exports = {
accessLog({ body, user, statusCode, requestId }) {
logs.login.info(`{"id":"${body.username}","email":"${user._json.mail}","response":"${statusCode}","uuid":"${requestId}"}`);
}
};
сообщение: {"id": "xxxx", "email": "xxxxxx", "response": "200", "uuid": "0e5a1506-46aa-4044-9311-9a6cab1335ac"}
так выглядит в Кибане, но пытается получить идентификатор, электронную почту, ответ и т. Д. В свои поля.