[英]Send CloudWatch logs to database
我正在嘗試將我們的 Cloudwatch 日志保存在內部部署的 Postgres 數據庫中。 我目前正在將日志導出到 S3 並保存在 DynamoDB 中。 我現在的要求是使用節點和 AWS js-SDK 將它保存在我們的數據庫中。 我對節點和 js-SDK 不是很了解,所以我會非常感謝任何想法。
我嘗試了一個簡單的實現。
const pools = require('../src/common/db'),
const AWS = require('aws-sdk');
// set the cwl
let cwl = new AWS.CloudWatchLogs({
region: 'us-east-1',
accessKeyId: 'ABCD1234',
secretAccessKey: 'MNBV76543',
Bucket: 'My_bucket'
});
// Get the events
cwl.getLogEvents({
logGroupName: 'OurLogGroupname',
logStreamName: 'specifiedLogstream'
}, (error, success ) =>{
if(error){
console.log(error)
}
console.log(success)
})
// Try saving to db
let sql = ''
pools.query_db('abc', 'INSERT INTO logging.aws_logs(request_id, duration, billed_duration) VALUES (?,?,?)', function(err, res){
if(err) return callback(err);
callback();
})
如果您真的想將來自 Cloudwatch 的所有消息存儲到數據庫中,我更喜歡以下方式:
向您的 Cloudwatch LogGroup 添加訂閱
此訂閱可以配置為觸發 Lambda
Lambda 將具有以下邏輯:
關於如何提取 Cloudwatch 訂閱調用消息的一個很好的例子是將這些日志發送到 Opensearch(搜索藍圖)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.