Skip to main content

Troubleshooting

The following sections provide step-by-step guidance for diagnosing and resolving common issues when deploying and operating the Cloud Scanner on Google Cloud.

Verify region

Before deploying the Cloud Scanner, ensure that you do not attempt installation in the regions that do not support its deployment due to feature limitations. The following regions are not supported for Cloud Scanner deployment:

Region CodeLocation
asia-northeast3Osaka, Japan
asia-south2Delhi, India
australia-southeast2Melbourne, Australia
europe-north1Hamina, Finland
europe-southwest1Madrid, Spain
europe-west10Paris, France
europe-west12Milan, Italy
europe-west4Eemshaven, Netherlands
europe-west8Warsaw, Poland
europe-west9Zurich, Switzerland
me-central1Doha, Qatar
me-central2Dubai, UAE
me-west1Riyadh, Saudi Arabia
northamerica-northeast2Toronto, Canada
us-east5Ashburn, USA
us-south1Dallas, USA

Verify system logs

When launching the Cloud Scanner's worker instances in your Google Cloud project, you can confirm that the deployment and connection processes were completed successfully by examining the instance logs. This inspection helps ensure that the instances are properly configured and are communicating as expected.

Accessing the system logs

To access the system logs, follow these steps:

  1. Open the Google Cloud console .
  2. In the left navigation pane, choose Compute Engine, then navigate to Instance Groups.
  3. Select the Instance Group of the Cloud Scanner, then the VM instance to view logs for.
  4. Select Logging > Serial port 1 (console).

Analyzing the system logs

Once you have access to the system logs, you should look for specific entries that confirm the instance is performing as expected:

  1. Verify Userdata Execution: Search for the entry running 'modules:final'. This indicates that the userdata script has started executing. This is a crucial step where various initialization scripts configure the instance.
  2. Verify Initial Configuration: Search for the entry upwind credentials. This indicates that the instance has the necessary permissions to retrieve the client credentials from the Google Secret Manager.

Following this, the logs should show that the instance is downloading and executing the installation script from Upwind. This is critical as it sets up the necessary software and configurations specific to your deployment.

2024-10-01 [...] Getting CloudScanner install script...
2024-10-01 [...] Executing CloudScanner install for usc-413b425f7c20af37...
2024-10-01 [...] Beginning CloudScanner installer script...
2024-10-01 [...] *** Upwind CloudScanner install script: latest***
2024-10-01 [...] Processing triggers for man-db (2.12.0-2build2) ...
2024-10-01 [...] Processing triggers for libc-bin (2.39-ubuntu3.3) ...
2024-10-01 [...] debconf: unable to initialize frontend: Dialog
2024-10-01 [...] debconf: (TERM is not set, so the dialog frontend is not usable.)
2024-10-01 [...] debconf: (This frontend requires a controlling tty.)
2024-10-01 [...] Running kernel seems to be up-to-date.
2024-10-01 [...] No services need to be restarted.
2024-10-01 [...] No containers need to be restarted.
2024-10-01 [...] INFO: No GCP tools to install
2024-10-01 [...] INFO: Dependencies installed ...
2024-10-01 [...] INFO: Checking SubCommand ...
2024-10-01 [...] INFO: Installing Upwind CloudScanner
2024-10-01 [...] INFO: Pulling Upwind CloudScanner Binary stable from https://releases.upwind.io ...
2024-10-01 [...] INFO: Pulling Upwind Agent Binary 0.87.0 from https://releases.upwind.io ...
2024-10-01 [...] INFO: Generating config ...
2024-10-01 [...] INFO: Creating config file: /etc/upwind/agent.yaml
2024-10-01 [...] INFO: Finished generating config ...
2024-10-01 [...] INFO: Creating Upwind CloudScanner service ...
2024-10-01 [...] INFO: Finished creating service ...
2024-10-01 [...] INFO: Starting Upwind CloudScanner service ...

Verify permissions

Cloud Scanner requires specific Google Cloud permissions for successful deployment and operation. Ensure that the following permissions are granted:

PermissionDescription
compute.disks.createCreate new persistent disks.
compute.disks.createSnapshotCreate snapshots of persistent disks.
compute.disks.deleteDelete persistent disks.
compute.disks.getRetrieve details about persistent disks.
compute.disks.setLabelsApply labels to persistent disks.
compute.disks.useUse persistent disks for operations.
compute.globalOperations.getAccess global operations.
compute.instanceGroupManagers.getAccess instance group manager details.
compute.instanceGroupManagers.listList instance group managers.
compute.instanceGroupManagers.updateUpdate instance group managers.
compute.instanceGroups.getGet details about instance groups.
compute.instanceGroups.listList instance groups.
compute.instances.attachDiskAttach disks to virtual machine instances.
compute.instances.detachDiskDetach disks from virtual machine instances.
compute.instances.getRetrieve VM instance details.
compute.instanceTemplates.createCreate new instance templates.
compute.instanceTemplates.deleteDelete instance templates.
compute.instanceTemplates.getRetrieve instance template details.
compute.snapshots.createCreate snapshots from volumes.
compute.snapshots.deleteDelete volume snapshots.
compute.snapshots.getRetrieve snapshot details.
compute.snapshots.setLabelsSet labels on snapshots.
compute.snapshots.useReadOnlyAccess snapshots in read-only mode.
compute.subnetworks.getRetrieve subnetworks information.
compute.zoneOperations.getAccess zone-level operations.
iam.serviceAccounts.actAsAct as service accounts.
secretmanager.versions.accessAccess secret version contents.
secretmanager.versions.listList versions of a secret.