Agente de operaciones

+

Arquitectura

El agente de operaciones crea una máquina virtual e instala el agente de operaciones para integrarse con los servicios Monitoring y Logging. Utiliza lo siguiente:

  • Compute Engine
  • Supervisión
  • Almacenamiento de registros

En el ejemplo se configura una sola máquina virtual sencilla y se conecta para que envíe informes a Logging.


Empezar

Haz clic en el siguiente enlace para acceder a una copia del código fuente en Cloud Shell. Una vez allí, con un solo comando se creará una copia de trabajo de la aplicación en tu proyecto.

Abrir en Cloud Shell

Ver el código fuente en GitHub


Componentes del agente de operaciones

La arquitectura del agente de operaciones usa varios productos. A continuación, se enumeran los componentes y se incluye más información sobre ellos, como enlaces a vídeos relacionados, documentación del producto y tutoriales interactivos.
Vídeo Documentos Guías
Compute Engine Compute Engine es la tecnología virtual de Google Cloud. Con ella, puedes poner en marcha muchas configuraciones diferentes de máquinas virtuales para adaptarlas a tus necesidades de computación.
Cloud Monitoring Cloud Monitoring te permite ver con mayor claridad el rendimiento, la disponibilidad y el estado de las aplicaciones y de la infraestructura.
Cloud Logging Cloud Logging ofrece una gestión de registros totalmente gestionada y en tiempo real, que admite exabytes de datos y ofrece funciones de almacenamiento, búsqueda, análisis y alertas.

Secuencias de comandos

La secuencia de comandos de instalación usa un ejecutable escrito en go y las herramientas de la CLI de Terraform para tomar un proyecto vacío e instalar la aplicación en él. El resultado debe ser una aplicación que funcione y una URL para la dirección IP de balanceo de carga.

./main.tf

Habilitar servicios

Los servicios de Google Cloud están inhabilitados en un proyecto de forma predeterminada. Para usar cualquiera de las soluciones que se indican a continuación, debemos activar lo siguiente:

  • Compute Engine: máquinas virtuales y redes
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
}

Crear una máquina virtual

Crea una 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"]
  }
}

Instalar el Agente de operaciones

El Agente de operaciones es el agente principal para recoger datos de telemetría de tus instancias de Compute Engine. En este artículo se explica cómo instalarlo con Terraform.

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"
        },
    ]
}

Conclusión

Una vez que se haya ejecutado, deberías tener una VM configurada correctamente para registrar eventos en Google Cloud Logging. Además, deberías tener todo el código para modificar o ampliar esta solución de forma que se adapte a tu entorno.