Auf dieser Seite wird erläutert, wie Sie einen Cluster für Anthos-Cluster auf Bare-Metal konfigurieren, damit benutzerdefinierte Logs und Messwerte von Nutzeranwendungen an Cloud Logging und Cloud Monitoring gesendet werden.
Logging und Monitoring für Nutzeranwendungen aktivieren
Verwenden Sie das Feld spec.clusterOperations.enableApplication
in der Cluster-Konfigurationsdatei, um Logging und Monitoring für Ihre Anwendungen zu aktivieren.
Aktualisieren Sie die Cluster-Konfigurationsdatei, um
enableApplication
auftrue
festzulegen: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 ...
Wenden Sie die Änderungen mit
bmctl update
an:bmctl update cluster -c CLUSTER_NAME --admin-kubeconfig=ADMIN_KUBECONFIG
Dabei gilt:
CLUSTER_NAME
: der Name des Clusters, der aktualisiert werden soll.ADMIN_KUBECONFIG
: der Pfad zur kubeconfig-Datei des Administratorclusters.
Arbeitslasten annotieren
Fügen Sie dem Service- oder Deployment-Manifest der Anwendung die Annotation prometheus.io/scrape: "true"
hinzu, um das Erfassen benutzerdefinierter Messwerte aus einer Anwendung zu aktivieren.
Beispielanwendung ausführen
In diesem Abschnitt erstellen Sie eine Anwendung, die benutzerdefinierte Logs schreibt und einen benutzerdefinierten Messwert bereitstellt.
Speichern Sie die folgenden Dienst- und Deployment-Manifeste in einer Datei mit dem
my-app.yaml
-Namen. Der Dienst hat dieprometheus.io/scrape: "true"
-Annotation: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
Erstellen Sie das Deployment und den Dienst:
kubectl --kubeconfig CLUSTER_KUBECONFIG apply -f my-app.yaml
Anwendungslogs aufrufen.
Console
Rufen Sie in der Google Cloud Console den Log-Explorer auf.
Klicken Sie auf Ressource. Wählen Sie unter ALL_RESOURCE_TYPES die Option
Kubernetes Container
aus.Wählen Sie unter CLUSTER_NAME den Namen Ihres Nutzerclusters aus.
Wählen Sie unter NAMESPACE_NAME die Option
default
aus.Klicken Sie auf Hinzufügen und dann auf Abfrage ausführen.
Unter Abfrageergebnisse sehen Sie die Logeinträge des Deployment
monitoring-example
. Beispiel:{ "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
Führen Sie folgenden Befehl aus:
gcloud logging read 'resource.labels.project_id="PROJECT_ID" AND \ resource.type="k8s_container" AND resource.labels.namespace_name="default"'
Ersetzen Sie
PROJECT_ID
durch die ID Ihres Projekts.In der Ausgabe sehen Sie die Logeinträge des Deployments
monitoring-example
. Beispiel: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'
Anwendungsmesswerte in der Google Cloud Console ansehen
Ihre Beispielanwendung stellt einen benutzerdefinierten Messwert namens example_monitoring_up
bereit.
Die Werte dieses Messwerts finden Sie in der Google Cloud Console.
Rufen Sie in der Google Cloud Console den Metrics Explorer auf.
Wählen Sie
Kubernetes Pod
als Ressourcentyp aus.Wählen Sie
external/prometheus/example_monitoring_up
als Messwert aus.Im Diagramm sehen Sie, dass
example_monitoring_up
einen wiederkehrenden Wert von 1 hat.