Collect Voltage logs

Supported in:

This document explains how to ingest Voltage SecureMail logs to Google Security Operations using the Bindplane agent.

Voltage SecureMail is an email encryption platform that generates syslog messages for email encryption/decryption events, policy enforcement, and administrative actions.

Before you begin

Make sure you have the following prerequisites:

  • A Google SecOps instance
  • Windows Server 2016 or later, or Linux host with systemd
  • Network connectivity between the Bindplane agent and the Voltage SecureMail server
  • If running behind a proxy, ensure firewall ports are open per the Bindplane agent requirements
  • Privileged access to the Voltage SecureMail Management Console

Get Google SecOps ingestion authentication file

  1. Sign in to the Google SecOps console.
  2. Go to SIEM Settings > Collection Agents.
  3. Download the Ingestion Authentication File.
  4. Save the file securely on the system where Bindplane will be installed.

Get Google SecOps customer ID

  1. Sign in to the Google SecOps console.
  2. Go to SIEM Settings > Profile.
  3. Copy and save the Customer ID from the Organization Details section.

Install the Bindplane agent

Install the Bindplane agent on your Windows or Linux operating system according to the following instructions.

Windows installation

  1. Open Command Prompt or PowerShell as an administrator.
  2. Run the following command:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Wait for the installation to complete.

  4. Verify the installation by running:

    sc query observiq-otel-collector
    

    The service should show as RUNNING.

Linux installation

  1. Open a terminal with root or sudo privileges.
  2. Run the following command:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Wait for the installation to complete.

  4. Verify the installation by running:

    sudo systemctl status observiq-otel-collector
    

    The service should show as active (running).

Additional installation resources

For additional installation options and troubleshooting, see the Bindplane agent installation guide.

Configure the Bindplane agent to ingest syslog and send to Google SecOps

Locate the configuration file

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Edit the configuration file

  • Replace the entire contents of config.yaml with the following configuration:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/voltage:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: VOLTAGE
            raw_log_field: body
    
    service:
        pipelines:
            logs/voltage_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/voltage
    

Configuration parameters

Replace the following placeholders:

  • Receiver configuration:

    • listen_address: IP address and port to listen on:
      • 0.0.0.0 to listen on all interfaces (recommended)
      • Port 514 is the standard syslog port (requires root on Linux; use 1514 for non-root)
  • Exporter configuration:

    • creds_file_path: Full path to ingestion authentication file:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: Customer ID copied from the Google SecOps console
    • endpoint: Regional endpoint URL:
      • US: malachiteingestion-pa.googleapis.com
      • Europe: europe-malachiteingestion-pa.googleapis.com
      • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • See Regional Endpoints for complete list

Save the configuration file

  • After editing, save the file:
    • Linux: Press Ctrl+O, then Enter, then Ctrl+X
    • Windows: Click File > Save

Restart the Bindplane agent to apply the changes

  • To restart the Bindplane agent in Linux, run the following command:

    sudo systemctl restart observiq-otel-collector
    
    1. Verify the service is running:

      sudo systemctl status observiq-otel-collector
      
    2. Check logs for errors:

      sudo journalctl -u observiq-otel-collector -f
      
  • To restart the Bindplane agent in Windows, choose one of the following options:

    • Command Prompt or PowerShell as administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services console:

      1. Press Win+R, type services.msc, and press Enter.
      2. Locate observIQ OpenTelemetry Collector.
      3. Right-click and select Restart.
      4. Verify the service is running:

        sc query observiq-otel-collector
        
      5. Check logs for errors:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configure syslog in Voltage SecureMail

  1. Sign in to the Voltage SecureMail Management Console.
  2. Go to System > Syslog Settings.
  3. Provide the following configuration details:
    • Server Address: Enter the Bindplane agent IP address.
    • Port: Enter 514.
    • Protocol: Select UDP.
    • Facility: Select the appropriate syslog facility.
    • Log Level: Select the desired log level.
  4. Click Save.

UDM mapping table

Log Field UDM Mapping Logic
attemptedAuthMethods_label additional.fields Merged
authTokens_label additional.fields Merged
elapsedTimeMillis_label additional.fields Merged
isUserPassSet_label additional.fields Merged
keyId_label additional.fields Merged
leadingDigits_label additional.fields Merged
masked_label additional.fields Merged
merchantId_label additional.fields Merged
out_label additional.fields Merged
phaseBit_label additional.fields Merged
proxyType_label additional.fields Merged
rollover_label additional.fields Merged
trailingDigits_label additional.fields Merged
AuthenticationMethod extensions.auth.mechanism Mapped: USER_PASSWORDmechanism
mechanism extensions.auth.mechanism Merged
has_principal extensions.auth.type Mapped: trueAUTHTYPE_UNSPECIFIED
proxyConnectionIp intermediary.asset.ip Merged
inter_hostname intermediary.hostname Directly mapped
proxyConnectionIp intermediary.ip Merged
description metadata.description Directly mapped
has_principal metadata.event_type Mapped: trueUSER_LOGIN, trueNETWORK_CONNECTION, trueSTATUS_UPDATE
has_user metadata.event_type Mapped: trueUSER_UNCATEGORIZED
prod_event_name metadata.product_event_type Directly mapped
event_id metadata.product_log_id Directly mapped
cef_product metadata.product_name Directly mapped
version metadata.product_version Directly mapped
request network.http.referral_url Directly mapped
length network.received_bytes Directly mapped
requestTimeMillis network.session_duration.nanos Directly mapped
timeMillis network.session_duration.seconds Directly mapped
sessionid network.session_id Directly mapped
cvProduct observer.application Directly mapped
cvapi_label observer.labels Merged
cvdevice_label observer.labels Merged
cvframework_label observer.labels Merged
cvos observer.platform Mapped: LiLINUX, WinWINDOWS
requestClientApplication principal.application Directly mapped
src_hostname principal.asset.hostname Directly mapped
ip principal.asset.ip Merged
src_ip principal.asset.ip Merged
src_hostname principal.hostname Directly mapped
ip principal.ip Merged
src_ip principal.ip Merged
src_port principal.port Renamed/mapped
identity principal.user.email_addresses Mapped: (.*)@(.*)identity
user principal.user.userid Directly mapped
username principal.user.userid Directly mapped
sec_action security_result.action Merged
msg security_result.description Directly mapped
CachedAuthentication_label security_result.detection_fields Merged
acceptBadData_label security_result.detection_fields Merged
algorithm_label security_result.detection_fields Merged
authMethodName_label security_result.detection_fields Merged
authTimeMillis_label security_result.detection_fields Merged
authType_label security_result.detection_fields Merged
format_label security_result.detection_fields Merged
fullIdentity_label security_result.detection_fields Merged
hsmEnabled_label security_result.detection_fields Merged
returnEncryptedKeyOption_label security_result.detection_fields Merged
returnFullIdentity_label security_result.detection_fields Merged
wrappedMode_label security_result.detection_fields Merged
severity security_result.severity Mapped: "0", "1", "2"INFORMATIONAL, "3", "4"LOW, "5", "6"MEDIUM, `"7", ...
severity security_result.severity_details Directly mapped
district target.administrative_domain Directly mapped
shost target.asset.hostname Directly mapped
dst_ip target.asset.ip Merged
shost target.hostname Directly mapped
dst_ip target.ip Merged
cmd_line target.process.command_line Directly mapped
pid target.process.pid Directly mapped
path target.resource.name Directly mapped
tar_user target.user.userid Directly mapped
N/A extensions.auth.type Constant: AUTHTYPE_UNSPECIFIED
N/A metadata.event_type Constant: USER_LOGIN
N/A metadata.product_name Constant: VOLTAGE
N/A metadata.vendor_name Constant: VOLTAGE
N/A observer.platform Constant: LINUX
N/A security_result.severity Constant: INFORMATIONAL

Need more help? Get answers from Community members and Google SecOps professionals.