Terraform 0.11

google_logging_project_sink




terraform

google_logging_project_sink

एक परियोजना-स्तरीय लॉगिंग सिंक का प्रबंधन करता है। अधिक जानकारी के लिए, API और API में लॉग इन करते हुए आधिकारिक दस्तावेज देखें।

ध्यान दें कि आपके पास "लॉग्स कॉन्फ़िगरेशन राइटर" IAM भूमिका ( roles/logging.configWriter ) होना चाहिए जो roles/logging.configWriter साथ उपयोग किए गए क्रेडेंशियल्स को दी गई है।

उदाहरण उपयोग

resource "google_logging_project_sink" "my-sink" {
    name = "my-pubsub-instance-sink"

    # Can export to pubsub, cloud storage, or bigtable
    destination = "pubsub.googleapis.com/projects/my-project/topics/instance-activity"

    # Log all WARN or higher severity messages relating to instances
    filter = "resource.type = gce_instance AND severity >= WARN"

    # Use a unique writer (creates a unique service account used for writing)
    unique_writer_identity = true
}

एक अधिक पूर्ण उदाहरण निम्नानुसार है: यह एक संगणित उदाहरण बनाता है, साथ ही एक लॉग सिंक जो क्लाउड स्टोरेज बाल्टी में सभी गतिविधि को लॉग करता है। क्योंकि हम unique_writer_identity का उपयोग कर रहे हैं, इसलिए हमें इसे बाल्टी तक पहुंच प्रदान करनी चाहिए। ध्यान दें कि इस अनुदान के लिए "प्रोजेक्ट IAM एडमिन" IAM भूमिका ( roles/resourcemanager.projectIamAdmin ) की आवश्यकता होती है जो टेराफ़ॉर्म के साथ उपयोग किए गए क्रेडेंशियल्स को दी जाती है।

# Our logged compute instance
resource "google_compute_instance" "my-logged-instance" {
  name         = "my-instance"
  machine_type = "n1-standard-1"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-8"
    }
  }

  network_interface {
    network = "default"

    access_config {}
  }
}

# A bucket to store logs in
resource "google_storage_bucket" "log-bucket" {
    name     = "my-unique-logging-bucket"
}

# Our sink; this logs all activity related to our "my-logged-instance" instance
resource "google_logging_project_sink" "instance-sink" {
    name = "my-instance-sink"
    destination = "storage.googleapis.com/${google_storage_bucket.log-bucket.name}"
    filter = "resource.type = gce_instance AND resource.labels.instance_id = \"${google_compute_instance.my-logged-instance.instance_id}\""

    unique_writer_identity = true
}

# Because our sink uses a unique_writer, we must grant that writer access to the bucket.
resource "google_project_iam_binding" "log-writer" {
    role = "roles/storage.objectCreator"

    members = [
        "${google_logging_project_sink.instance-sink.writer_identity}",
    ]
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • name - (आवश्यक) लॉगिंग सिंक का नाम।

  • destination - (आवश्यक) सिंक के गंतव्य (या, दूसरे शब्दों में, जहां लॉग लिखे जाते हैं)। एक क्लाउड स्टोरेज बकेट, एक पबसब विषय या एक BigQuery डेटासेट हो सकता है। उदाहरण: "storage.googleapis.com/[GCS_BUCKET]" "bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET]" "pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]" सिंक से जुड़े लेखक के पास उपरोक्त संसाधन पर लिखने के लिए पहुँच होनी चाहिए।

  • filter - (वैकल्पिक) लॉग निर्यात करते समय लागू करने के लिए फ़िल्टर। फ़िल्टर से मेल खाने वाली केवल लॉग प्रविष्टियाँ निर्यात की जाती हैं। फ़िल्टर लिखने के तरीके के बारे में जानकारी के लिए उन्नत लॉग फ़िल्टर देखें।

  • project - (वैकल्पिक) में सिंक बनाने के लिए परियोजना की आईडी। यदि छोड़ा गया है, तो प्रदाता के साथ जुड़े परियोजना का उपयोग किया जाता है।

  • unique_writer_identity - (वैकल्पिक) इस सिंक से जुड़ी एक विशिष्ट पहचान बनाना या न बनाना। यदि false (डिफ़ॉल्ट) है, तो writer_identity उपयोग किया गया सेवा serviceAccount:[email protected] । यदि true , तो इस सिंक के लिए एक अद्वितीय सेवा खाता बनाया और उपयोग किया जाता है। यदि आप परियोजनाओं में लॉग प्रकाशित करना चाहते हैं, तो आपको true पर unique_writer_identity सेट करना होगा।

संदर्भ संदर्भित करता है

ऊपर सूचीबद्ध तर्कों के अलावा, निम्नलिखित गणना की गई विशेषताएँ निर्यात की जाती हैं:

  • writer_identity - इस सिंक से जुड़ी पहचान। इस पहचान को कॉन्फ़िगर किए गए destination तक लिखने की अनुमति दी जानी चाहिए।

आयात

परियोजना-स्तरीय लॉगिंग सिंक को उनके यूआरआई, जैसे का उपयोग करके आयात किया जा सकता है

$ terraform import google_logging_project_sink.my_sink projects/my-project/sinks/my-sink