Skip to main content

Generate and ingest synthetic logs into Chronicle

Project description

SecOps Log Hammer

A Python tool for generating and ingesting synthetic logs into Chronicle.

Description

SecOps Log Hammer is designed for testing and development purposes. It can generate realistic security logs in various formats (WINEVTLOG, OKTA, AZURE_AD, GCP_CLOUDAUDIT, CS_EDR) and ingest them into Chronicle.

Features

  • Generate realistic security log data
  • Support for multiple log formats
  • Configurable log volume (by GB or MB)
  • Progress tracking
  • Automatic forwarder management
  • Support for production, staging, and development environments

Installation

pip install secops-log-hammer

Requirements

  • Python 3.7 or later
  • Google Cloud authentication credentials (either Application Default Credentials or a service account key file)
  • Chronicle instance access

Authentication

Log Hammer supports two authentication methods:

Application Default Credentials (ADC) - Recommended

By default, Log Hammer uses Application Default Credentials. To set up ADC:

gcloud auth application-default login

This will authenticate your account and store credentials locally. No additional parameters are needed when running Log Hammer.

Service Account Key

Alternatively, you can use a service account key file:

  1. Create a service account with appropriate Chronicle permissions
  2. Generate a JSON key file for the service account
  3. Provide the path to the key file using the --service-account-path option

Usage

log-hammer --customer_id YOUR_CUSTOMER_ID --project_id YOUR_PROJECT_ID [--region REGION] [--gb 0.1 | --mb 100]

The CLI supports both underscore and dash formats for arguments (e.g., --customer_id or --customer-id).

Required Arguments

  • --customer_id / --customer-id: Chronicle Customer ID
  • --project_id / --project-id: Google Cloud Project ID

Log Size Options (specify one)

  • --gigabytes / --gb: Approximate gigabytes of raw logs to generate and ingest
  • --megabytes / --mb: Approximate megabytes of raw logs to generate and ingest

If neither option is specified, defaults to 100 MB.

Note: You can use the short forms --gb and --mb instead of --gigabytes and --megabytes for convenience.

Other Options

  • --region: Chronicle API region (e.g., us, europe, asia-southeast1). Special values:
    • staging: Use the Chronicle staging environment
    • dev: Use the Chronicle development/autopush environment
    • Default: "us"
  • --service_account_path / --service-account-path: Path to GCP service account JSON key file for authentication. If not provided, Application Default Credentials (ADC) will be used.
  • --forwarder_display_name / --forwarder-display-name: Display name for the Chronicle forwarder to be created/used (default: "PythonLogIngestScriptForwarder").
  • --namespace: Optional asset namespace for the logs. May be required for some log types.
  • --log_types / --log-types: Comma-separated list of log types to generate. If empty, all available types will be used.
  • --labels: Optional labels to attach to logs in key=value,key2=value2 format or as JSON object.

Examples

Generate and ingest 0.5 GB of logs into Chronicle in the US region:

log-hammer --customer-id my-customer-id --project-id my-gcp-project --gb 0.5

Generate and ingest 100 MB of logs:

log-hammer --customer-id my-customer-id --project-id my-gcp-project --mb 100

Use a service account key for authentication:

log-hammer --customer-id my-customer-id --project-id my-gcp-project --mb 50 --service-account-path /path/to/service-account-key.json

Generate only specific log types:

log-hammer --customer-id my-customer-id --project-id my-gcp-project --log-types WINEVTLOG,OKTA

Generate logs for a staging environment:

log-hammer --customer-id my-customer-id --project-id my-gcp-project --region staging --mb 10

Generate logs for a development/autopush environment:

log-hammer --customer-id my-customer-id --project-id my-gcp-project --region dev --mb 10

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

secops_log_hammer-1.0.0.tar.gz (26.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

secops_log_hammer-1.0.0-py3-none-any.whl (28.7 kB view details)

Uploaded Python 3

File details

Details for the file secops_log_hammer-1.0.0.tar.gz.

File metadata

  • Download URL: secops_log_hammer-1.0.0.tar.gz
  • Upload date:
  • Size: 26.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for secops_log_hammer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5a355120d497d2e558c3372cce208880ed291aba95aab1a447df3b134feba542
MD5 2c5296b563f5e7a37160b17bee8c1eba
BLAKE2b-256 1f5f3b71c0d544133d55bf3b4699bb2d58339cacdf1ffc3a17085c22bb9438cf

See more details on using hashes here.

File details

Details for the file secops_log_hammer-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for secops_log_hammer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6b67618e607ed847cccf571c6eb23915a8559ffb684e5b6a47968d6531c52c17
MD5 90391a6139364205de631e9fe5d42942
BLAKE2b-256 642b4fe812b4fd36db98b6a7e2b36b7eeda5a26b4480e4b940d62f249177b56b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page