Nesta página, você aprende a configurar um cluster do Anthos em Bare Metal para que os registros e as métricas personalizadas de aplicativos do usuário sejam enviadas ao Cloud Logging e o Cloud Monitoring.
Como ativar o Logging e o Monitoring para aplicativos do usuário
Para ativar o Logging e o Monitoring nos
aplicativos, use o campo
spec.clusterOperations.enableApplication
no arquivo de configuração do cluster.
Atualize o arquivo de configuração do cluster para definir
enableApplication
comotrue
:apiVersion: v1 kind: Namespace metadata: name: cluster-user-basic --- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-basic namespace: cluster-user-basic spec: type: user ... clusterOperations: projectID: project-fleet location: us-central1 enableApplication: true ...
Use
bmctl update
para aplicar suas alterações:bmctl update cluster -c CLUSTER_NAME --admin-kubeconfig=ADMIN_KUBECONFIG
Substitua:
CLUSTER_NAME
: o nome do cluster a se fazer upgrade.ADMIN_KUBECONFIG
: o caminho até o arquivo kubeconfig do cluster de administrador.
Anotar cargas de trabalho
Para ativar a coleta de métricas personalizadas de um aplicativo, adicione a
anotação prometheus.io/scrape: "true"
ao manifesto de serviço ou pod
do aplicativo ou inclua a mesma anotação na seção spec.template
em
"Implantação" ou "Manifesto do DaemonSet" para ser transmitida aos pods deles.
Executar um aplicativo de exemplo
Nesta seção, você criará um aplicativo que grava registros personalizados e expõe uma métrica personalizada.
Salve os seguintes manifestos de Serviço e Implantação em um arquivo chamado
my-app.yaml
. Observe que o Serviço tem a anotaçãoprometheus.io/scrape: "true"
:kind: Service apiVersion: v1 metadata: name: "monitoring-example" namespace: "default" annotations: prometheus.io/scrape: "true" spec: selector: app: "monitoring-example" ports: - name: http port: 9090 --- apiVersion: apps/v1 kind: Deployment metadata: name: "monitoring-example" namespace: "default" labels: app: "monitoring-example" spec: replicas: 1 selector: matchLabels: app: "monitoring-example" template: metadata: labels: app: "monitoring-example" spec: containers: - image: gcr.io/google-samples/prometheus-dummy-exporter:latest name: prometheus-example-exporter imagePullPolicy: Always command: - /bin/sh - -c - ./prometheus-dummy-exporter --metric-name=example_monitoring_up --metric-value=1 --port=9090 resources: requests: cpu: 100m
Crie a implantação e o serviço:
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-app.yaml
Veja os registros do aplicativo.
Console
Acesse o Explorador de registros no console do Google Cloud:
Clique em Recurso. Em ALL_RESOURCE_TYPES, selecione
Kubernetes Container
.Em CLUSTER_NAME, selecione o nome do seu cluster de usuário.
Em NAMESPACE_NAME, selecione
default
.Clique em Adicionar e em Executar consulta.
Em Resultados da consulta, é possível ver as entradas de registro da implantação
monitoring-example
. Exemplo:{ "textPayload": "2020/11/14 01:24:24 Starting to listen on :9090\n", "insertId": "1oa4vhg3qfxidt", "resource": { "type": "k8s_container", "labels": { "pod_name": "monitoring-example-7685d96496-xqfsf", "cluster_name": ..., "namespace_name": "default", "project_id": ..., "location": "us-west1", "container_name": "prometheus-example-exporter" } }, "timestamp": "2020-11-14T01:24:24.358600252Z", "labels": { "k8s-pod/pod-template-hash": "7685d96496", "k8s-pod/app": "monitoring-example" }, "logName": "projects/.../logs/stdout", "receiveTimestamp": "2020-11-14T01:24:39.562864735Z" }
gcloud
Execute este comando:
gcloud logging read 'resource.labels.project_id="PROJECT_ID" AND \ resource.type="k8s_container" AND resource.labels.namespace_name="default"'
Substitua
PROJECT_ID
pelo ID do seu projeto.Na saída, é possível ver entradas de registro da implantação
monitoring-example
. Exemplo:insertId: 1oa4vhg3qfxidt labels: k8s-pod/app: monitoring-example k8s- pod/pod-template-hash: 7685d96496 logName: projects/.../logs/stdout receiveTimestamp: '2020-11-14T01:24:39.562864735Z' resource: labels: cluster_name: ... container_name: prometheus-example-exporter location: us-west1 namespace_name: default pod_name: monitoring-example-7685d96496-xqfsf project_id: ... type: k8s_container textPayload: | 2020/11/14 01:24:24 Starting to listen on :9090 timestamp: '2020-11-14T01:24:24.358600252Z'
Ver métricas do aplicativo no console do Google Cloud
O aplicativo de exemplo expõe uma métrica personalizada chamada example_monitoring_up
.
É possível ver os valores dessa métrica no console do Cloud.
Acesse o Metrics Explorer no Console do Google Cloud:
Em Tipo de recurso, selecione
Kubernetes Pod
ouKubernetes Container
.Em Métrica, selecione
external.googleapis.com/prometheus/example_monitoring_up
.No gráfico, você pode ver que
example_monitoring_up
tem um valor repetido de 1.