Ops-Agent

Architektur

Der Ops-Agent erstellt eine virtuelle Maschine und installiert den Ops-Agent für die Integration in Monitoring- und Logging-Dienste. Dazu werden folgende Elemente verwendet:

  • Compute Engine
  • Monitoring
  • Logging

Im Beispiel wird eine einzelne virtuelle Maschine eingerichtet und für die Meldung an Logging verbunden.


Jetzt starten

Klicken Sie auf den folgenden Link, um den Quellcode in Cloud Shell zu kopieren. Dort wird mit einem einzigen Befehl eine funktionierende Kopie der Anwendung in Ihrem Projekt erstellt.

In Cloud Shell öffnen

Quellcode auf GitHub ansehen


Ops-Agent-Komponenten

Die Ops-Agent-Architektur nutzt mehrere Produkte. Im Folgenden finden Sie eine Liste der Komponenten sowie weitere Informationen zu den Komponenten, einschließlich Links zu ähnlichen Videos, Produktdokumentationen und interaktiven Schritt-für-Schritt-Anleitungen.
Video Docs Schritt-für-Schritt-Anleitungen
Compute Engine Compute Engine ist die virtuelle Technologie von Google Cloud. Damit können Sie viele verschiedene VM-Konfigurationen so einrichten, dass sie Ihren Anforderungen an Ihre Computing-Anforderungen entsprechen.
Cloud Monitoring Mit Cloud Monitoring erhalten Sie Einblick in die Leistung, Verfügbarkeit und den Zustand Ihrer Anwendungen und Infrastruktur.
Cloud Logging Cloud Logging bietet eine vollständig verwaltete Logverwaltung in Echtzeit mit Speicherung, Suche, Analyse und Benachrichtigungen im Exabyte-Bereich.

Skripts

Das Installationsskript verwendet eine ausführbare Datei, die in go und Terraform-Befehlszeilentools geschrieben ist, um ein leeres Projekt zu erstellen und die Anwendung darin zu installieren. Die Ausgabe sollte eine funktionierende Anwendung und eine URL für die Load-Balancing-IP-Adresse sein.

./main.tf

Dienste aktivieren

Google Cloud-Dienste sind in einem Projekt standardmäßig deaktiviert. Damit Sie eine der hier aufgeführten Lösungen verwenden können, müssen wir Folgendes aktivieren:

  • Compute Engine – Virtuelle Maschinen und Netzwerke
variable "gcp_service_list" {
    description = "The list of apis necessary for the project"
    type        = list(string)
    default = [
        "compute.googleapis.com",
    ]
}

resource "google_project_service" "all" {
  for_each                   = toset(var.gcp_service_list)
  project                    = var.project_number
  service                    = each.key
  disable_dependent_services = false
  disable_on_destroy         = false
}

Virtuelle Maschine erstellen

Erstellt eine VM.

resource "google_compute_instance" "default" {
  project      = var.project_id
  name         = "${var.basename}-instance"
  machine_type = "f1-micro"
  zone         = var.zone

  boot_disk {
    initialize_params {
      image = "centos-cloud/centos-8-v20210817"
    }
  }
  labels = {
    env        = "prod"
    app        = "myproduct"
    created_by = "terraform"
  }

  network_interface {
    network = "default"

    access_config {
      // Include this section to give the VM an external ip address
    }
  }
  service_account {
    // Google recommends custom service accounts that have cloud-platform scope and permissions granted via IAM Roles.
    // This non production example uses the default compute service account.
    email  = local.sacompute
    scopes = ["cloud-platform"]
  }
}

Ops-Agent installieren

Der Ops-Agent ist der primäre Agent zum Erfassen von Telemetriedaten aus Ihren Compute Engine-Instanzen. Hier erfahren Sie, wie Sie es mit Terraform installieren.

module "agent_policy" {
    source  = "terraform-google-modules/cloud-operations/google//modules/agent-policy"
    version = "~> 0.1.0"

    project_id = var.project_id
    policy_id  = "ops-agents-example-policy"
    agent_rules = [
        {
        type               = "ops-agent"
        version            = "current-major"
        package_state      = "installed"
        enable_autoupgrade = true
        },
    ]
    group_labels = [
        {
        env        = "prod"
        app        = "myproduct"
        created_by = "terraform"
        }
    ]

    os_types = [
        {
        short_name = "centos"
        version    = "8"
        },
    ]
}

Fazit

Nach der Ausführung sollten Sie eine VM haben, die so konfiguriert wurde, dass Ereignisse in Google Cloud Logging protokolliert werden. Außerdem sollten Sie über den gesamten Code verfügen, den Sie ändern oder erweitern können, um diese Lösung an Ihre Umgebung anzupassen.