Compute Engine Logging

Overview

This documentation provides a detailed walkthrough to send the Google Compute Engine logs directly to SigNoz. By the end of this guide, you will have a setup that automatically sends your Compute Engine logs to SigNoz.

Here's a quick summary of what we will be doing in this guide

  • Create and configure Compute Engine
  • Create Pub/Sub topic
  • Create Log Router to route the Compute Engine logs to SigNoz
  • Create Compute Engine instance
  • Create OTel Collector to route logs from Pub/Sub topic to SigNoz Cloud
  • Make changes to Compute Engine instance to generate logs
  • Send and Visualize the logs in SigNoz Cloud

Prerequisites

  • Google Cloud account with administrative privilege or Compute Instance Admin privilege.
  • SigNoz Cloud Account (we are using SigNoz Cloud for this demonstration, we will also need ingestion details. To get your Ingestion Key and Ingestion URL, sign-in to your SigNoz Cloud Account and go to Settings >> Ingestion Settings)
  • Access to a project in GCP

Get started with Compute Engine Configuration

Create the Compute Engine instance using the following steps:

Step 1: Go to your GCP console and search for Compute Engine, go to Compute Engine service and click on CREATE INSTANCE.

Create Compute Engine Instance

Create Compute Engine Instance

Step 2: Give an apprpriate name for the Compute Engine instance. Select an appropriate region and zone. You can choose a machine as per your requirements. After choosing all the appropriate settings, click on CREATE button at the bottom of the page.

Compute Engine Instance Settings

Compute Engine Instance Settings

With this, the Compute Engine instance is created.

Create PubSub Topic

Follow the steps mentioned in the Creating Pub/Sub Topic document to create the Pub/Sub topic.

Create Log Router to Pub/Sub Topic

Follow the steps mentioned in the Log Router Setup document to create the Log Router.

To ensure you filter out only the Compute Engine logs, use the following filter conditions:

resource.type="gce_instance"

Setup OTel Collector

Follow the steps mentioned in the Creating Compute Engine document to create another Compute Engine instance. We will be installing OTel Collector on this instance.

Install OTel Collector as agent

Firstly, we will establish the authentication using the following commands:

  1. Initialize gcloud:
gcloud init
  1. Authenticate into GCP:
gcloud auth application-default login

Let us now proceed to the OTel Collector installation:

Step 1: Download otel-collector tar.gz for your architecture

wget https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.88.0/otelcol-contrib_0.88.0_linux_amd64.tar.gz

Step 2: Extract otel-collector tar.gz to the otelcol-contrib folder

mkdir otelcol-contrib && tar xvzf otelcol-contrib_0.88.0_linux_amd64.tar.gz -C otelcol-contrib

Step 3: Create config.yaml in the folder otelcol-contrib with the below content in it. Replace <region> with the appropriate SigNoz Cloud region. Replace SIGNOZ_INGESTION_KEY with what is provided by SigNoz:

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318
  googlecloudpubsub:
    project: <gcp-project-id>
    subscription: projects/<gcp-project-id>/subscriptions/<pubsub-topic's-subscription>
    encoding: raw_text
processors:
  batch: {}
exporters:
  otlp:
    endpoint: "ingest.<region>.signoz.cloud:443"
    tls:
      insecure: false
    headers:
      "signoz-access-token": "<SigNoz-Key>"
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp]
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp]
    logs:
      receivers: [otlp, googlecloudpubsub]
      processors: [batch]
      exporters: [otlp]

Step 4: Once we are done with the above configurations, we can now run the collector service with the following command:

From the otelcol-contrib, run the following command:

./otelcol-contrib --config ./config.yaml

Run in background

If you want to run OTel Collector process in the background:

./otelcol-contrib --config ./config.yaml &> otelcol-output.log & echo "$!" > otel-pid

The above command sends the output of the otel-collector to otelcol-output.log file and prints the process id of the background running OTel Collector process to the otel-pid file.

If you want to see the output of the logs you’ve just set up for the background process, you may look it up with:

tail -f -n 50 otelcol-output.log

Invoking Compute Engine logs

Step 1: Go to the Compute Engine homepage, and click on the instance created at the beginning of this guide.

Step 2: Click on the EDIT button at the top of the Compute Engine instance's page.

Edit Compute Engine Instance

Edit Compute Engine Instance

Step 3: After scrolling a bit on the edit page, you will see the "Additional disks" section. Click on the ADD NEW DISK button.

Add New Disk to Compute Engine

Add New Disk to Compute Engine

Step 4: Give an appropriate name and description for the additional disk. You can reduce the size to 10. Click on SAVE button at the bottom.

Step 5: Click on SAVE button for the Compute Engine instance.

This will generate the Compute Engine logs which you can now see on the SigNoz Cloud.

Compute Engine Logs in SigNoz Cloud

Compute Engine Logs in SigNoz Cloud

Was this page helpful?