国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Lambda 函數(shù)將 CloudWatch Log 中的日志歸檔到 S3 桶中

這篇具有很好參考價值的文章主要介紹了使用 Lambda 函數(shù)將 CloudWatch Log 中的日志歸檔到 S3 桶中。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


作者:SRE運維博客

博客地址:https://www.cnsre.cn/

文章地址:https://www.cnsre.cn/posts/221205544069/

相關(guān)話題:https://www.cnsre.cn/tags/aws/文章來源地址http://www.zghlxwxcb.cn/news/detail-438702.html


躺了好久,詐尸了。因為換了工作,所以比較忙一直沒有時間去更新博客的內(nèi)容(主要還是因為懶??)

使用 Lambda 函數(shù)將 CloudWatch Log 中的日志歸檔到 S3 桶中

話不多說 直接上干貨。

需求背景

最近在看費用的時候發(fā)現(xiàn)有很大一部分費用都是 cloudwatch log中存儲了大量的數(shù)據(jù),是因為ec2 將日志傳輸?shù)搅舜鎯Φ搅薱loudwatch中。這個存儲的多的查詢?nèi)罩镜臅r候收費特別的高。另外一個是因為數(shù)據(jù)分析用途,大數(shù)據(jù)分析的同事如果想那到數(shù)據(jù)的話,還是存儲在 S3 中是比較劃算和方便的,一個是拿取數(shù)據(jù)比較方便,另外一個是S3 可以最歸檔存儲,后面的大量數(shù)據(jù)可以分層儲存,以此來降低費用。

如果你也想將你的cloudwatch 中日志組中的日志存儲到S3中的話可以參考下這篇文章。

前置條件

  • 創(chuàng)建 一個 S3 桶,并修改權(quán)限

  • 創(chuàng)建 lambda 函數(shù)

  • 有一個Cloudwatch 日志組并且有一天以上的日志

  • 給 lambda分配所需的權(quán)限

創(chuàng)建 S3 桶并修改權(quán)限

{{< tabs 國內(nèi)S3桶權(quán)限配置 國外S3桶權(quán)限配置 >}}

{{< tab >}}

國內(nèi)S3桶權(quán)限配置


{

"Version": "2012-10-17",

"Statement": [

{

"Effect": "Allow",

"Principal": {

"Service": "logs.cn-north-1.amazonaws.com.cn"

},

"Action": "s3:GetBucketAcl",

"Resource": "arn:aws-cn:s3:::<bucket name>"

},

{

"Effect": "Allow",

"Principal": {

"Service": "logs.cn-north-1.amazonaws.com.cn"

},

"Action": "s3:PutObject",

"Resource": "arn:aws-cn:s3:::<bucket name>/*",

"Condition": {

"StringEquals": {

"s3:x-amz-acl": "bucket-owner-full-control"

}

}

}

]

}

{{< /tab >}}

{{< tab >}}

國外S3桶權(quán)限配置


{

"Version": "2012-10-17",

"Statement": [

{

"Action": "s3:GetBucketAcl",

"Effect": "Allow",

"Resource": "arn:aws:s3:::<bucket name>",

"Principal": { "Service": "logs.us-west-2.amazonaws.com" }

},

{

"Action": "s3:PutObject" ,

"Effect": "Allow",

"Resource": "arn:aws:s3:::<bucket name>*",

"Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } },

"Principal": { "Service": "logs.us-west-2.amazonaws.com" }

}

]

}

{{< /tab >}}

{{< /tabs >}}

S3 桶權(quán)限文檔鏈接

<ins class="adsbygoogle"

style="display:block; text-align:center;"

data-ad-layout="in-article"

data-ad-format="fluid"

data-ad-client="ca-pub-4855142804875926"

data-ad-slot="5670838583">

創(chuàng)建 lambda 函數(shù)

創(chuàng)建 lambda


import boto3

import logging

import time

import datetime

import json

  

logger = logging.getLogger()

logger.setLevel(logging.INFO)

  

def  export_s3_logs(bucket_name, log_group_name, log_stream_name, days_of_logs=1, timeout=1000):

'''

today = datetime.datetime.combine(datetime.datetime.utcnow(), datetime.datetime.min.time())

day_end = today

day_start = today - datetime.timedelta(days=days_of_logs)

'''

today = datetime.datetime.combine(datetime.datetime.utcnow() + datetime.timedelta(hours=8),

datetime.datetime.min.time()) # UTC+8

  

day_end = today - datetime.timedelta(hours=8) # UTC

day_start = today - datetime.timedelta(days=days_of_logs, hours=8) # UTC

#print(day_start)

ts_start = '{0:.0f}'.format(((day_start - datetime.datetime(1970, 1, 1)).total_seconds())*1000)

ts_end = '{0:.0f}'.format(((day_end - datetime.datetime(1970, 1, 1)).total_seconds())*1000)

the_date = '/'.join([str(today.year), '0'+str(today.month)[-2:], '0'+str(today.day)[-2:]])

#folder_name = '/'.join([log_group_name, log_stream_name, the_date])

folder_name = '/'.join([log_group_name,the_date])

client = boto3.client('logs')

#print (ts_start, ts_end)#, day_start, day_end,the_date

task_id = client.create_export_task(

logGroupName=log_group_name,

#logStreamNamePrefix=log_stream_name,

fromTime=int(ts_start),

to=int(ts_end),

destination=bucket_name,

destinationPrefix=folder_name

)['taskId']

  

i = 1

while i<timeout:

response = client.describe_export_tasks(

taskId=task_id

)

  

status = response['exportTasks'][0]['status']

if status == 'COMPLETED':

result = True

break

elif status != 'RUNNING':

result = False

break

i += 1

time.sleep(interval)

return result

  

def  lambda_handler(event, context):

region = 'cn-northwest-1'  # 日志組所在區(qū)域

bucket_name = '<bucket name>'  #同區(qū)域內(nèi)的S3桶名稱

log_group_name = '<log group name>'  #日志組名稱

log_stream_name = '1'  #默認即可

log_export_days = 1  #默認即可

export_s3_logs(bucket_name, log_group_name, log_stream_name, log_export_days)

給 lambda 分配權(quán)限

  • AmazonS3的讀寫權(quán)限

  • CloudWatchLogsFullAccess

驗證桶內(nèi)的文件

最后會以日期的目錄將日志歸檔起來,以方便日后對歸檔文件進行梳理。


作者:SRE運維博客

博客地址:https://www.cnsre.cn/

文章地址:https://www.cnsre.cn/posts/221205544069/

相關(guān)話題:https://www.cnsre.cn/tags/aws/


到了這里,關(guān)于使用 Lambda 函數(shù)將 CloudWatch Log 中的日志歸檔到 S3 桶中的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 一文詳細介紹查看和啟用nginx日志(access.log和error.log),nginx錯誤日志的安全級別,自定義訪問日志中的格式

    我們在實際工作中,經(jīng)常使用到日志。 日志在一個系統(tǒng)中是非常重要的,它可以監(jiān)控一個應(yīng)用程序的活動,因為它們?yōu)槟闾峁┯杏玫恼{(diào)試信息,并使你能夠分析一個 Web服務(wù)器 的所有方面。 像其他軟件應(yīng)用程序一樣, Nginx 也會將諸如網(wǎng)站訪問者、遇到的問題等事件保

    2024年02月09日
    瀏覽(31)
  • Python中的Lambda函數(shù)

    Python中的Lambda函數(shù)是一種小型匿名函數(shù),它是通過 lambda 來定義的。Lambda函數(shù)可以接受任意數(shù)量的參數(shù),但只能有一個表達式。 Lambda函數(shù)的語法非常簡單,基本形式如下: 這里的 arguments 是函數(shù)的參數(shù),可以有多個,用逗號分隔。 expression 是一個關(guān)于參數(shù)的表達式,這

    2024年02月21日
    瀏覽(18)
  • copy archived log from ASM 異地恢復(fù)歸檔

    NOTE:? In 11g, you can use RMAN to copy the files across the network. See?Note 1909235.1?Copy database file directly across network using RMAN in 11g including Primary and Standby Please use the rman scripts below to backup missing archive log files from the primary site and restore to the standby site. RMAN run { allocate channel c1 type disk; backup arc

    2024年02月09日
    瀏覽(17)
  • 探索Python中的函數(shù)式編程:Lambda表達式與函數(shù)式工具【第135篇—Lambda表達式】

    探索Python中的函數(shù)式編程:Lambda表達式與函數(shù)式工具【第135篇—Lambda表達式】

    前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家?!军c擊進入巨牛的人工智能學(xué)習(xí)網(wǎng)站】。 在Python編程世界中,函數(shù)式編程逐漸成為了一種流行的范式,特別是在處理數(shù)據(jù)和編寫簡潔、高效代碼時。函數(shù)式編程的核心思想是將計算視

    2024年04月08日
    瀏覽(33)
  • 第六章(7):Python中的函數(shù)—lambda表達式

    是一種匿名函數(shù)的定義方式,它可以替代函數(shù)定義的方式,使代碼更加簡潔和易讀。Lambda表達式的語法形式為:lambda 參數(shù)列表: 表達式,其中參數(shù)列表和表達式都是可選的,但是在大多數(shù)情況下都需要用到它們。Lambda表達式通常被用在需要傳遞函數(shù)對象作為參數(shù)的函數(shù)中,也

    2024年02月08日
    瀏覽(26)
  • 【C#進階】C#中的委托、事件、回調(diào)函數(shù)、匿名函數(shù)和lambda表達式

    委托是一種類型,它可以存儲對一個或多個方法的引用。它類似于C/C++中的函數(shù)指針,允許您將方法作為參數(shù)傳遞、存儲和調(diào)用。 寫法: delegate return_type delegate_name( ); return_type :表示委托所引用方法的返回類型。 delegate_name :表示委托的名稱。 parameters :表示委托所引用方法

    2024年02月06日
    瀏覽(21)
  • Oracle——清理歸檔日志

    Oracle——清理歸檔日志

    有時候oracle的歸檔日志滿了,導(dǎo)致登錄不了oracle。 解決辦法,刪除歸檔日志即可。 1、首先使用df -h 查看磁盤使用情況。 查看服務(wù)器的磁盤空間: 2、進入oracle的日志目錄,清理日志文件, cd /home/oracle19c/dbs/ rm -rf arch*? 注:只是清理了文件不能釋放空間所以需要使用rman釋放

    2024年02月08日
    瀏覽(31)
  • oracle 清理歸檔日志

    1. 相關(guān)日志 2.??linux定時刪除7天前文件 ?

    2024年02月04日
    瀏覽(18)
  • Oracle 的歸檔日志文件

    歸檔是將聯(lián)機重做日志以文件的形式保存到硬盤,聯(lián)機日志歸檔的前提條件是數(shù)據(jù)庫要處于歸檔模式。當數(shù)據(jù)庫處于 ARCHIVELOG 模式并進行日志切換時,后臺進程 ARCH 會將聯(lián)機重做日志的內(nèi)容保存到歸檔日志中,當數(shù)據(jù)庫出現(xiàn)介質(zhì)故障時,使用數(shù)據(jù)文件備份、歸檔日志和聯(lián)機重

    2024年02月11日
    瀏覽(16)
  • aws對象存儲s3基于lambda實現(xiàn)圖片裁剪

    存儲桶名稱:wmmzz 1.存儲桶策略設(shè)置 2. 創(chuàng)建lambda函數(shù) 點擊跳轉(zhuǎn)到IAM控制臺,創(chuàng)建自定義角色,選擇服務(wù)類型lambda,創(chuàng)建策略 輸入策略下一步取名resize-policy,回到創(chuàng)建角色頁面,搜索剛才創(chuàng)建的策略選中,再搜索AmazonS3FullAccess選中 點擊下一步,輸入角色名稱resize-role,點擊“創(chuàng)建角色

    2024年02月11日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包