Loading...
Loading...
Diagnoses and resolves Google Cloud Filestore client mount failures, permission errors (EACCES), and network timeouts (ETIMEDOUT). Use when an NFS mount hangs or fails from a Compute Engine VM, GKE pod, Cloud Run service, or Vertex AI workload, when `mount.nfs` reports "Connection timed out" or "access denied by server", when checking whether VPC ingress firewall rules or `nfsExportOptions` allow a client IP, or when a previously working Filestore share suddenly stops mounting after an administrative change. Don't use for Cloud Storage (GCS) buckets, Persistent Disk, or Cloud NetApp Volumes, and don't use for Filestore capacity scaling or backup and export-policy auditing.
npx skill4agent add google/skills google-cloud-filestore-log-troubleshootingEACCESETIMEDOUTroles/file.viewerroles/compute.networkViewerroles/logging.viewerroles/mcp.toolUserroles/file.editorroles/compute.securityAdmingcloud auth login && gcloud auth application-default login
gcloud billing projects describe {project_id} --format="value(billingEnabled)"
gcloud services enable file.googleapis.com compute.googleapis.com logging.googleapis.com --quiet
gcloud config set project {project_id} && gcloud config set compute/region {region}gcloudCLOUDSDK_METRICS_ENVIRONMENT="gcs-skills gcs-skills/1.0 (skill:google-cloud-filestore-log-troubleshooting)" \
gcloud filestore instances describe ...User-Agent: gcs-skills/1.0 (skill:google-cloud-filestore-log-troubleshooting)run_commandgcloudget_instancelist_instancesreferences/mock-fleet-data.mdfinance-shareshared-nfsml-datadata-hubprod-sharereferences/mock-fleet-data.mdscripts/quick_diagnose.pyscripts/diagnose_lib.py_internal/quick_diagnose_test.pyEVAL.*[rule_name]# Single instance diagnosis
python3 scripts/quick_diagnose.py --instance="<INSTANCE_ID>" --location="<LOCATION_OR_ZONE>" \
[--project="<PROJECT_ID>"] [--client-ip="<CLIENT_IP>"] [--client-subnet="<CLIENT_SUBNET_CIDR>"]
# Bulk project-wide fleet diagnosis
python3 scripts/quick_diagnose.py --all --project="<PROJECT_ID>" [--json]| Flag | Purpose |
|---|---|
| Filestore instance ID and region/zone ( |
| GCP project ID (defaults to active |
| Client IP or CIDR to evaluate against export ACLs and ingress firewall rules. |
| Emit machine-readable JSON on stdout (narrative report goes to stderr). |
| Execute generated remediation commands. Only pass after explicit user confirmation. |
gcloudget_instance(name='projects/{project_id}/locations/{location}/instances/{instance_id}')fileShares[0].nfsExportOptionsnetworks[0].networkcall_gcp_apiservice="file"version="v1"resource_path="projects/{project_id}/locations/{location}/instances/{instance_id}"gcloudCLOUDSDK_METRICS_ENVIRONMENT="gcs-skills gcs-skills/1.0 (skill:google-cloud-filestore-log-troubleshooting)" \
gcloud filestore instances describe {instance_id} --location={location} --project={project_id} --format=jsoninstancelocationprojectclient_ipclient_subnet10.4.0.0/14nfsExportOptionsstateREADYCREATINGDELETINGERRORnetworks[0].ipAddresses[0]networks[0].networkprojects/{host_project}/global/networks/{network}{host_project}EACCESEROFSfileShares[0].nfsExportOptions0.0.0.0/0READ_WRITENO_ROOT_SQUASHEACCES (Permission Denied by Server)ipRangesnfsExportOptionsEROFS (Read-only file system)accessModeREAD_ONLYETIMEDOUTETIMEDOUT (Connection Timed Out)2049111ALLOWtcp:2049,udp:2049,tcp:111,udp:111file.googleapis.comUpdateInstanceCLOUDSDK_METRICS_ENVIRONMENT="gcs-skills gcs-skills/1.0 (skill:google-cloud-filestore-log-troubleshooting)" \
gcloud logging read 'logName="projects/{project_id}/logs/cloudaudit.googleapis.com%2Factivity" AND protoPayload.serviceName="file.googleapis.com" AND protoPayload.resourceName=~".*{instance}.*"' \
--project="{project_id}" --freshness="1d" --limit=5 --format="json"cloudaudit.googleapis.com%2FactivitylogNameGetInstanceListInstancesdata_accessUpdateInstanceprincipalEmailtimestamp--allresource.labels.container_name="gcp-filestore-driver"severity>=ERROR### Filestore Diagnostic Report: `[instance-name]`
| Parameter | Value |
| :--- | :--- |
| **Instance ID** | `[instance-name]` (`[location]`, Tier: `[tier]`, State: `READY`) |
| **Filestore IP & Network** | `[filestore-ip]` on VPC `[network-name]` (Host Project: `[host-project]`) |
| **Port 2049 & Export ACL** | Port 2049: `OPEN / BLOCKED` \| Export ACL: `PASS / REJECTED` |
| **Diagnostic Verdict** | **HEALTHY** or **BLOCKED: [Root Cause]** |
#### Root Cause Analysis & Recommended Remediation
- [Explanation of ETIMEDOUT (missing firewall rule on port 2049) vs EACCES (missing export ACL rule) and any recent UpdateInstance audit drift]
```bash
CLOUDSDK_METRICS_ENVIRONMENT="gcs-skills gcs-skills/1.0 (skill:google-cloud-filestore-log-troubleshooting)" \
gcloud compute firewall-rules create ...
```"Would you like me to proceed with executing this remediation command for you? Please confirm to proceed."
scripts/quick_diagnose.pyscripts/diagnose_lib.py