Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
193 commits
Select commit Hold shift + click to select a range
43b39d5
DEV-98889 fix
gagansingh355 Mar 30, 2022
f774d07
Updating version.properties
gagansingh355 Mar 30, 2022
4aaee1b
capitalising version variable
gagansingh355 Mar 30, 2022
05c85e4
Pull request #1: DEV-98889 fix
gagansingh355 Mar 30, 2022
5cd5585
Version file update
gagansingh355 Mar 30, 2022
d1db543
Pull request #2: Version file update
gagansingh355 Mar 30, 2022
8df7cec
Pull request #4: Develop to Master
gagansingh355 Apr 11, 2022
047977c
DEV-99879 changes
gagansingh355 Apr 22, 2022
0ba2031
Pull request #5: DEV-99879 changes
gagansingh355 Apr 22, 2022
bcda7ec
Update cloudformation.yaml
gagansingh355 May 26, 2022
6b2445a
Update region in url
gagansingh355 May 26, 2022
c9cd4a7
DEV-102562:Changed elb flow logs to rds logs
choudharypooja May 30, 2022
06e87df
Update cloudformation.yaml
gagansingh355 May 30, 2022
def0d67
Pull request #6: Update cloudformation.yaml
gagansingh355 May 30, 2022
38f5fa9
Pull request #8: Develop
gagansingh355 May 30, 2022
f510bf4
Pull request #7: DEV-102562:Changed elb flow logs to rds logs
choudharypooja May 31, 2022
b92d89c
DEV-116564 fix
gagansingh355 Nov 3, 2022
a341a58
Removing log line
gagansingh355 Nov 3, 2022
6c09885
Pull request #9: DEV-116564 fix
gagansingh355 Nov 4, 2022
5d945f1
Pull request #10: Develop
gagansingh355 Nov 4, 2022
bc90303
DEV-126037:Syncing stash with git for ticket DEV-126037
choudharypooja Mar 6, 2023
db8b2e7
Pull request #11: DEV-126037 map the cloudtrail logs for s3 to respec…
choudharypooja Mar 6, 2023
5de3394
Pull request #12: DEV-126037:Syncing stash with git for ticket DEV-12…
choudharypooja Mar 6, 2023
490ec9b
DEV-126039:Mapping lambd cloudrail logs to resp. lambda resource
choudharypooja Mar 9, 2023
6b15d74
DEV-126039:Addressing PR comments
choudharypooja Mar 9, 2023
e7a1418
Pull request #13: DEV-126039:Mapping lambd cloudrail logs to resp. la…
choudharypooja Mar 9, 2023
330904b
DEV-126037:We can get bucketName instead of ARn
choudharypooja Mar 10, 2023
ff887c5
Pull request #14: DEV-126037:We can get bucketName instead of ARn
choudharypooja Mar 10, 2023
b72e8f8
Pull request #15: Develop
choudharypooja Mar 24, 2023
d35300c
DEV-129768:Adding support for metadata
choudharypooja Apr 14, 2023
2c7a752
DEV-129768:Updating lm-logs-sdk version
choudharypooja Apr 14, 2023
eedae0e
Pull request #16: DEV-129768 add metadata support for lm logs aws
choudharypooja Apr 18, 2023
7221aee
Pull request #17: Develop
choudharypooja May 23, 2023
cc9dccc
DEV-133359: Adding support for ec2 in cloudtrail logs
choudharypooja May 24, 2023
e15c96f
DEV-133359: Changing function name
choudharypooja May 24, 2023
ff21863
Pull request #18: DEV-133359: Adding support for ec2 in cloudtrail logs
choudharypooja May 26, 2023
18011f9
DEV-133360:Adding support for sqs cloudtrail mapping
choudharypooja May 26, 2023
88329aa
Merge branch 'develop' of ssh://stash.logicmonitor.com:7999/dev/lm-lo…
choudharypooja May 26, 2023
df201ca
DEV-133360:Addressing comments
choudharypooja May 26, 2023
c2825dc
Pull request #19: DEV-133360:Adding support for sqs cloudtrail mapping
choudharypooja May 31, 2023
59f0d95
Pull request #20: Develop
choudharypooja Jun 22, 2023
06b7bda
DEV-136383: Addressing the minor bug for s3 bucket ARN resource mapping
choudharypooja Jul 7, 2023
abbe44a
Pull request #21: DEV-136383: Addressing the minor bug for s3 bucket …
choudharypooja Jul 7, 2023
8cf47f6
DEV-136869:Adding support for cloudwatch events
choudharypooja Jul 14, 2023
a7d09a4
Merge branch 'develop' of ssh://stash.logicmonitor.com:7999/dev/lm-lo…
choudharypooja Jul 14, 2023
4444b9b
DEV-136869:Fixing broken tests
choudharypooja Jul 14, 2023
0c7053b
Pull request #22: DEV-136383: Addressing the minor bug for s3 bucket …
choudharypooja Jul 17, 2023
d0059f5
DEV-136869:Addressing review comments
choudharypooja Jul 18, 2023
f94a8cb
Pull request #23: DEV-136869:Adding support for cloudwatch events
choudharypooja Jul 18, 2023
2e40f26
DEV-136615 Add bearer token support.
siddharthck Aug 1, 2023
2fed6a9
DEV-138493: Adding secret manager cache and environment variables for…
choudharypooja Aug 1, 2023
199c756
Pull request #24: DEV-136615 Add bearer token support.
Aug 2, 2023
1efc70b
DEV-138493:Merge conflicts
choudharypooja Aug 2, 2023
51ce1a8
DEV-138493:Adding test cases
choudharypooja Aug 2, 2023
ad7a1ab
DEV-138493:Updating the version
choudharypooja Aug 3, 2023
3dcbbc7
Pull request #25: DEV-138493: Adding secret manager cache and environ…
choudharypooja Aug 4, 2023
d697ba1
DEV-138493:Removing unused varibles
choudharypooja Aug 4, 2023
c462e11
Pull request #26: DEV-138493:Removing unused varibles
choudharypooja Aug 4, 2023
c4852de
Pull request #27: Develop
Aug 16, 2023
16cf3ea
DEV-141039 Add custom metadata support for json logs.
siddharthck Aug 25, 2023
4689fc6
DEV-141039 Improve gojsonq logic and avoid serialization overhead.
siddharthck Aug 28, 2023
9b4a4ba
DEV-141039 Remove unwanted logs.
siddharthck Aug 28, 2023
30b75f5
Pull request #28: DEV-141039 Add custom metadata support for json logs.
Aug 28, 2023
6df0fff
DEV-143214:Adding support for event types other than AWS_API_CALL_VIA…
choudharypooja Sep 8, 2023
68435ee
Pull request #29: Develop
Sep 8, 2023
2bc9892
Pull request #30: DEV-143214:Adding support for event types other tha…
choudharypooja Sep 11, 2023
5b09667
DEV-133928: Refactoring, removing unwanted variables, logging, removi…
choudharypooja Sep 14, 2023
bd3af39
DEV-133928:Typos in description of variabls
choudharypooja Sep 14, 2023
a7d996b
DEV-133928:Addressing review comments
choudharypooja Sep 14, 2023
450adc5
Pull request #31: DEV-133928: Refactoring, removing unwanted variable…
choudharypooja Sep 15, 2023
df7394d
DEV-133928: Adding a missed file for regex constants
choudharypooja Sep 15, 2023
18f3a78
Pull request #32: DEV-133928: Adding a missed file for regex constants
choudharypooja Sep 15, 2023
096f202
Pull request #33: Develop
choudharypooja Oct 10, 2023
14e1149
Update build steps for migrating aws lambda go runtime to provided.al2
siddharthck Oct 25, 2023
9049cdc
Pull request #34: Update build steps for migrating aws lambda go runt…
Oct 26, 2023
28101dc
Bump up version due to build method change
siddharthck Nov 3, 2023
abe8a06
Pull request #35: Bump up version due to build method change
Nov 3, 2023
5cf53dd
Pull request #36: Release lambda go runtime migration to amazon linux 2
Nov 8, 2023
50f4981
Add encryption aes256 with copier lambda while uploading source code …
siddharthck Nov 9, 2023
2669bf4
Pull request #37: Add encryption aes256 with copier lambda while uplo…
Nov 9, 2023
aaac732
Pull request #38: Release encryption aes256 with copier lambda while …
Nov 20, 2023
1c8ccdd
DEV-150953: Adding support for tenant.id in metadata
choudharypooja Nov 29, 2023
dcafa37
DEV-150953:Adding test case
choudharypooja Nov 30, 2023
18ffa51
DEV-150953:Moving metadata to Optional parameter label
choudharypooja Nov 30, 2023
ee24e28
Pull request #39: DEV-150953 aws support for lm.tenantid in metadata…
choudharypooja Dec 1, 2023
f832f11
Pull request #40: Develop
choudharypooja Dec 18, 2023
679a39e
DEV-152175: Migrating from lm-logs-sdk-go to lm-data-sdk-go
choudharypooja Dec 20, 2023
d4f430f
Pull request #41: DEV-152175: Migrating from lm-logs-sdk-go to lm-dat…
choudharypooja Dec 28, 2023
557597a
DEV-152175:Minor change to append Bearer for BearerToken
choudharypooja Jan 4, 2024
ec9f00f
Pull request #42: DEV-152175:Minor change to append Bearer for Bearer…
choudharypooja Jan 4, 2024
0452b4f
DEV-153473:adding user-agent in header
choudharypooja Feb 28, 2024
233d78b
Pull request #43: DEV-153473:adding user-agent in header
choudharypooja Feb 29, 2024
c3f1a22
Pull request #44: Develop
choudharypooja Feb 29, 2024
0de6faa
DEV-160031:Missed updating the version in cloudformation template
choudharypooja Mar 7, 2024
14397c8
Pull request #45: DEV-160031:Missed updating the version in cloudform…
choudharypooja Mar 7, 2024
4fbb051
Pull request #46: Develop
choudharypooja Mar 8, 2024
2dc8cf8
DEV-160131:Adding Account Level Subcription Support
choudharypooja Mar 14, 2024
1bc3190
DEV-160131:Adding changes for version update
choudharypooja Mar 15, 2024
d9fc800
Pull request #47: DEV-160131 cloudwatch logs account subscription filter
choudharypooja Mar 18, 2024
46c2e2b
DEV-160131:Adding selection criteria for log groups
choudharypooja Mar 19, 2024
6eb00eb
DEV-160131:Changing description for log groups
choudharypooja Mar 19, 2024
7bcb451
Pull request #48: DEV-160131 cloudwatch logs account subscription filter
choudharypooja Mar 20, 2024
d057c12
DEV-160131:Adding missing dependency on CloudwatchLogsPermission
choudharypooja Mar 20, 2024
9cd649a
Pull request #49: DEV-160131:Adding missing dependency on CloudwatchL…
choudharypooja Mar 21, 2024
1372b48
Pull request #50: Develop
choudharypooja Mar 26, 2024
96b0335
DEV-166777: DEV-166777 | Adding-resource_type in metadata
ankit-gautam23 May 15, 2024
df09d76
DEV-166777: Refactoring
ankit-gautam23 May 17, 2024
679dfd4
DEV-166777: Bumped version to 1.5.2 which I missed
ankit-gautam23 May 20, 2024
e9e53bb
Pull request #51: DEV-166777 adding resource type aws in metadata for…
ankit-gautam23 May 20, 2024
1a22c97
Pull request #52: Develop to Master
ankit-gautam23 May 23, 2024
1db259e
DEV-173005:adding changes for log-ingest timeout configuration
choudharypooja Jul 17, 2024
f8641e1
Pull request #53: DEV-173005:adding changes for log-ingest timeout co…
choudharypooja Jul 18, 2024
d90403d
DEV-173005:Fixing buildfailure due to logging
choudharypooja Jul 18, 2024
55a8b6e
Pull request #54: DEV-173005:Fixing buildfailure due to logging
choudharypooja Jul 18, 2024
b2536e4
DEV-173005:Updating version for cloudforation
choudharypooja Jul 19, 2024
366d9db
Pull request #55: DEV-173005:Updating version for cloudformation
choudharypooja Jul 19, 2024
9f767b5
Pull request #56: Develop
choudharypooja Jul 22, 2024
c0a4476
DEV-176822:Partial commit
choudharypooja Aug 27, 2024
7507e5e
DEV-19056:Adding support for python3.11 for aws govcloud
choudharypooja Aug 27, 2024
ff88ad7
Pull request #57: DEV-19056:Adding support for python3.11 for aws gov…
choudharypooja Aug 28, 2024
00333e1
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Aug 29, 2024
dd80017
Pull request #59: Develop
choudharypooja Aug 30, 2024
30de722
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Aug 30, 2024
0723fd1
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Sep 2, 2024
773a082
Pull request #58: DEV-176765: DEV-176765-aws-log-integration-support…
vishaalcharpe Sep 2, 2024
6fea5f1
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Sep 2, 2024
432ddc9
Pull request #60: DEV-176765: DEV-176765-aws-log-integration-support…
vishaalcharpe Sep 2, 2024
25a2fcc
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Sep 2, 2024
8483436
DEV-176822:Adding changes for bedrock logs
choudharypooja Sep 3, 2024
78015c9
DEV-176822:Increasing version
choudharypooja Sep 3, 2024
2517f3b
Merge branch 'develop' of ssh://stash.logicmonitor.com:7999/dev/lm-lo…
choudharypooja Sep 3, 2024
907c0a8
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Sep 3, 2024
0a6e4cf
Pull request #61: DEV-176765: DEV-176765-aws-log-integration-support…
vishaalcharpe Sep 3, 2024
93f7bf0
Pull request #62: DEV-176822 aws log integration support for aws bedr…
choudharypooja Sep 3, 2024
6590445
DEV-176822:Adding Readme changes for Bedrock
choudharypooja Sep 4, 2024
ec638b4
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Sep 4, 2024
3ffdfb5
Pull request #64: DEV-176765: DEV-176765-aws-log-integration-support…
vishaalcharpe Sep 5, 2024
4d06332
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Sep 10, 2024
32e36c2
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-l…
vishaalcharpe Sep 10, 2024
7cc963d
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-lm
vishaalcharpe Sep 10, 2024
83c13fd
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-l…
vishaalcharpe Sep 10, 2024
f2e69dd
Pull request #65: DEV-176765: DEV-176765-aws-log-integration-support…
vishaalcharpe Sep 10, 2024
b9d1615
Pull request #66: DEV-176765: DEV-176765-aws-log-integration-support…
vishaalcharpe Sep 10, 2024
21077df
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-l…
vishaalcharpe Sep 11, 2024
5b7e8d5
Pull request #68: DEV-176765: DEV-176765-aws-log-integration-support…
vishaalcharpe Sep 11, 2024
be4996d
minor readme changes
choudharypooja Sep 11, 2024
2d039ea
DEV-176765: DEV-176765-aws-log-integration-support-aws-eks-logs-in-l…
vishaalcharpe Sep 11, 2024
4e68bef
Pull request #69: DEV-176765: DEV-176765-aws-log-integration-support…
vishaalcharpe Sep 11, 2024
4425f74
Pull request #63: DEV-176822:Adding Readme changes for Bedrock
choudharypooja Sep 11, 2024
11961ed
Pull request #67: Develop to Master
vishaalcharpe Sep 11, 2024
75a9ec1
DEV-183955:Removing public configuration for s3 bucket
choudharypooja Nov 19, 2024
71727c0
Pull request #70: DEV-183955:Removing public configuration for s3 bucket
choudharypooja Nov 21, 2024
a72d2ac
Pull request #71: Develop
choudharypooja Nov 22, 2024
d0d62aa
added-govcloud: added-govcloud-domain-support
vishaalcharpe Nov 25, 2024
150289e
added-govcloud: added-govcloud-domain-support
vishaalcharpe Nov 26, 2024
0b7951e
Pull request #73: Added-govcloud-domain-support
vishaalcharpe Nov 26, 2024
e0592f2
added-govcloud: added-govcloud-domain-support
vishaalcharpe Nov 27, 2024
55233a7
added-govcloud: added-govcloud-domain-support
vishaalcharpe Nov 27, 2024
5b3917e
Pull request #74: Added-govcloud-domain-support
vishaalcharpe Nov 27, 2024
34a4e6a
added-govcloud: added-govcloud-domain-support
vishaalcharpe Nov 27, 2024
ae89ff6
Pull request #75: Added-govcloud-domain-support
vishaalcharpe Nov 27, 2024
c2f13b4
Pull request #76: AWS | Develop to master
vishaalcharpe Dec 2, 2024
4acc221
aws-logs: aws-logs-not-consistently-mapped-to-ec2
vishaalcharpe Jan 15, 2025
2f7bf3f
aws-logs: aws-logs-not-consistently-mapped-to-ec2
vishaalcharpe Jan 17, 2025
8306e03
Pull request #77: aws-logs: aws-logs-not-consistently-mapped-to-ec2
vishaalcharpe Jan 20, 2025
c3231ce
Pull request #78: Develop to master
vishaalcharpe Jan 20, 2025
fe978a7
q business logs support
prakalp05 Apr 7, 2025
9164d9f
fixed parsing changes
prakalp05 Apr 7, 2025
b31644b
added readme, updated version, fixed testcase
prakalp05 Apr 7, 2025
77c1eea
fixed readme, fixed version, moved regex to constants
prakalp05 Apr 8, 2025
fb91a98
Pull request #79: Qbusiness logs
prakalp05 Apr 8, 2025
5f6a194
updated version in cloudformation.yaml
prakalp05 Apr 8, 2025
ac45407
Pull request #80: updated version in cloudformation.yaml and added de…
prakalp05 Apr 8, 2025
cd143d9
Pull request #81: Develop to master
prakalp05 Apr 11, 2025
e87c80d
support for endpoint,trainingJob,processingJob logs
prakalp05 May 14, 2025
2e0603b
add details in readme, fix version
prakalp05 May 15, 2025
529a1a2
Pull request #82: support for endpoint,trainingJob,processingJob logs
prakalp05 May 19, 2025
fabb1ac
Pull request #83: Develop to Master - DEV-199164 - Support for Amazon…
prakalp05 May 29, 2025
e7daee4
DEV-197633: support-for-amazon-q-business-api-call-logs
vishaalcharpe Aug 12, 2025
3b321c0
DEV-197633: support-for-amazon-q-business-api-call-logs
vishaalcharpe Aug 12, 2025
74ed78b
Pull request #85: DEV-197633: support-for-amazon-q-business-api-call…
vishaalcharpe Aug 14, 2025
d2c06de
Pull request #86: Develop to master
vishaalcharpe Aug 20, 2025
f044ee0
dummy: dummy
vishaalcharpe Aug 26, 2025
aadafcf
Pull request #87: Bamboo failure check
vishaalcharpe Aug 26, 2025
c396532
Pull request #88: Bamboo failure check
vishaalcharpe Aug 26, 2025
6de2194
Merge branch 'master' into stash-sync-to-github
vishaalcharpe Oct 12, 2025
1ec0150
Update Dockerfile
vishaalcharpe Oct 13, 2025
309425d
Update cloudformation.yaml
vishaalcharpe Oct 13, 2025
204a74e
Update cloudformation.yaml
vishaalcharpe Oct 14, 2025
aab9b5c
Update Dockerfile
vishaalcharpe Oct 14, 2025
47ff13c
Update parse.go
vishaalcharpe Oct 14, 2025
7450e55
Update parse_test.go
vishaalcharpe Oct 14, 2025
6750406
Update README.md
vishaalcharpe Oct 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ RUN go mod download
COPY code/* /code/

FROM base as build
RUN go build -o main *.go \
&& zip lambda.zip main
RUN go build -o bootstrap *.go \
&& zip lambda.zip bootstrap

FROM base as test
RUN go test
Expand All @@ -21,4 +21,4 @@ RUN golangci-lint run .
FROM alpine as release
WORKDIR /code
COPY --from=build /code/lambda.zip /code/
VOLUME /code
VOLUME /code
222 changes: 120 additions & 102 deletions README.md

Large diffs are not rendered by default.

249 changes: 211 additions & 38 deletions cloudformation.yaml
Original file line number Diff line number Diff line change
@@ -1,25 +1,116 @@
AWSTemplateFormatVersion: "2010-09-09"
Transform: AWS::Serverless-2016-10-31
Description: Pushes logs from AWS to Logic Monitor logs endpoint.
Description: Pushes logs from AWS to LogicMonitor logs endpoint.
Mappings:
Constants:
LMForwarder:
Version: 1.0.0
Version: 1.8.0
RegionToLayerArnMap:
us-east-1:
"LayerArn": "arn:aws:lambda:us-east-1:177933569100:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
us-east-2:
"LayerArn": "arn:aws:lambda:us-east-2:590474943231:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
eu-west-1:
"LayerArn": "arn:aws:lambda:eu-west-1:015030872274:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
eu-west-2:
"LayerArn": "arn:aws:lambda:eu-west-2:133256977650:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
eu-west-3:
"LayerArn": "arn:aws:lambda:eu-west-3:780235371811:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
us-west-2:
"LayerArn": "arn:aws:lambda:us-west-2:345057560386:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
us-west-1:
"LayerArn": "arn:aws:lambda:us-west-1:997803712105:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ca-central-1:
"LayerArn": "arn:aws:lambda:ca-central-1:200266452380:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
eu-central-1:
"LayerArn": "arn:aws:lambda:eu-central-1:187925254637:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
eu-central-2:
"LayerArn": "arn:aws:lambda:eu-central-2:772501565639:layer:AWS-Parameters-and-Secrets-Lambda-Extension:1"
eu-north-1:
"LayerArn": "arn:aws:lambda:eu-north-1:427196147048:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
eu-south-1:
"LayerArn": "arn:aws:lambda:eu-south-1:325218067255:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
eu-south-2:
"LayerArn": "arn:aws:lambda:eu-south-2:524103009944:layer:AWS-Parameters-and-Secrets-Lambda-Extension:1"
cn-north-1:
"LayerArn": "arn:aws-cn:lambda:cn-north-1:287114880934:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
cn-northwest-1:
"LayerArn": "arn:aws-cn:lambda:cn-northwest-1:287310001119:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ap-east-1:
"LayerArn": "arn:aws:lambda:ap-east-1:768336418462:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ap-south-2:
"LayerArn": "arn:aws:lambda:ap-south-2:070087711984:layer:AWS-Parameters-and-Secrets-Lambda-Extension:1"
ap-northeast-1:
"LayerArn": "arn:aws:lambda:ap-northeast-1:133490724326:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ap-northeast-3:
"LayerArn": "arn:aws:lambda:ap-northeast-3:576959938190:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ap-northeast-2:
"LayerArn": "arn:aws:lambda:ap-northeast-2:738900069198:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ap-southeast-1:
"LayerArn": "arn:aws:lambda:ap-southeast-1:044395824272:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ap-southeast-2:
"LayerArn": "arn:aws:lambda:ap-southeast-2:665172237481:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ap-southeast-3:
"LayerArn": "arn:aws:lambda:ap-southeast-3:490737872127:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
ap-south-1:
"LayerArn": "arn:aws:lambda:ap-south-1:176022468876:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
sa-east-1:
"LayerArn": "arn:aws:lambda:sa-east-1:933737806257:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
af-south-1:
"LayerArn": "arn:aws:lambda:af-south-1:317013901791:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
me-central-1:
"LayerArn": "arn:aws:lambda:me-central-1:858974508948:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
me-south-1:
"LayerArn": "arn:aws:lambda:me-south-1:832021897121:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
us-gov-east-1:
"LayerArn": "arn:aws-us-gov:lambda:us-gov-east-1:129776340158:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
us-gov-west-1:
"LayerArn": "arn:aws-us-gov:lambda:us-gov-west-1:127562683043:layer:AWS-Parameters-and-Secrets-Lambda-Extension:4"
Parameters:
LMCompanyName:
Type: String
Default: ""
Description: The LogicMonitor acccount name.
LMCompanyDomain:
Type: String
Description: The LogicMonitor acccount domain.
AllowedValues: [ logicmonitor.com, lmgov.us, qa-lmgov.us ]
Default: "logicmonitor.com"
LMAccessId:
Type: String
NoEcho: true
Default: ""
Description: The LM API tokens access ID
Description: The LogicMonitor API tokens access ID
LMAccessKey:
Type: String
NoEcho: true
Default: ""
Description: The LM API tokens access key
Description: The LogicMonitor API tokens access key
LMBearerToken:
Type: String
NoEcho: true
Default: ""
Description: The LogicMonitor API Bearer token. (You must specify LMBearerToken if not providing LMAccessId, LMAccessKey. In case you provide all, LMAccessId and LMAccessKey will be used to authenticate with Logicmonitor. )
Metadata:
Type: CommaDelimitedList
Description: Metadata if any
Default: awsRegion, arn
AllowedValues:
- awsRegion
- arn
MetadataKeysForJsonLogs:
Type: CommaDelimitedList
Description: Json keys to include in event metadata for cloudtaril logs and cloudwatch logs of json type
Default: ""
LMTenantIdentifier:
Type: String
Description: LogicMonitor Tenant Identifier send in the metadata with logs to LogicMonitor portal
Default: ""
UseSecretManagerForStoringSecrets:
Type: String
Description: If true it will use secrets manager and cache the credentials which can incur cost to secrets manager.If false it will use enviromental variables
AllowedValues: [true, false]
Default: "false"
FunctionName:
Type: String
Default: LMLogsForwarder
Expand All @@ -36,12 +127,36 @@ Parameters:
Description: The memory size for the LM Forwarder lambda function
FunctionTimeoutInSeconds:
Type: Number
Default: 120
Default: 360
Description: The timeout for the LM Forwarder lambda function
PermissionsBoundaryArn:
Type: String
Default: ""
Description: ARN for the Permissions Boundary Policy
AccountLevelSubscription:
Type: String
AllowedValues: [true, false]
Default: "false"
Description: If true it will enable account level subscription to forward logs to the LMLogsForwarder lambda.
FilterPattern:
Type: String
Description: Specify the log event structure and any filter conditions to apply on your log data as it gets streamed to LMLogsForwarder lambda. Only applicable if AccountLevelSubscription is true.
Default: ""
SelectionCriteria:
Type: String
Description: Use this parameter to apply a subscription filter policy to a subset of log groups in the account. The string can be up to 25KB in length. Example LogGroupName NOT IN ["MyLogGroup", "MyAnotherLogGroup"]
Default: ""

Rules:
NoAccessIdKeyProvided:
RuleCondition: !Or [!Equals [!Ref LMAccessId, ""], !Equals [!Ref LMAccessKey, ""]]
Assertions:
- AssertDescription: Please specify either LMAccessId, LMAccessKey both or LMBearerToken to authenticate with Logicmonitor.
Assert: !Not
- !Equals
- !Ref LMBearerToken
- ""

Resources:
Forwarder:
Type: AWS::Serverless::Function
Expand All @@ -50,40 +165,55 @@ Resources:
FunctionName:
Ref: FunctionName
Description: Pushes aws logs to Logic Monitor log endpoint.
Handler: main
Handler: bootstrap
MemorySize:
Ref: FunctionMemorySize
Runtime: go1.x
CodeUri:
Runtime: provided.al2
CodeUri:
Bucket: !Ref ForwarderZipsBucket
Key: main.zip
Timeout:
Ref: FunctionTimeoutInSeconds
Layers:
- Fn::If:
- CreateSecretManager
- !FindInMap [RegionToLayerArnMap, !Ref "AWS::Region", LayerArn]
- Ref: AWS::NoValue
Environment:
Variables:
LM_COMPANY_NAME:
LM_ACCOUNT:
Ref: LMCompanyName
LM_ACCESS_ID_ARN:
Ref: AccessIdSecret
LM_ACCESS_KEY_ARN:
Ref: AccessKeySecret
LM_ACCOUNT_DOMAIN:
Ref: LMCompanyDomain
METADATA: !Join [",", !Ref Metadata]
LOGICMONITOR_ACCESS_ID: !If [UseLMV1ForAuth, !If [CreateSecretManager, !Ref AccessIdSecret, !Ref LMAccessId], ""] #!Ref AccessIdSecret, !If [UseLMV1ForAuth, !Ref LMAccessId, "" ]
LOGICMONITOR_ACCESS_KEY: !If [UseLMV1ForAuth, !If [CreateSecretManager, !Ref AccessKeySecret, !Ref LMAccessKey], ""]
LOGICMONITOR_BEARER_TOKEN: !If [MustUseBearerTokenForAuth, !If [CreateSecretManager, !Ref BearerTokenSecret, !Ref LMBearerToken], ""]
LM_SCRUB_REGEX:
Ref: LMRegexScrub
USE_SECRET_MANAGER:
Ref: UseSecretManagerForStoringSecrets
JSON_METADATA_KEYS: !Join [",", !Ref MetadataKeysForJsonLogs]
ADD_CLOUDWATCH_METADATA: "true"
LM_TENANT_IDENTIFIER:
Ref: LMTenantIdentifier
Policies:
- Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- s3:Get*
Resource: "*"
- Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- secretsmanager:GetSecretValue
Resource:
- Ref: AccessKeySecret
- Ref: AccessIdSecret
- Fn::If:
- CreateSecretManager
- Effect: Allow
Action:
- secretsmanager:GetSecretValue
Resource:
- !If [UseLMV1ForAuth, !Ref AccessIdSecret, !Ref AWS::NoValue]
- !If [UseLMV1ForAuth, !Ref AccessKeySecret, !Ref AWS::NoValue]
- !If [MustUseBearerTokenForAuth, !Ref BearerTokenSecret, !Ref AWS::NoValue]
- Ref: AWS::NoValue
CloudWatchLogsPermission:
Type: AWS::Lambda::Permission
Properties:
Expand All @@ -102,32 +232,27 @@ Resources:
Type: AWS::S3::Bucket
Properties:
BucketEncryption:
ServerSideEncryptionConfiguration:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
ForwarderZip:
Type: Custom::ForwarderZip
Properties:
ServiceToken: !GetAtt "ForwarderZipCopier.Arn"
DestZipsBucket: !Ref "ForwarderZipsBucket"
SourceZipUrl:
Fn::Sub:
- "https://logicmonitor-logs-forwarder.s3.amazonaws.com/source/${LMForwarderVersion}/lambda.zip"
- "https://logicmonitor-logs-forwarder.s3.amazonaws.com/source/code/${LMForwarderVersion}/lambda.zip"
- {
LMForwarderVersion:
!FindInMap [Constants, LMForwarder, Version],
}
LMForwarderVersion:
!FindInMap [Constants, LMForwarder, Version],
}
ForwarderZipCopier:
Type: AWS::Serverless::Function
Properties:
Description: Copies Logic Monitor Forwarder zip to the destination S3 bucket
Handler: index.handler
Runtime: python3.7
Runtime: python3.11
Timeout: 300
InlineCode: |
import json
Expand All @@ -136,10 +261,10 @@ Resources:
import boto3
import urllib.request
import os

logger = logging.getLogger()
logger.setLevel(logging.INFO)

def send_cfn_resp(event, context, response_status):
resp_body = json.dumps({
'Status': response_status,
Expand All @@ -161,7 +286,7 @@ Resources:
s3 = boto3.client('s3')
filename = "main.zip"
with urllib.request.urlopen(source_zip_url) as data:
s3.upload_fileobj(data, dest_zips_bucket, filename)
s3.upload_fileobj(data, dest_zips_bucket, filename, ExtraArgs={'ServerSideEncryption':'AES256'})
def timeout(event, context):
logger.error('Execution is about to time out, sending failure response to CloudFormation')
send_cfn_resp(event, context, 'FAILED')
Expand Down Expand Up @@ -213,25 +338,63 @@ Resources:
LM_FORWARDER_VERSION: !FindInMap [Constants, LMForwarder, Version]
AccessKeySecret:
Type: AWS::SecretsManager::Secret
Condition: CreateSecretAccess
Properties:
Description: Logic Monitor Access Key
Description: LogicMonitor Access Key
SecretString:
Ref: LMAccessKey
AccessIdSecret:
Type: AWS::SecretsManager::Secret
Condition: CreateSecretAccess
Properties:
Description: Logic Monitor Access Id
Description: LogicMonitor Access Id
SecretString:
Ref: LMAccessId
BearerTokenSecret:
Type: AWS::SecretsManager::Secret
Condition: CreateSecretBearerToken
Properties:
Description: LogicMonitor Bearer Token
SecretString:
Ref: LMBearerToken
AccountPolicy:
Condition: IsAccountLevel
Type: AWS::Logs::AccountPolicy
DependsOn: [Forwarder, CloudWatchLogsPermission, S3Permission]
Properties:
PolicyName: account-subscriptionfilter-policy
PolicyDocument: !Sub "{\"DestinationArn\":\"arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:${FunctionName}\", \"FilterPattern\": \"${FilterPattern}\"}"
PolicyType: "SUBSCRIPTION_FILTER_POLICY"
Scope: "ALL"
SelectionCriteria:
Fn::If:
- HasSelectionCriteria
- Ref: SelectionCriteria
- Ref: AWS::NoValue
Conditions:
SetPermissionsBoundary:
Fn::Not:
- Fn::Equals:
- Ref: PermissionsBoundaryArn
- ""
AccessIdEmpty: !Equals [!Ref LMAccessId, ""]
AccessKeyEmpty: !Equals [!Ref LMAccessKey, ""]
MustUseBearerTokenForAuth: !Or
- !Condition AccessIdEmpty
- !Condition AccessKeyEmpty
UseLMV1ForAuth: !Not [!Condition MustUseBearerTokenForAuth]
CreateSecretManager: !Equals [!Ref UseSecretManagerForStoringSecrets, true]
CreateSecretAccess: !And
- !Condition UseLMV1ForAuth
- !Condition CreateSecretManager
CreateSecretBearerToken: !And
- !Condition MustUseBearerTokenForAuth
- !Condition CreateSecretManager
IsAccountLevel: !Equals [!Ref AccountLevelSubscription, 'true']
HasSelectionCriteria: !Not [!Equals [!Ref SelectionCriteria, ""]]
Outputs:
LMForwarderArn:
Description: Logic Monitor Forwarder Lambda Function ARN
Description: LogicMonitor Forwarder Lambda Function ARN
Value:
Fn::GetAtt:
- Forwarder
Expand All @@ -247,11 +410,21 @@ Metadata:
Parameters:
- FunctionName
- LMCompanyName
- LMCompanyDomain
- LMAccessId
- LMAccessKey
- LMBearerToken
- LMRegexScrub
- UseSecretManagerForStoringSecrets
- Label:
default: Lambda Function (Optional)
Parameters:
- Metadata
- MetadataKeysForJsonLogs
- LMTenantIdentifier
- FunctionMemorySize
- FunctionTimeoutInSeconds
- AccountLevelSubscription
- FilterPattern
- SelectionCriteria

Loading
Loading