Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
bbe521e
Migrated terraform aws observability module from solution template
mdazhar-sumo Jul 22, 2026
4567da5
reverting local testing changes
mdazhar-sumo Jul 22, 2026
7d9b373
updated new policy for both old and new regions
mdazhar-sumo Jul 22, 2026
f30875c
Merge pull request #1 from SumoLogic/policy
mdazhar-sumo Jul 23, 2026
78f8b8c
Fixed field issue and IAM policy propagation dependencies
mdazhar-sumo Jul 28, 2026
d7577f5
removed sam related stack from example test module
mdazhar-sumo Jul 28, 2026
84b44c0
excluded kinesis firehose and lambda log forwarder modules from IAM p…
mdazhar-sumo Jul 28, 2026
3929aed
set base_url via provider
mdazhar-sumo Jul 29, 2026
a8832ea
fixed base url condition
mdazhar-sumo Jul 29, 2026
5d849a3
replaced collector to time_sleep.wait_for_minutes
sachin-sumologic Jul 31, 2026
8331328
added readme update script
mdazhar-sumo Aug 2, 2026
aa0a8e1
updated the read me files
mdazhar-sumo Aug 2, 2026
f804529
sid name fix
mdazhar-sumo Aug 2, 2026
9318433
Implemented Bucket policy and SNS event notification
akhil-sumologic Aug 3, 2026
bc80e5a
Added create_trail in var
akhil-sumologic Aug 4, 2026
72f47b6
Fix S3 bucket force_destroy logic, add existing bucket management, an…
sachin-sumologic Aug 7, 2026
c88036b
Revert "Fix S3 bucket force_destroy logic, add existing bucket manage…
sachin-sumologic Aug 7, 2026
ee2f1c7
Updated flags
akhil-sumologic Aug 7, 2026
75154dc
Merge pull request #4 from SumoLogic/existing_bucket_policy_sns_noti
mdazhar-sumo Aug 10, 2026
48fd9c4
Fixed depracted warnings for tf
mdazhar-sumo Aug 10, 2026
5e5d125
Added aws_profile var in collection module
akhil-sumologic Aug 10, 2026
cd09bd6
Merge pull request #7 from SumoLogic/aws_multiple_profile
mdazhar-sumo Aug 10, 2026
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
47 changes: 47 additions & 0 deletions .github/workflows/awso-tf-module-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: "TF template tests"
on:
pull_request:
paths:
- '**'

jobs:

ValidateTF:
runs-on: ubuntu-latest
name: "Validation (format & syntax)"
steps:
- uses: actions/checkout@v4
name: Checkout source code

- uses: hashicorp/setup-terraform@v3
name: Setup Terraform

- name: Terraform fmt
id: fmt
run: terraform fmt -check -recursive -diff
continue-on-error: true

- name: Terraform Init
id: init
run: terraform init

- name: Terraform Validate
id: validate
run: terraform validate

TFSecurityChecks:
name: "Security Scan"
runs-on: "ubuntu-latest"
steps:
- name: Checkout repo
uses: actions/checkout@v4

- uses: bridgecrewio/checkov-action@master
with:
directory: '.'
quiet: true
framework: terraform
output_format: cli
output_bc_ids: false
download_external_modules: true
skip_check: CKV_AWS_18,CKV_AWS_21,CKV_AWS_26,CKV_AWS_27,CKV_AWS_35,CKV_AWS_36,CKV_AWS_50,CKV_AWS_67,CKV_AWS_115,CKV_AWS_116,CKV_AWS_117,CKV_AWS_124,CKV_AWS_144,CKV_AWS_145,CKV_AWS_158,CKV_AWS_173,CKV_AWS_240,CKV_AWS_241,CKV_AWS_252,CKV_AWS_272,CKV_AWS_338,CKV2_AWS_6,CKV2_AWS_10,CKV2_AWS_61,CKV2_AWS_62,CKV_TF_1,CKV_TF_2
150 changes: 150 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# Terraform
terraform
.terraform
terraform.tfstate
terraform.tfstate.backup
.terraform.lock.hcl
.test-data
test/*/test_output
test/*/test_output.log
**/.terraform
**/crash.log
pkg/


# OS stuff
.DS_Store


# pycharm
.idea
4 changes: 4 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Learn about CODEOWNERS file format:
# https://help.github.com/en/articles/about-code-owners

* @SumoLogic/sumoappdev
13 changes: 13 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Copyright 2020. Sumo Logic Inc., All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
103 changes: 99 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,37 @@
# terraform-sumologic-aws-observability
# AWS Observability Terraform Module

Terraform module for deploying the [Sumo Logic AWS Observability Solution](https://help.sumologic.com/docs/observability/aws/) — a full-stack observability solution for AWS environments covering ALB, ELB, NLB, API Gateway, CloudTrail, DynamoDB, EC2, ECS, ElastiCache, Lambda, RDS, SNS, and SQS.
This Terraform module deploys the [Sumo Logic AWS Observability Solution](https://help.sumologic.com/docs/observability/aws/) — a full-stack observability solution for AWS environments. It configures AWS collection infrastructure and installs Sumo Logic apps, monitors, dashboards, and field extraction rules for the following AWS services and supporting apps:

- Application Load Balancer (ALB)
- Classic Load Balancer (ELB)
- Network Load Balancer (NLB)
- API Gateway
- CloudTrail
- DynamoDB
- EC2
- ECS (Without Container Insights and Traces)
- ECS (With Container Insights and Traces)
- ElastiCache
- Amazon Overview
- Lambda
- RDS
- SNS
- SQS
- Host Metrics (EC2)

## Usage

```hcl
provider "sumologic" {
environment = var.sumologic_environment
access_id = var.sumologic_access_id
access_key = var.sumologic_access_key
}

provider "aws" {
region = "us-east-1"
}

module "aws_observability" {
source = "SumoLogic/aws-observability/sumologic"
version = ">= 1.0.0"
Expand All @@ -17,6 +44,74 @@ module "aws_observability" {
}
```

## Documentation
For multi-account or multi-region deployments, use the submodules directly:

```hcl
# Install apps once per Sumo Logic org
module "apps" {
source = "SumoLogic/aws-observability/sumologic//modules/apps"
version = ">= 1.0.0"
...
}

# Install collection once per AWS account/region
module "collection" {
source = "SumoLogic/aws-observability/sumologic//modules/collection"
version = ">= 1.0.0"
...
}
```

See the [`examples/`](./examples) directory for complete working configurations.

## Submodules

| Name | Description |
|------|-------------|
| [modules/apps](./modules/apps) | Installs Sumo Logic apps, monitors, metric rules, FERs, and the AWS Observability hierarchy. Deploy once per Sumo Logic organization. |
| [modules/collection](modules/collections) | Creates AWS collection infrastructure (CloudTrail, ELB, CloudWatch, Kinesis Firehose sources) and Sumo Logic collector. Deploy once per AWS account/region. |

## Requirements

| Name | Version |
|------|---------|
| terraform | >= 1.5.7 |
| aws | >= 5.16.2, < 7.0.0 |
| sumologic | >= 3.2.9, < 4.0.0 |
| time | >= 0.11.1 |
| random | >= 3.1.0 |

## Providers

| Name | Version |
|------|---------|
| [sumologic](https://registry.terraform.io/providers/SumoLogic/sumologic/latest) | >= 3.2.9, < 4.0.0 |
| [aws](https://registry.terraform.io/providers/hashicorp/aws/latest) | >= 5.16.2, < 7.0.0 |
| [time](https://registry.terraform.io/providers/hashicorp/time/latest) | >= 0.11.1 |

## Modules

| Name | Source |
|------|--------|
| [sumo-module](./modules/apps) | ./modules/apps |
| [collection-module](modules/collections) | ./modules/collection |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| sumologic\_environment | Sumo Logic deployment region (au, ca, ch, de, eu, esc, fed, jp, kr, us1, us2) | `string` | n/a | yes |
| sumologic\_access\_id | Sumo Logic Access ID | `string` | n/a | yes |
| sumologic\_access\_key | Sumo Logic Access Key | `string` | n/a | yes |
| sumologic\_organization\_id | Sumo Logic Organization ID | `string` | n/a | yes |
| aws\_account\_alias | Alias for the AWS account (lowercase letters and numbers only) | `string` | n/a | yes |
| sumologic\_folder\_installation\_location | Where to install the app folder (`"Personal Folder"` or `"Admin Recommended Folder"`) | `string` | `"Personal Folder"` | no |
| sumologic\_folder\_share\_with\_org | Share the AWS Observability folder with the entire org | `bool` | `true` | no |
| aws\_resource\_tags | Tags to apply to all AWS resources created by this module | `map(string)` | `{}` | no |

## Outputs

Full documentation, examples, and module reference are in the module source. See the [Sumo Logic AWS Observability docs](https://help.sumologic.com/docs/observability/aws/) for a complete guide.
| Name | Description |
|------|-------------|
| Apps | All outputs related to apps. |
| Collection | All outputs related to collection and sources. |
Loading
Loading