Agente de operaciones

+

Arquitectura

El agente de operaciones crea una máquina virtual y lo instala para integrarlo con los servicios de Monitoring y Logging. Usa lo siguiente:

  • Compute Engine
  • Supervisión
  • Logging

En el ejemplo, se configura una sola máquina virtual simple y se conecta para informar a Logging.


Comenzar

Haz clic en el siguiente vínculo para obtener una copia del código fuente en Cloud Shell. Una vez allí, un solo comando iniciará 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, junto con más información sobre ellos, incluidos vínculos a videos relacionados, documentación del producto y explicaciones interactivas.
Video Documentos Explicaciones
Compute Engine Compute Engine es la tecnología virtual de Google Cloud. Con él, puedes iniciar muchas configuraciones diferentes de VM para que se adapten a cualquier necesidad de procesamiento que tengas.
Cloud Monitoring Cloud Monitoring ofrece visibilidad del rendimiento, la disponibilidad y el estado de las aplicaciones y la infraestructura.
Cloud Logging Cloud Logging proporciona una administración de registros en tiempo real y completamente administrada con almacenamiento, búsqueda, análisis y alertas a escala de exabytes.

Secuencias de comandos

La secuencia de comandos de instalación usa un ejecutable escrito en go y 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 del balanceador de cargas.

./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 herramientas de 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
}

Crea 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 recopilar la telemetría de tus instancias de Compute Engine. Se te mostrará 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 ejecute, deberías tener una VM que se haya configurado correctamente para registrar eventos en Google Cloud Logging. Además, debes tener todo el código para modificar o extender esta solución para que se adapte a tu entorno.