Skip to content

Repository files navigation

AWS Observability Terraform Module

This Terraform module deploys the Sumo Logic AWS Observability Solution — 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

Configuration (main.auto.tfvars)

Create a main.auto.tfvars file with your environment-specific values:

sumologic_environment     = "us2"                  # Sumo Logic deployment: au, ca, ch, de, eu, fed, jp, kr, us1, us2
sumologic_access_id       = "<YOUR SUMO ACCESS ID>"
sumologic_access_key      = "<YOUR SUMO ACCESS KEY>"
sumologic_organization_id = "<YOUR SUMO ORG ID>"
aws_account_alias         = "<AWS_ACCOUNT_ALIAS>"           # Lowercase letters and numbers only
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"

  sumologic_environment     = "us2"
  sumologic_access_id       = var.sumologic_access_id
  sumologic_access_key      = var.sumologic_access_key
  sumologic_organization_id = var.sumologic_organization_id
  aws_account_alias         = "prod"
}

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

# 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/ directory for complete working configurations.

Submodules

Name Description
modules/apps Installs Sumo Logic apps, monitors, metric rules, FERs, and the AWS Observability hierarchy. Deploy once per Sumo Logic organization.
modules/collection 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
random >= 3.1.0
sumologic >= 3.3.0, < 4.0.0
time >= 0.11.1

Providers

No providers.

Modules

Name Source Version
app-module ./modules/apps n/a
collection-module ./modules/collections n/a

Resources

No resources.

Inputs

Name Description Type Default Required
aws_account_alias Provide the Name/Alias for the AWS environment from which you are collecting data. This name will appear in the Sumo Logic Explorer View, metrics, and logs.
If you are going to deploy the solution in multiple AWS accounts then this value has to be overidden at main.tf file.
Do not include special characters in the alias.
string n/a yes
aws_resource_tags Map of tags to apply to all AWS resources provisioned through the AWS Observability Solution map(string) {} no
classic_lb_log_source_url Required if you are already collecting Classic LB logs. Provide the existing Sumo Logic Classic LB Source API URL. string "" no
cloudtrail_source_url Required if you are already collecting CloudTrail logs. Provide the existing Sumo Logic CloudTrail Source API URL. string "" no
cloudwatch_logs_source_url Required if you are already collecting CloudWatch Logs. Provide the existing Sumo Logic Logs Source API URL. e.g. https://api.us2.sumologic.com/api/v1/collectors//sources/ string "" no
cloudwatch_metrics_source_url Required if you are already collecting CloudWatch Metrics. Provide the existing Sumo Logic Metrics Source API URL. e.g. https://api.us2.sumologic.com/api/v1/collectors//sources/ string "" no
elb_log_source_url Required if you are already collecting ALB logs. Provide the existing Sumo Logic ALB Source API URL. string "" no
sumologic_access_id Sumo Logic Access ID. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key string n/a yes
sumologic_access_key Sumo Logic Access Key. Visit https://help.sumologic.com/Manage/Security/Access-Keys#Create_an_access_key string n/a yes
sumologic_environment Enter au, ca, ch, de, eu, esc, fed, jp, kr, us1 or us2. For more information on Sumo Logic deployments visit https://help.sumologic.com/APIs/General-API-Information/Sumo-Logic-Endpoints-and-Firewall-Security string n/a yes
sumologic_environment_base_url Base URL for custom Sumo Logic environments (e.g., 'https://api.ch.sumologic.com/api/' for Switzerland). If provided, this takes precedence over the sumologic_environment parameter. Leave empty for standard deployments. string null no
sumologic_organization_id You can find your org on the Preferences page in the Sumo Logic UI. For more information, see the Preferences Page topic. Your org ID will be used to configure the IAM Role for Sumo Logic AWS Sources."
For more details, visit https://help.sumologic.com/01Start-Here/05Customize-Your-Sumo-Logic-Experience/Preferences-Page
string n/a yes

Outputs

Name Description
Apps All outputs related to apps.
Collection All outputs related to collection and sources.

About

New dedicated public GitHub repository named terraform-sumologic-aws-observability under the SumoLogic GitHub organization for publishing a Terraform module to the Terraform Registry.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages