Wazuh Google Cloud monitoring

Wazuh Google Cloud monitoring brings Cloud Audit and other Google Cloud logs into your Wazuh server through Pub/Sub or Cloud Storage buckets, using service account credentials. This page covers the build sequence, the checks, and where agents on instances still belong.

On this page

How Wazuh Google Cloud monitoring collects cloud logs

The Wazuh Google Cloud integration uses the Google Cloud collection modules, which read events from Pub/Sub topics or Cloud Storage buckets and authenticate with a Google Cloud service account. It is separate from the Wazuh agents installed on instances, so it works for Google Cloud audit and service logs even where no agent can be deployed. The Wazuh server performs the pull, decodes each event with its decoders and rules, and stores the resulting alerts in the Wazuh indexer, where the Wazuh dashboard can search and display them.

Your team should map the data path before any configuration is written. Identify which log sources feed each Pub/Sub topic or bucket, who owns each one, and whether the Wazuh server can reach Google Cloud endpoints from its network segment. A typical design is a log sink that routes selected Cloud Logging entries to a Pub/Sub topic, with a dedicated subscription for Wazuh. Confirm with Google Cloud's current documentation which sink destinations and subscription settings you can use in your organization, and confirm how retained messages are handled if the Wazuh server is offline for a period.

Credentials need the same care as the data. The service account should be granted only the read roles that the chosen source requires, on the specific topic, subscription or bucket rather than at project level, and its key or identity federation method should follow your organization's key management policy. Record which account reads which source, because a later access review will ask. The exact module names, configuration keys and option values change between releases, so confirm them against the Wazuh documentation for the 4.14 release line or whichever line you run before writing any configuration.

Plan for two operational risks early. The first is ingestion volume: audit logs from several projects can produce far more events than teams expect, which affects indexer storage and dashboard performance, so size the Wazuh indexer against a measured sample rather than an estimate. The second is decoder coverage: an event that no decoder recognizes will be stored but will not trigger the rules you rely on. Run a short pilot on one project, check the alerts and unparsed events against your use cases, and only then widen the scope to additional sources.

Prerequisites for Google Cloud log collection in Wazuh

Google Cloud log collection in Wazuh depends on a working Wazuh 4.14 deployment, a Google Cloud export path that carries the logs out of Google Cloud, and a service account that can read them. Confirm each item below with the owners of the Wazuh server, the Google Cloud projects and the network before any configuration starts.

Supported Wazuh 4.14 deployment

The Wazuh server, indexer and dashboard must be installed, healthy and reachable from the administrators who will work on the integration. Use the 4.14 release line as the target for this work, and confirm with your Wazuh documentation that the Google Cloud module is available in the version you deploy. Check that the server can receive agent data and that the dashboard shows alerts before you add a new source, so that a later fault can be traced to the integration rather than the base platform.

Google Cloud projects and log sources

List every Google Cloud project and each log type you intend to collect, such as audit logs or other service logs, and name the owner of each project. Scope decides how many export paths you build and how much data reaches the Wazuh indexer. Record which projects are production, which are shared and which are restricted, because that list will drive the service account design and the retention questions later.

IAM rights to create and grant access

The person who performs the configuration needs permission to create a service account and grant it read access to the export resources. Confirm with the Google Cloud organization or project administrator who holds these rights and whether an approval step applies. Keep the credential handling inside your own key management and secrets process, and record who owns the service account after the work is complete.

Pub/Sub or Cloud Storage export path

Before configuration, a Pub/Sub topic and subscription, or a Cloud Storage bucket receiving the log export, must exist and be configured to receive the logs you chose in scope. Confirm which of the two paths your Wazuh module setup expects and whether your organization already has an export sink that can be reused. Verify the export produces records by reviewing the topic or bucket contents in Google Cloud before Wazuh is pointed at it.

Network egress to Google APIs

The Wazuh server must be able to reach the Google APIs that the module calls over outbound connections. Work with the network team to confirm that egress rules, proxies and any allowlists permit those endpoints from the server, and that DNS resolves them correctly. If the server sits in a restricted segment, plan the route before you build the export, because a blocked path often looks like a credential or configuration fault.

Time synchronization and sizing questions

Keep the Wazuh server and indexer on a reliable time source so that event timestamps line up with those in Google Cloud and the alerts sort correctly. Then confirm storage and compute sizing with the platform owner, including expected daily log volume, retention period and the indexer capacity available. These questions determine whether the Wazuh server and indexer can absorb the new stream, so ask for the figures in writing before you enable collection.

Choosing Pub/Sub or Cloud Storage for Google Cloud logs

The core decision is which collection path the Wazuh Google Cloud module uses for each log type you plan to collect. A Pub/Sub subscription delivers events to the Wazuh server as they are published, so alerts can follow activity closely. A Cloud Storage bucket holds exported log files that the server reads on a schedule, so events arrive in batches tied to the export and read cycle. Before you choose, confirm in the Wazuh documentation for the Google Cloud module which path it supports for each log type. Some log types may offer only one path, which settles the question for them, and the choice then applies only to the types that offer both.

Latency and replay pull in different directions. Pub/Sub suits fast detection, such as changes to IAM policies or firewall rules, but messages are held only for the subscription's retention period and are redelivered until they are acknowledged. Confirm that retention period in Google Cloud documentation, and confirm when the Wazuh integration acknowledges a message, which should happen only after the server has processed it. The bucket path keeps the source files themselves, so you can reprocess a time window after a decoder or rule change or after a collection outage. The trade-off is delay, which depends on how often the export writes files and how often the server reads them.

Retention and IAM scope differ between the two paths. In the bucket path, retention is governed by your own object lifecycle and retention settings, so decide how long exported files must remain for incident response and audit evidence before you enable the export. Those files add storage cost that recurs for as long as they are kept. On the identity side, the Wazuh credential for Pub/Sub needs rights to consume from one subscription, while the credential for the bucket path needs read access to objects in one bucket. Scope each credential to the single topic, subscription or bucket involved, and check the exact roles the module documents instead of granting broad project-level roles.

Cost drivers differ by path. Pub/Sub charges relate to message throughput and delivery volume, so a noisy log source drives cost up directly. Cloud Storage charges relate to stored bytes, object operations and any network egress if the reader runs outside the bucket's region. Export volume affects both, so measure it for each log type before you commit. Ask Google Cloud for current pricing in writing, and check your own billing data during a trial period, rather than relying on published examples. On the Google Cloud side, the Pub/Sub path needs a log sink that routes entries to a topic and a subscription the Wazuh credential can read. The bucket path needs a sink that writes files to the bucket and a reader identity that can list and read those files.

Before you request a quote, work through a short checklist: list every Google Cloud log type in scope, confirm the supported path for each in the Wazuh documentation, set the latency and replay requirement per type, decide who owns retention for exported files, map the least-privilege roles for each credential, and measure expected export volume with the team that owns the Google Cloud logging configuration. A written scope that records these decisions makes the quote comparable across partners and shows where the work and the recurring costs will come from.

How to configure Google Cloud collection in Wazuh step by step

This sequence connects one Google Cloud project to a Wazuh server through a dedicated, read-only identity and a defined export path. Each step ends with a check, so you confirm authentication, ingestion and decoding before you treat the collection as working.

  1. Create a dedicated read-only service account

    A cloud or security engineer creates a service account in the Google Cloud project that owns the logs, used only by the Wazuh server. Grant only the subscriber or object viewer roles that your chosen collection method needs, scoped to the log sources selected earlier. Confirm the role names against Google's IAM role reference and the Wazuh release documentation for your version. The step is complete when the account lists only those roles and a review of its effective permissions shows no project-wide owner or editor role.

  2. Attach credentials and restrict file access

    The administrator generates a key for the service account or attaches an identity that the server can use, following your organization's key policy. The credential is placed on the Wazuh server in a location owned by the account that runs the Wazuh service, with permissions limited to that account. Confirm the exact file path and the configuration key name in the release documentation before you write them down. Check that the Wazuh service account can read the file and that a non-privileged local user cannot, and that the key is absent from any shared or version-controlled directory.

  3. Create the Pub/Sub subscription or confirm bucket layout

    The cloud administrator routes the chosen logs to a Pub/Sub topic through a log sink, then creates a subscription that the service account can pull from. If you use a Cloud Storage bucket instead, confirm the bucket name and the prefix layout that the sink writes to, and keep that layout documented for the module configuration. Check the setup by generating a test event that the sink should capture and confirming it appears as a pending message on the subscription or as an object under the expected prefix.

  4. Add the Google Cloud module configuration

    The Wazuh administrator adds the Google Cloud module block to the Wazuh server configuration file, whose location and schema you confirm in the release documentation. The block identifies the project, the subscription or bucket and prefix, the credential location and the log types being collected, with one entry for each source. Validate the configuration with the syntax check the documentation provides before you restart anything. The step is complete when validation reports no errors for the new block.

  5. Restart the Wazuh server and read startup logs

    The administrator restarts the Wazuh manager service during a planned window, using the service command the documentation specifies for your installation type. Watch the server log for the module starting and for an authentication entry that shows the service account was accepted. The step is complete when the service reports as running and the log contains a successful authentication entry for the Google Cloud module with no repeated errors. A permission or key error at this point usually points back to the role grants or the file permissions in earlier steps.

  6. Validate ingestion with a test log entry

    The administrator performs a known, low-risk action in the test project, such as creating and then deleting a labeled test resource (illustrative), so the sink produces an entry. Confirm the entry reaches the subscription or bucket, then search the Wazuh dashboard for a unique value from that entry, such as the project ID or the resource name. The step is complete when the event appears in the dashboard with its fields decoded. If it reaches Google Cloud but not the dashboard, check the server log for decoding or authentication messages before changing the configuration again.

Which Google Cloud log sources map to Wazuh fields and rules

This planning template maps each Google Cloud log source to its collection path, Wazuh decoder and rule group, dashboard view, read scope, alert owner and retention location. Fill one row per source before building the Pub/Sub or bucket pipeline, and confirm every decoder and rule name against the current Wazuh rule set. The main takeaway is that a source without a named owner and retention location is not ready to ingest.

Log sourceCollection path and read scopeDecoder, rule group and dashboard viewAlert owner and retention location
Cloud Audit Logs, Admin ActivityLogging sink to Pub/Sub or bucket, read by the service account at organization or folder scopeGoogle Cloud audit decoder and matching rule group, shown in the security events view (confirm names)Security operations lead, retained in the indexer and in the sink destination
Cloud Audit Logs, Data AccessEnable per service first, sink to the same destination, read at project scopeData Access decoder and rule group, shown in the security events view (confirm names)Cloud platform owner, retained in the sink bucket under the team's policy
VPC flow logsSubnet-level logging, sink to a bucket with a dedicated read path, scoped to network projectsNetwork flow decoder and rule group, shown in a network activity view if one exists (confirm)Network engineering on-call, retained in cold storage with a shorter window
Cloud firewall rules loggingEnabled per rule, sink to Pub/Sub, read at the project hosting the rulesFirewall decoder and rule group, shown in the network activity view (confirm)Network security analyst, retained in the indexer for active investigation
Cloud DNS query logsEnabled per managed zone, sink to bucket, read at the project owning the zoneDNS decoder and rule group, if provided in the current rule set (confirm)Security analyst, retained in the sink bucket with a documented review date
In-scope managed service logsSink per service, separate service account per project or folder where access must be splitService-specific decoder named in the rule set, shown in the matching dashboard if available (confirm)Owner of the workload, retained per the data classification of that service
Guest OS logs on instancesWazuh agent on each instance, managed through agent groups, not the cloud moduleAgent-side decoders and local rules, shown in the agent and endpoint viewsInfrastructure team, retained in the indexer under the agent retention policy

Combining module collection with agents on Google Cloud instances

Module collection and Wazuh agents answer different questions, so a team usually needs both. The Google Cloud collection path reads what Google Cloud records about the control plane and managed services: audit activity from Cloud Audit Logs, configuration changes, and service-level events that arrive through Pub/Sub or a Cloud Storage bucket. An agent on a virtual machine records what happens inside that machine: file integrity changes, running processes, local system and application logs, and the software inventory that feeds vulnerability detection. A deleted firewall rule shows up in the cloud logs. A new listening process or a modified configuration file on the instance shows up only through the agent.

Decide the split before either build starts. Map each event type you need to detect to the source that can see it, then list the instances that hold regulated data, administrative credentials or internet-facing services. Those instances are the candidates for agents. Lower-risk workloads, such as short-lived build runners or disposable test machines, may be covered adequately by cloud logs alone, but that is a risk acceptance your security owner should record in writing. Agent coverage on a large fleet also carries operating cost in upgrades, configuration management and endpoint resources, so the list should be justified by data and risk rather than by the number of machines.

Expect overlapping alerts. A single action can appear in both sources: an administrator who changes a firewall rule creates a Cloud Audit Log entry, and if the same administrator then logs in to the instance and edits a local file, the agent records a separate event. Correlation rules that group by user, instance name or time window reduce noise, but they depend on consistent identifiers across the two sources. Check that the instance names and labels in the cloud logs match the agent names in Wazuh, and test a known change in a non-production project to confirm which events reach the dashboard and how they are grouped.

Agent deployment is a separate piece of work. It needs its own enrollment, group assignment and configuration for each operating system, along with the Wazuh server reachable from the instances, and firewall rules that allow agent traffic. Confirm the agent version supported for each operating system in the Wazuh documentation before you plan the rollout, and confirm how agent configuration and upgrades will be managed centrally. The cloud log integration and the agent rollout should be scoped, scheduled and tested as two deliverables so that a delay in one does not hide gaps in the other.

Securing the Google Cloud credentials and log path

The Google Cloud module puts a service account, its keys, the log source and the Wazuh alert store in one chain, so a weakness at any link exposes cloud audit data. The cards below cover the decisions that keep collection narrow, the credentials contained and the alerts protected. Confirm each setting against current Google Cloud and Wazuh documentation in your own environment before go-live.

Least-privilege roles on the service account

Grant the collection service account only the read permissions it needs on the specific Pub/Sub subscription or Cloud Storage bucket that holds the logs, and nothing at project or organization level. Review the role list against Google Cloud's documentation for each log source you enable, because broad roles such as project-wide viewer or editor roles let a leaked key read far more than audit logs. Record the chosen roles and the resources they apply to as part of the build evidence.

Key storage and rotation on the Wazuh server

If the integration uses a downloaded service account key, store it on the Wazuh server in a file owned by the service account user with permissions limited to that user. Keep the key out of shared configuration repositories, shell history and backup copies that lack the same restrictions. Define a rotation procedure before go-live that creates the new key, updates the server, confirms ingestion and then deletes the old key in Google Cloud. Confirm whether your Google Cloud organization policy permits key creation at all, since many organizations restrict it.

Separating collection from administration

Use a dedicated service account for log collection that no engineer uses for console work or infrastructure changes. Administrative identities should be named human accounts with their own sign-in controls, so an alert about the collection identity points to a single purpose. Reviewers can then tell routine collection activity from configuration or permission changes made by people. Document which identities may impersonate or manage the collection account, and remove any that are not needed.

Restricting bucket and topic access

Scope access to the exact log bucket, its prefix or the exact Pub/Sub topic and subscription used by Wazuh, and deny write access to the collection identity unless the design requires it. Confirm that the log sink exporting logs to the bucket or topic is controlled by a separate, reviewed identity. Check who can change the sink, the bucket policy or the subscription, because altering the path can silently stop or redirect ingestion. Test that the collection identity cannot read unrelated buckets.

Encryption in transit to Google APIs

Confirm that the Wazuh server reaches Google APIs over TLS on the endpoints Google documents for each service, and that no proxy or inspection device downgrades or rewrites those connections. Where an outbound proxy is used, verify its certificate chain is trusted by the server and that proxy logs do not capture credentials or tokens. Include the Google API endpoints in egress rules so the integration fails closed rather than falling back to an unencrypted path.

Auditing changes to the service account

Enable Google Cloud audit logging for IAM and service account administration, then route those events to an alerting path that a team reviews. Alert on new keys, role grants, impersonation grants and changes to the log sink or bucket policy. Consider whether these events are also ingested into Wazuh, so the same platform that watches the logs also reports on changes to the path that delivers them. Confirm the required audit log types and retention with Google Cloud documentation.

Protecting the indexer and dashboard

Alerts from Google Cloud contain account names, resource paths and source IP addresses, so the Wazuh indexer and dashboard need the same access control as other sensitive security data. Restrict dashboard access with role-based permissions, use single sign-on where possible, and keep the indexer off public networks. Check that index snapshots and backups inherit the same restrictions, since a copy of cloud audit alerts is still cloud audit data.

Limiting changes to the module configuration

The Google Cloud module configuration decides which projects, buckets, topics and log types Wazuh collects, so changes to it alter what is monitored. Keep the configuration file under version control with reviewed changes, restrict write access on the server to the team that operates Wazuh, and record each change with its approver. Compare the deployed configuration with the reviewed copy on a schedule so unauthorized edits are visible.

How to test that Google Cloud events reach Wazuh alerts

The goal of this test is to show, layer by layer, that a Google Cloud event travels from its source to a visible Wazuh alert, so that a failure can be located instead of guessed at. Run the three layers in order and do not move to the next layer until the one below it passes. The first layer confirms that the service account authenticates and can read the source, either the Pub/Sub subscription or the Cloud Storage bucket the module uses. Test with the same credentials and the same read permissions the production configuration uses. A successful read with a broader test identity can hide a missing grant, so the permissions should match exactly. Confirm the required roles in the release documentation before you start.

The second layer proves that a known event reaches the Wazuh server and indexer. Perform a controlled audit action in the test project, such as creating and then deleting a test Cloud Storage bucket with a unique name, and record the exact time and the name you used. Then search for that name on the Wazuh server output and in the indexer. The event should appear decoded, with its fields mapped to named values instead of appearing as an undifferentiated JSON string. If the event reaches the indexer but not the server output, suspect the decoder or the rule set. If it appears nowhere, check the authentication and subscription state first. Confirm the log file locations, archive settings and search steps for your release in the official documentation, because they change between versions.

The third layer confirms what the analyst sees. Open the Wazuh dashboard and check that the event shows the expected fields, such as the project identifier, the method name, the acting principal and the resource name. Then confirm that a rule fires for a chosen test condition, for example a rule that matches a bucket deletion or an IAM policy change in the test project. Record the rule identifier, its severity level and the alert group. Confirm the rule identifiers and the built-in rules for the Google Cloud module in the release documentation or in the rule files on your server instead of relying on the identifiers shown here, which may change in later releases.

Check for dropped events by comparing counts: the number of test actions you performed against the number of matching events in the indexer for the same time window. Look at the Pub/Sub subscription for unacknowledged messages and at any dead-letter topic you configured, and scan the server logs for parsing or decoder errors around the test time. To measure ingestion lag, subtract the action time from the time the event first becomes searchable in the indexer. Repeat the test several times at different times of day and record the spread of values, not a single measurement. Then record each run for change control: the test identifier, the release version, the identity used, the test resource names, expected and actual results, lag measurements, and the name of the person who signed off. Keep the test resources and the test identity under the same review as the production configuration.

Why Google Cloud logs stop arriving in Wazuh

This table lists the failures teams most often see when Google Cloud logs stop reaching Wazuh, with the likely cause and a first fix for each. Read it in order: check credentials and permissions first, then resources and network paths, then decoding and alert volume. Confirm every log message, configuration key and IAM role name against the current Wazuh and Google Cloud documentation before changing production settings.

SymptomLikely causeFirst fix
Authentication errors from the module at startup or on each pollService account key is missing, expired, or points to the wrong projectConfirm the key file path and format in the module configuration, then test the same account with a read call outside Wazuh.
No events from a configured project, bucket or subscriptionService account lacks read roles on the project, bucket or Pub/Sub subscriptionGrant the narrowest read role on each named resource, then recheck with the same account. Confirm exact role names in Google Cloud IAM documentation.
Events arrive in bursts or some are missingAcknowledgement deadline or retention is too short, or a second consumer reads the same subscriptionUse a dedicated subscription for Wazuh only. Confirm the acknowledgement deadline and retention settings against the Pub/Sub documentation and the module's pull behavior.
Bucket is polled but nothing is ingestedPrefix in the module does not match the object path written by the log sinkCompare the configured prefix with object names in the bucket, including trailing slashes. Confirm the key name in the module documentation.
Timeouts or connection errors to Google API endpointsEgress firewall, proxy or NAT blocks the Google APIs the module callsAllow outbound HTTPS from the Wazuh server to the Google API hosts the module needs, or set the documented proxy values. Test from the same host with curl.
Events appear minutes or hours late or fall outside time filtersClock drift on the Wazuh server, or a timestamp format the decoder does not expectSync the Wazuh server clock with NTP and confirm its timezone. Check the timestamp field against the decoder in the module documentation.
Events are ingested but show no decoded fields or rule matchesEntries are decoded by another decoder, or rules for the Google Cloud event type are not loadedInspect archived events to find the decoded location. Confirm rule file names and that custom rules load after a manager restart or reload.
Dashboard floods with low-value alerts after onboardingEvery log type is enabled at once, and default rule levels fire on routine administrative activityEnable services in stages, review the top rule IDs, then raise the minimum alert level or suppress approved routine activity. Record each change.

Questions buyers ask before hiring help with Wazuh Google Cloud monitoring

What drives the cost of a Google Cloud log integration for Wazuh?

Cost and effort track the size and shape of the collection more than the Wazuh software itself. The main drivers are the number of Google Cloud projects and log sources in scope, the collection path (Pub/Sub or Cloud Storage buckets), how service account credentials and IAM roles are designed and approved, how much rule tuning is needed to keep audit log alerts workable, and whether agents on Compute Engine instances are included. Each project and log source adds configuration, testing and review. Ask any partner for a quote that prices each project, log source, collection path, IAM role set, tuning task and agent scope as separate lines, so you can see what changes if the scope shrinks.

Is the Wazuh software itself free to run?

The self-hosted Wazuh software has no license fee. It is distributed under the GNU General Public License version 2, with an exception that permits linking with the OpenSSL library. The costs you carry are the infrastructure that runs the Wazuh server, indexer and dashboard, the storage for indexed alerts, the staff who maintain the platform and any partner work. Wazuh Cloud is a separate managed, cloud-delivered XDR and SIEM service with its own plans in Small, Medium, Large and Custom tiers. It offers a 14-day free trial that needs no credit card, and every paid plan includes at least Standard support. Choosing self-hosting or Wazuh Cloud is a separate decision from hiring help with the Google Cloud integration, so confirm current plan terms directly with Wazuh.

Which costs are one-time and which ones recur after go-live?

One-time work usually covers scoping, IAM design and approval, building the Pub/Sub topic or bucket configuration, setting up service account credentials, the first set of decoders and rules, and a test window with your log owners. Recurring costs include the infrastructure that keeps the Wazuh components running, storage that grows with ingestion volume, rule and decoder tuning as new Google Cloud services are enabled, Wazuh upgrades across the 4.14 patch line, and ongoing support. Wazuh has shipped 4.14 patch releases roughly every one to two months, so plan for regular maintenance. Ask a partner which items sit inside the fixed-scope project, which are offered as a retainer, and who owns tuning after handover.

How long does a Google Cloud integration for Wazuh take?

No duration can be stated without a written scope, so treat any estimate you hear before scoping with caution. The biggest drivers are how many Google Cloud projects and log sources are in scope, whether Pub/Sub or Cloud Storage is used, how long IAM approvals take in your governance process, how quickly log owners confirm which fields and events matter, and the length of the test window. A narrow scope with one project and one collection path moves faster than several projects with agents on instances. Most DeployOpen engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ask for a timeline split into discovery, IAM approval, build, test window and handover, and identify which dependencies on your side could delay it.

What does our team need to provide before the work starts?

Plan for four inputs before work starts. Cloud access: a project or organization context where the team can review or create the log export, the Pub/Sub or bucket resources and the service account. IAM approval: a named approver who accepts the roles requested for the service account, since least-privilege design is often the slowest step. Log owners: the people who know which Google Cloud audit and service logs matter and who can confirm retention and the meaning of key fields. A test window: a period when test events can be generated and alerts reviewed without disrupting production monitoring. Missing any of these delays the schedule, so name a specific owner for each one in the proposal.

Can our internal security team set this up without outside help?

Often yes, if the team already runs Linux servers and has working knowledge of Google Cloud IAM, log exports and Wazuh rules. The question is whether the people available have the time and skills for each part: least-privilege IAM design, collection path setup, decoder and rule work, and tuning that keeps alert volume manageable. Many teams keep operations in-house and bring in outside help for a fixed-scope first build, then take over from there. Assess skills task by task, not by team headcount, and confirm each configuration step against the Wazuh documentation for the version you run before committing. A partner can also document the build so your team can repeat it for the next project.

Should we use Pub/Sub or Cloud Storage for Google Cloud logs?

Choose the path based on how your logs are exported, who owns the destination and how much operational work each option adds to your team. Pub/Sub is a messaging path, so the choice depends on whether your Google Cloud exports already publish to topics that your team controls. Cloud Storage buckets hold exported files, which can suit existing archival exports. Consider the IAM scope each path requires, the retention you need, the expected volume and whether another team already owns the export. Confirm the exact configuration keys and required fields against the Wazuh Google Cloud module documentation for your version, because the setup differs between the two paths.

Do agents on Compute Engine instances replace the Google Cloud log modules?

No. Module collection and agents collect different data, so most designs use both. Module collection reads Google Cloud logs, such as audit and service events, from the cloud side without installing software on each resource. Wazuh agents on Compute Engine instances collect host-level data such as system logs, file integrity monitoring results and software inventory, and each instance needs installation and ongoing management. Decide per instance group whether an agent is worth its operational cost. Include agent deployment, updates and tuning as a separate line in the quote, and check that the operating systems in scope are supported by Wazuh agents.

How DeployOpen scopes and delivers Wazuh Google Cloud integrations

DeployOpen plans, implements, integrates, documents and supports self-hosted Wazuh inside your own Google Cloud projects or the infrastructure you control. For Google Cloud monitoring, that means agreeing which projects, log sources and collection paths are in scope before any build starts. Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing first.

How we scope

  • Written scope listing the Google Cloud projects, log sources and instances covered
  • Agreed choice of Pub/Sub or Cloud Storage bucket as the log transport, documented before build
  • Service account roles, credential handling and approval owners agreed in advance

How we build

  • Pub/Sub or bucket-based collection and service account credentials set up in your projects
  • Module collection combined with Wazuh agents on the instances where host-level data matters
  • Decoders and rules tuned so alerts from Google Cloud logs match the agreed use cases

How we hand over

  • Documentation of collection paths, credential locations, rule changes and operating runbooks
  • Verification evidence showing agreed log sources arriving and generating alerts in the dashboard
  • Walkthrough with your security and cloud teams on daily checks and troubleshooting steps

How we support

  • Ongoing support, upgrades and continuous testing available as a retainer after handover
  • Review of Google Cloud log source changes and credential rotation as your projects evolve
  • Wazuh upgrades planned in the documented order, with backups taken before each change

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.