Я хочу отправить данные CloudWatchLogs в ES Cluster, но у меня есть два типа данных, которые регистрируются в одной группе журналов, и я хочу, чтобы они были по-разному проиндексированы в ES Cluster.
Например,
Log 1:
{"mylog": "hello world"}
Log 2:
{"mylog": "foo bar"}
Теперь, когда я подключаю это к ES через Lambda, ниже приведен фрагмент кода для Lambda, который автоматически генерируется AWS.
// index name format: cwl-YYYY.MM.DD
var indexName = [
'cwl-' + timestamp.getUTCFullYear(), // year
('0' + (timestamp.getUTCMonth() + 1)).slice(-2), // month
('0' + timestamp.getUTCDate()).slice(-2) // day
].join('.');
var source = buildSource(logEvent.message, logEvent.extractedFields);
source['@id'] = logEvent.id;
source['@timestamp'] = new Date(1 * logEvent.timestamp).toISOString();
source['@message'] = logEvent.message;
source['@owner'] = payload.owner;
source['@log_group'] = payload.logGroup;
source['@log_stream'] = payload.logStream;
Я хочу, чтобы оба типа журнала были проиндексированы по-разному.Ниже я попробовал.
// index name format: cwl-YYYY.MM.DD
// var indexName = [
// 'cwl-' + timestamp.getUTCFullYear(), // year
// ('0' + (timestamp.getUTCMonth() + 1)).slice(-2), // month
//('0' + timestamp.getUTCDate()).slice(-2) // day
//].join('.');
var source = buildSource(logEvent.message, logEvent.extractedFields);
source['@id'] = logEvent.id;
source['@timestamp'] = new Date(1 * logEvent.timestamp).toISOString();
source['@message'] = logEvent.message;
source['@owner'] = payload.owner;
source['@log_group'] = payload.logGroup;
source['@log_stream'] = payload.logStream;
var log1 = payload.mylog;
if(log1 === "hello world")
{
// assign a different index
}
else if(log1 === "foo bar")
{
// assign a different index
}
Вопрос 1: Можем ли мы получить доступ к свойству, которое есть в моих данных JSON, как payload.mylog
Вопрос 2: Могу ли я получить доступ к свойствукак logEvent.mylog
?