Basic Troubleshooting
This section addresses common deployment and runtime issues for ESET PRIVATE Static Scanning Engine on AWS ECS/EKS. Follow these steps systematically to resolve problems.
Common Issues and Solutions
•Subscription / Activation Failures
oSymptom: Scanner fails to start with license errors; Metering Service calls rejected.
oCheck: Verify active AWS Marketplace subscription and IAM policy attachment (ECSListReceivedLicenses/EKSListReceivedLicenses).
oFix: Re-attach policy to container execution role; confirm license-manager:ListReceivedLicenses permission.
•Image Pull Failures
oSymptom: ECR pull denied or timeout accessing ecscn.azurecr.io.
oCheck: ECR access granted via subscription; outbound HTTPS (TCP 443) allowed to ESET repo.
oFix: Validate Security Group outbound rules; re-deploy after subscription refresh.
•Scan Request Timeouts
oSymptom: Agent → Scanner communication fails (gRPC port 50051).
oCheck: Network path (Agent → Scanner); Security Groups allow TCP 50051 inbound.
oFix: Confirm private subnet connectivity; verify Load Balancer health checks pass.
•Module Update Failures
oSymptom: Scanner unable to start due to missing modules; logs show update download errors.
oCheck: Outbound access to ESET Update Servers (HTTPS 443).
oFix: Add Security Group outbound rule; restart Scanner containers to retry. Monitor Scanner container log.
•Metering Service Errors
oSymptom: Scanner images fail to start (Docker container not running)
oCheck: IAM role permissions for Register Usage calls.
oFix: Attach Metering Service permissions; validate CloudWatch logs. Monitor Scanner container log and ensure the container is running.
Service Recovery
If the service experiences unresolvable failures and the root cause cannot be identified through troubleshooting:
•Recommended Recovery: Redeploy the entire solution—this is the fastest and most reliable mitigation strategy.
•Delete existing ECS tasks/services or EKS deployments.
•Pull latest images from AWS Marketplace ECR.
•Redeploy using new or saved deployment manifests.
Why it works: ESET container images are stateless (no persistent data); full redeployment resets all components to a clean state without data loss.
Expected Recovery Time: Depends on your environment configuration and complexity; the simplest single-instance environments can typically be recovered within 30-60 minutes.
ESET PRIVATE Scanning Engine Issues
For Cloud Scanner-specific issues, refer to the commands below to identify and resolve problems with Docker containers and Scanner functionality:
Command |
Description |
|---|---|
kubectl get ns |
Confirms that the namespace defined in $K8S_NAMESPACE exists before deploying scanner components. |
kubectl get serviceaccount -n $K8S_NAMESPACE |
Verifies that the service account $K8S_SERVICE_ACCOUNT exists (required by the Deployment). |
kubectl get deploy -n $K8S_NAMESPACE |
Checks whether the scanner Deployment was created and is in a healthy state. |
kubectl get pods -n $K8S_NAMESPACE |
Confirms that the scanner pod has started and is not stuck in Pending / ImagePullBackOff / CrashLoopBackOff. |
kubectl describe pod <scanner-pod> -n $K8S_NAMESPACE <scanner-pod> |
Shows detailed information about scheduling, image pull issues, container args, port binding problems. |
kubectl get svc scanner -n $K8S_NAMESPACE |
Ensures the scanner Service exists and exposes ports 50051 and 50053. |
kubectl describe svc scanner -n $K8S_NAMESPACE |
Confirms that the Service selectors match pod labels (app=scanner) and ports map correctly. |
kubectl get events -n $K8S_NAMESPACE --sort-by=.lastTimestamp |
Shows recent cluster errors: failed scheduling, network issues, permission problems.
|
kubectl get nodes -o wide |
Helps identify CNI or node‑level networking issues preventing scanner ↔ agent communication.
|
kubectl run tmp --rm -it --image=busybox -- sh
|
Creates a temporary debug pod for cluster‑internal connectivity and DNS checks.
|
nslookup scanner.marketplace.svc.cluster.local |
From inside the debug pod: verifies DNS resolution of the scanner service.
|
nc -vz scanner.marketplace.svc.cluster.local 50051 |
Tests internal TCP connectivity to the scanner’s gRPC port.
|