All Projects → logzio → terraform-provider-logzio

logzio / terraform-provider-logzio

Licence: Apache-2.0 License
Terraform provider for logz.io alerts, endpoints and users

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to terraform-provider-logzio

terraform-provider-dockermachine
Docker machine provider for Terraform
Stars: ✭ 20 (+11.11%)
Mutual labels:  terraform-provider
go-graylog
Graylog API client for Go and terraform provider for Graylog
Stars: ✭ 45 (+150%)
Mutual labels:  terraform-provider
terraform-provider-opennebula
Terraform provider for OpenNebula
Stars: ✭ 38 (+111.11%)
Mutual labels:  terraform-provider
terraform-provider-jxadmin
A Jenkins X provider for terraform
Stars: ✭ 14 (-22.22%)
Mutual labels:  terraform-provider
terraform-provider-statuscake
Terraform StatusCake provider.
Stars: ✭ 26 (+44.44%)
Mutual labels:  terraform-provider
terraform-provider-influxdb
Terraform InfluxDB provider
Stars: ✭ 19 (+5.56%)
Mutual labels:  terraform-provider
terraform-provider-dns
Supports DNS updates (RFC 2136) and can optionally be configured with secret key based transaction authentication (RFC 2845).
Stars: ✭ 75 (+316.67%)
Mutual labels:  terraform-provider
terraform-provider-panos
Terraform Panos provider
Stars: ✭ 56 (+211.11%)
Mutual labels:  terraform-provider
terraform-provider-k8s
Kubernetes Terraform provider with support for raw manifests
Stars: ✭ 129 (+616.67%)
Mutual labels:  terraform-provider
terraform-provider-ovirt
Terraform provider for oVirt 4.x
Stars: ✭ 125 (+594.44%)
Mutual labels:  terraform-provider
terraform-provider-mackerel
Terraform provider for Mackerel
Stars: ✭ 16 (-11.11%)
Mutual labels:  terraform-provider
angular-8-alert-notifications
Angular 8 - Alert (Toaster) Notifications
Stars: ✭ 32 (+77.78%)
Mutual labels:  alerts
terraform-provider-citrixadc
Terraform Custom Provider for Citrix ADC (formerly Citrix NetScaler)
Stars: ✭ 89 (+394.44%)
Mutual labels:  terraform-provider
terraform-provider-junos
Terraform's provider for Junos devices
Stars: ✭ 44 (+144.44%)
Mutual labels:  terraform-provider
terraform-provider-elasticstack
Terraform provider for Elastic Stack
Stars: ✭ 61 (+238.89%)
Mutual labels:  terraform-provider
SuperGreenOS
🧠 SuperGreenOS home farming automation software for esp32, all in one package, and controllable from your smartphone, pc, mac, linux, toaster, plumbus, whatnot...
Stars: ✭ 83 (+361.11%)
Mutual labels:  alerts
nws alerts
An updated version of the nws_alerts custom integration for Home Assistant
Stars: ✭ 24 (+33.33%)
Mutual labels:  alerts
terraform-provider-vix
VMware VIX provider for Terraform
Stars: ✭ 96 (+433.33%)
Mutual labels:  terraform-provider
InteractiveAlert-Xamarin
Interactive alerts to Xamarin
Stars: ✭ 17 (-5.56%)
Mutual labels:  alerts
terraform-provider-inwx
terraform provider for INWX
Stars: ✭ 23 (+27.78%)
Mutual labels:  terraform-provider

Logz.io Terraform provider

The Terraform Logz.io provider offers a great way to build integrations using Logz.io APIs.

Terraform is an infrastructure orchestrator written in Hashicorp Language (HCL). It is a popular Infrastructure-as-Code (IaC) tool that does away with manual configuration processes. You can take advantage of the Terraform Logz.io provider to really streamline the process of integrating observability into your dev workflows.

This guide assumes working knowledge of HashiCorp Terraform. If you're new to Terraform, we've got a great introduction if you're in for one. We also recommend the official Terraform guides and tutorials.

Capabilities

You can use the Terraform Logz.io Provider to manage users and log accounts in Logz.io, create and update log-based alerts and notification channels, and more.

The following Logz.io API endpoints are supported by this provider:

Working with Terraform

Before you begin, you'll need:

Get the Terraform Logz.io Provider

To install this provider, copy and paste this code into your Terraform configuration:

terraform {
  required_providers {
    logzio = {
      source = "logzio/logzio"
    }
  }
}

This will install the latest Logz.io provider. If you wish to use a specific version of the provider, add under source the field version and specify your preferred version.

Configuring the provider

The provider accepts the following arguments:

  • api_token - (Required) The API token is used for authentication. Learn more.

  • region - (Defaults to null) The 2-letter region code identifies where your Logz.io account is hosted. Defaults to null for accounts hosted in the US East - Northern Virginia region. Learn more

Example

You can pass the variables in a bash command for the arguments:

provider "logzio" {
  api_token = var.api_token
  region= var.your_api_region
}

Example - Create a new alert and a new Slack notification endpoint

Here's a great example demonstrating how easy it is to get up and running quickly with the Terraform Logz.io Provider.

This example adds a new Slack notification channel and creates a new alert in Kibana that will send notifications to the newly-created Slack channel.

The alert in this example will trigger whenever Logz.io records 10 loglevel:ERROR messages in 10 minutes.

terraform {
  required_providers {
    logzio = {
      source = "logzio/logzio"
    }
  }
}

provider "logzio" {
  api_token = "8387abb8-4831-53af-91de-5cd3784d9774"
  region= "au"
}

resource "logzio_endpoint" "my_endpoint" {
  title = "my_endpoint"
  description = "my slack endpoint"
  endpoint_type = "slack"
  slack {
    url = "${var.slack_url}"
  }
}

resource "logzio_alert_v2" "my_alert" {
  title = "hello_there"
  search_timeframe_minutes = 5
  is_enabled = false
  tags = ["some", "words"]
  suppress_notifications_minutes = 5
  alert_notification_endpoints = ["${logzio_endpoint.my_endpoint.id}"]
  output_type = "JSON"
  sub_components {
    query_string = "loglevel:ERROR"
    should_query_on_all_accounts = true
    operation = "GREATER_THAN"
    value_aggregation_type = "COUNT"
    severity_threshold_tiers {
      severity = "HIGH"
      threshold = 10
    }
    severity_threshold_tiers {
      severity = "INFO"
      threshold = 5
    }
  }
}

Example - Create user

This example will create a user in your Logz.io account.

terraform {
  required_providers {
    logzio = {
      source = "logzio/logzio"
    }
  }
}

variable "api_token" {
  type = "string"
  description = "Your logzio API token"
}

variable "account_id" {
  description = "The account ID where the new user will be created"
}

provider "logzio" {
  api_token = var.api_token
  region = var.region
}

resource "logzio_user" "my_user" {
  username = "[email protected]"
  fullname = "John Doe"
  roles = [ 2 ]
  account_id = var.account_id
}

Run the above plan using the following bash script:

export TF_LOG=DEBUG
terraform init
TF_VAR_api_token=${LOGZIO_API_TOKEN} TF_VAR_region=${LOGZIO_REGION} terraform plan -out terraform.plan
terraform apply terraform.plan

Before you run the script, update the arguments to match your details. See our examples for some complete working examples.

Contribute

Found a bug or want to suggest a feature? Open an issue about it. Want to do it yourself? We are more than happy to accept external contributions from the community. Simply fork the repo, add your changes and open a PR.

Import sub-accounts as resources

You can import multiple sub-accounts as follows:

terraform import logzio_subaccount.logzio_sa_<ACCOUNT-NAME> <ACCOUNT-ID>

Changelog

  • v1.8.3
    • Update client version(v1.10.3).
    • Bug fixes:
      • alerts_v2:
        • Fix noisy diff for tags.
        • Field is_enabled defaults to true.
      • sub_accounts: allow creating flexible account without max_daily_gb.
  • v1.8.2
    • Update client version(v1.10.2).
    • Bug fixes:
      • alerts_v2: fix bug for columns requiring sort field.
      • sub_accounts: add backoff for creating and updating sub accounts.
Expand to check old versions - **v1.8.1** - Upgrade provider's Go version from 1.15 to 1.16 in code and in release workflow. - Improve tests - add sleep after each test. - **v1.8.0** - **Breaking change**: **custom endpoint** - refactor Headers - now a string of comma-seperated key-value pairs. - Update client version (v1.10.1) - bug fix for empty Header field. - Add to custom endpoint datasource Description field. - **v1.7.0** - Update client version (v1.10). - Support [authentication groups resource](https://docs.logz.io/api/#tag/Authentication-groups). - `alerts_v2`: fix noisy diff for `severity_threshold_tiers`.
  • v1.6.1
    • Update client version (v1.9.1) - bug fix for not found messages.
  • v1.6
  • v1.5
    • Update client version(v1.8).
    • sub_account:
      • Breaking changes:
        • Deprecated attribute utilization_settings. Use frequency_minutes and utilization_enabled instead.
      • Added attributes flexible and reserved_daily_gb.
      • Refactor tests.
      • Refactor code to use Terraform's retry.
    • endpoint:
      • Breaking changes:
        • Types naming.
      • New endpoints for OpsGenie, ServiceNow and Microsoft Teams.
      • Fix bug for body_template for custom type (#70).
      • Refactor tests.
      • Refactor code to use Terraform's retry.
    • alerts_v2:
      • Fix bug for filter_must,filter_must_not (#82)
      • Refactor tests.
      • Refactor code to use Terraform's retry.
    • drop_filter:
      • Improve tests.
  • v1.4
    • Update client version(v1.7).
    • Support Drop Filter resource.
  • v1.3
    • Update client version(v1.6).
    • Support Log Shipping Token resource.
  • v1.2.4
    • Update client version(v1.5.3).
    • Fix sub account to return attributes account_token & account_id.
  • v1.2.3
    • Fix bug for custom endpoint empty headers.
    • Allow empty sharing accounts array in sub account.
    • Add retry in resource sub account.
    • Replace module terraform with terraform-plugin-sdk. See further explanation here.
    • Upgrade to Go v1.15.
    • Update client version(v1.5.2).
  • v1.2.2
    • Update client version(v1.5.1).
    • Fix alerts_v2 sort bug.
  • v1.2.1
    • Fix alerts_v2 type "TABLE" bug.
  • v1.2
    • Update client version(v1.5.0).
    • Support Alerts v2 resource.
    • Fix 404 error for Alerts.
  • v1.1.8
    • Update client version
    • Fix custom endpoint headers bug
  • v1.1.7
    • Published to Terraform registry
  • v1.1.5
    • Fix boolean parameters not parsed bug
    • Support import command to state
  • v1.1.4
    • Support Sub Accounts resource
    • few bug fixes
    • removed circleCI
  • v1.1.3
    • examples now use TF12
    • will now generate the meta data needed for the IntelliJ type IDE HCL plugin
    • no more travis - just circle CI
    • version bump to use the latest TF library (0.12.6), now compatible with TF12
  • 1.1.2
    • Moved some of the source code around to comply with TF provider layout convention
    • Moved the examples into an examples directory
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].