### criblio_destination Resource Example Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/resources/destination.md Example usage of the criblio_destination resource to configure an S3 output. ```APIDOC ## criblio_destination Resource ### Description Configures a destination for data output. ### Schema #### Required - `group_id` (String) - Worker group ID. - `id` (String) - Unique ID for this output. #### Optional - `output_default` (Attributes) - Configuration for default output. - `output_webhook` (Attributes) - Configuration for webhook output. - `output_sentinel` (Attributes) - Configuration for Sentinel output. - `output_devnull` (Attributes) - Configuration for devnull output. - `output_syslog` (Attributes) - Configuration for syslog output. - `output_splunk` (Attributes) - Configuration for Splunk output. - `output_splunk_lb` (Attributes) - Configuration for Splunk LB output. - `output_splunk_hec` (Attributes) - Configuration for Splunk HEC output. - `output_wiz_hec` (Attributes) - Configuration for Wiz HEC output. - `output_tcpjson` (Attributes) - Configuration for TCPJSON output. - `output_wavefront` (Attributes) - Configuration for Wavefront output. - `output_signalfx` (Attributes) - Configuration for SignalFx output. - `output_filesystem` (Attributes) - Configuration for filesystem output. - `output_s3` (Attributes) - Configuration for S3 output. - `output_azure_blob` (Attributes) - Configuration for Azure Blob output. - `output_azure_data_explorer` (Attributes) - Configuration for Azure Data Explorer output. - `output_azure_logs` (Attributes) - Configuration for Azure Logs output. - `output_kinesis` (Attributes) - Configuration for Kinesis output. - `output_honeycomb` (Attributes) - Configuration for Honeycomb output. - `output_azure_eventhub` (Attributes) - Configuration for Azure Event Hub output. - `output_google_chronicle` (Attributes) - Configuration for Google Chronicle output. - `output_google_cloud_storage` (Attributes) - Configuration for Google Cloud Storage output. - `output_google_cloud_logging` (Attributes) - Configuration for Google Cloud Logging output. - `output_google_cloud_observability` (Attributes) - Configuration for Google Cloud Observability output. - `output_google_pubsub` (Attributes) - Configuration for Google Pub/Sub output. - `output_exabeam` (Attributes) - Configuration for Exabeam output. - `output_kafka` (Attributes) - Configuration for Kafka output. - `output_confluent_cloud` (Attributes) - Configuration for Confluent Cloud output. - `output_msk` (Attributes) - Configuration for MSK output. - `output_elastic` (Attributes) - Configuration for Elastic output. - `output_elastic_cloud` (Attributes) - Configuration for Elastic Cloud output. - `output_newrelic` (Attributes) - Configuration for New Relic output. - `output_newrelic_events` (Attributes) - Configuration for New Relic Events output. - `output_influxdb` (Attributes) - Configuration for InfluxDB output. - `output_cloudwatch` (Attributes) - Configuration for CloudWatch output. - `output_minio` (Attributes) - Configuration for Minio output. - `output_statsd` (Attributes) - Configuration for StatsD output. #### Read-Only - `environment` (String) - Optionally, enable this config only on a specified Git branch. If empty, will be enabled everywhere. - `pipeline` (String) - Pipeline to process data before sending out to this output. - `type` (String) - The type of the output. ### Example Usage ```terraform resource "criblio_destination" "my_destination" { group_id = "default" id = "out-s3-main" output_s3 = { id = "out-s3-main" type = "s3" bucket = "`my-cribl-bucket`" region = "us-east-1" aws_api_key = "AKIAIOSFODNN7EXAMPLE" aws_secret_key = var.aws_secret_key dest_path = "`logs/$${C.Time.strftime(_time, '%Y/%m/%d')}`" stage_path = "$CRIBL_HOME/state/outputs/out-s3-main" compress = "gzip" format = "json" on_backpressure = "block" pipeline = "passthru" } } variable "aws_secret_key" { type = string sensitive = true } ``` ``` -------------------------------- ### Create a Criblio Pack and its Destination Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/resources/pack_destination.md This example demonstrates how to create a Criblio pack and then configure a pack destination for it. The destination is set to 'devnull' type. ```terraform resource "criblio_pack" "my_pack" { id = "pack-with-dest" group_id = "default" description = "Pack from source with destination" disabled = true display_name = "Pack from source with destination" source = "file:/opt/cribl_data/failover/groups/default/default/HelloPacks" version = "1.0.0" } resource "criblio_pack_destination" "my_packdest" { pack = criblio_pack.my_pack.id group_id = "default" id = "my_id" output_devnull = { environment = "my_environment" id = "my_id" pipeline = "my_pipeline" streamtags = [ "" ] system_fields = [ "" ] type = "devnull" } } ``` -------------------------------- ### Terraform Import Command Example Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/resources/pack_destination.md Use the `terraform import` command to import a pack destination resource. The resource ID must be provided as a JSON string. ```shell terraform import criblio_pack_destination.my_criblio_pack_destination '{"group_id": "Cribl", "id": "pack-out-s3", "pack": "observability-pack"}' ``` -------------------------------- ### Terraform Import Block Example Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/resources/pack_destination.md Use this block in Terraform v1.5.0 and later to import a pack destination resource. Ensure the `id` attribute correctly specifies the group, ID, and pack. ```terraform import { to = criblio_pack_destination.my_criblio_pack_destination id = jsonencode({ group_id = "Cribl" id = "pack-out-s3" pack = "observability-pack" }) } ``` -------------------------------- ### Install Cribl Terraform Provider Source: https://github.com/criblio/terraform-provider-criblio/blob/main/README.md Add this configuration to your Terraform setup and run 'terraform init' to install the provider. ```hcl terraform { required_providers { criblio = { source = "criblio/criblio" } } } provider "criblio" { # Configuration options } ``` -------------------------------- ### Initialize Terraform Source: https://github.com/criblio/terraform-provider-criblio/blob/main/examples/pack-with-full-config/README.md Navigate to the example directory and run 'terraform init' to download the necessary provider plugins. ```bash cd examples/pack-with-full-config terraform init ``` -------------------------------- ### Get criblio_certificates Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/data-sources/certificates.md Example of how to retrieve certificate information using the criblio_certificates data source. Specify the consumer group ID to filter certificates. ```terraform data "criblio_certificates" "my_certificates" { group_id = "default" } ``` -------------------------------- ### Initialize Terraform Source: https://github.com/criblio/terraform-provider-criblio/blob/main/examples/all-json-config-sources/README.md Run this command in the example directory to download the necessary Terraform modules and providers. ```bash cd examples/all-json-config-sources terraform init ``` -------------------------------- ### Initialize and Apply Terraform Configuration Source: https://github.com/criblio/terraform-provider-criblio/blob/main/USAGE.md This example demonstrates how to initialize Terraform and apply your configuration using the Criblio provider. Ensure the TF_REATTACH_PROVIDERS environment variable is set correctly. ```bash go run main.go --debug # Copy the TF_REATTACH_PROVIDERS env var # In a new terminal cd examples/your-example TF_REATTACH_PROVIDERS=... terraform init TF_REATTACH_PROVIDERS=... terraform apply ``` -------------------------------- ### Get criblio_notification_target Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/data-sources/notification_target.md Use this data source to retrieve information about a specific notification target by its ID. This is useful for referencing existing notification configurations within your Terraform setup. ```terraform data "criblio_notification_target" "my_notificationtarget" { id = "nt-slack-prod" } ``` -------------------------------- ### Appscope Configuration Example Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/resources/appscope_config.md This is a comprehensive example of an Appscope configuration block. It demonstrates how to set up logging, metrics, payload capture, protocol definitions, and tags for a specific application, such as nginx. ```hcl { description = "Custom Appscope configuration for nginx" group_id = "Cribl" id = "appscopeConfig1" lib = "cribl" tags = "scope,nginx" libscope = { commanddir = "/var/run/appscope/commands" configevent = true log = { level = "info" transport = { buffer = "line" host = "localhost" path = "/var/run/appscope.sock" port = 8080 tls = { cacertpath = "/etc/ssl/certs/ca-certificates.crt" enable = true validateserver = false } type = "tcp" } } summaryperiod = 60 } metric = { enable = true format = { statsdmaxlen = 512 statsdprefix = "webshop.prod." type = "statsd" verbosity = 3 } transport = { buffer = "line" host = "localhost" path = "/var/run/appscope.sock" port = 8080 tls = { cacertpath = "/etc/ssl/certs/ca-certificates.crt" enable = true validateserver = false } type = "tcp" } watch = [ { # ... } ] } payload = { dir = "/var/lib/appscope/payloads" enable = true } protocol = [ { binary = false detect = true len = 128 name = "http" payload = true regex = ".*" } ] tags = [ { key = "env" value = "prod" } ] } ``` -------------------------------- ### Get criblio_notification Data Source Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/data-sources/notification.md Use the `criblio_notification` data source to retrieve details of an existing notification by its ID. This is useful for referencing notification configurations within your Terraform setup. ```terraform data "criblio_notification" "my_notification" { id = "notif-001" } ``` -------------------------------- ### Review Terraform Plan Source: https://github.com/criblio/terraform-provider-criblio/blob/main/examples/all-json-config-sources/README.md Execute this command to preview the resources that Terraform will create based on the configuration. ```bash terraform plan ``` -------------------------------- ### criblio_mapping_ruleset Resource Example Source: https://github.com/criblio/terraform-provider-criblio/blob/main/docs/resources/mapping_ruleset.md This example shows how to define a criblio_mapping_ruleset resource with a default mapping function. ```terraform resource "criblio_mapping_ruleset" "my_mapping_ruleset" { active = true conf = { functions = [ { id = "eval" filter = "!cribl.group" disabled = false final = true description = "Default Mappings" conf = { add = [ { name = "groupId" value = "'default_fleet'" } ] } } ] } id = "default" product = "stream" } ```