Collect Juniper SRX Series Firewall logs

Supported in:

This document explains how to ingest Juniper SRX Series Firewall logs to Google Security Operations using Bindplane.

Juniper SRX Series firewalls are high-performance network security devices that provide next-generation firewall (NGFW) capabilities, including stateful inspection, intrusion detection and prevention (IDP), application security, and VPN. SRX firewalls generate syslog messages for traffic, security, system, and session events that can be forwarded to external SIEM platforms for centralized security monitoring.

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 Juniper SRX firewall.
  • If running behind a proxy, ensure firewall ports are open per the Bindplane agent requirements.
  • Privileged access to the Juniper SRX firewall (root or super-user level access via J-Web or CLI).

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. 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 IDfrom the Organization Detailssection.

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 Promptor PowerShellas an administrator.
  2. Run the following command:

      msiexec 
      
     / 
     i 
      
     "[https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi](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 ]( 
    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 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/juniper_firewall 
     : 
      
     compression 
     : 
      
     gzip 
      
     creds_file_path 
     : 
      
     '/etc/bindplane-agent/ingestion-auth.json' 
      
     customer_id 
     : 
      
     'your-customer-id-here' 
      
     endpoint 
     : 
      
     malachiteingestion-pa.googleapis.com 
      
     log_type 
     : 
      
     JUNIPER_FIREWALL 
      
     raw_log_field 
     : 
      
     body 
      
     ingestion_labels 
     : 
      
     env 
     : 
      
     production 
     service 
     : 
     pipelines 
     : 
      
     logs/juniper_to_chronicle 
     : 
      
     receivers 
     : 
      
     - 
      
     udplog 
      
     exporters 
     : 
      
     - 
      
     chronicle/juniper_firewall 
     
    

Configuration parameters

Replace the following placeholders:

  • Receiver configuration:

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

    • creds_file_path : Full path to the ingestion authentication file:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id : Your Google SecOps customer ID.
    • 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 the complete list.
    • ingestion_labels : Optional labels in YAML format (for example, env: production ).

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:

  1. Run the following command:

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

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

     sudo  
    journalctl  
    -u  
    observiq-otel-collector  
    -f 
    

To restart the Bindplane agent in Windows:

  1. 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.
  2. Verify the service is running:

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

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

Configure Juniper SRX syslog forwarding

Configure the Juniper SRX firewall to forward syslog messages to the Bindplane agent.

Using J-Web interface

  1. Sign in to the Juniper SRXJ-Web interface.
  2. Go to Configure > System Properties > Syslog.
  3. Click Addunder the Hostsection to add a new syslog server.
  4. Provide the following configuration details:
    • Host name: Enter the IP address of the Bindplane agent host (for example, 192.168.1.100 ).
    • Port: Enter 514 (or the port configured in the Bindplane agent).
    • Log prefix: Optional prefix for log messages.
    • Facility: Select the facility and severity levels to forward:
      • any: Select severity level infoor higher.
  5. In the Source addressfield, enter the SRX management interface IP (optional but recommended for consistent source identification).
  6. Click OKto save.
  7. Click Committo apply the configuration.

Using Junos CLI

  1. Connect to the Juniper SRX via SSH or console.
  2. Enter configuration mode:

     configure 
    
  3. Configure the syslog host:

     set system syslog host BINDPLANE_IP any info
    set system syslog host BINDPLANE_IP port 514
    set system syslog host BINDPLANE_IP source-address SRX_MGMT_IP
    set system syslog host BINDPLANE_IP structured-data 
    

    Replace:

    • BINDPLANE_IP : IP address of the Bindplane agent host.
    • SRX_MGMT_IP : Management IP address of the SRX firewall.
  4. Configure security log streaming (for traffic and session logs):

     set security log mode stream
    set security log source-address SRX_MGMT_IP
    set security log stream chronicle-stream host BINDPLANE_IP
    set security log stream chronicle-stream port 514
    set security log stream chronicle-stream transport protocol udp
    set security log stream chronicle-stream format sd-syslog
    set security log stream chronicle-stream severity info
    set security log stream chronicle-stream category all 
    

    Replace:

    • BINDPLANE_IP : IP address of the Bindplane agent host.
    • SRX_MGMT_IP : Management IP address of the SRX firewall.
  5. Commit the configuration:

     commit 
    
  6. Verify the syslog configuration:

     show system syslog
    show security log 
    

Configure specific log categories

  • To forward specific log types, configure individual facilities:

     set system syslog host BINDPLANE_IP firewall any
    set system syslog host BINDPLANE_IP authorization info
    set system syslog host BINDPLANE_IP daemon info
    set system syslog host BINDPLANE_IP kernel info
    set system syslog host BINDPLANE_IP interactive-commands info 
    

Replace BINDPLANE_IP with the IP address of the Bindplane agent host.

Verify syslog forwarding

  1. On the SRX, run the following command to view active syslog destinations:

     show system syslog 
    
  2. Generate test traffic through the firewall and verify logs appear in the Bindplane agent logs.

For more information, see the Juniper SRX Series documentation .

UDM mapping table

Log Field UDM Mapping Logic
source-address
event.idm.read_only_udm.principal.ip Value taken from source-address .
source-port
event.idm.read_only_udm.principal.port Value taken from source-port and converted to integer.
destination-address
event.idm.read_only_udm.target.ip Value taken from destination-address .
destination-port
event.idm.read_only_udm.target.port Value taken from destination-port and converted to integer.
protocol-id
event.idm.read_only_udm.network.ip_protocol Mapped from protocol number to name (6=TCP, 17=UDP, 1=ICMP).
policy-name
event.idm.read_only_udm.security_result.rule_name Value taken from policy-name .
source-zone-name
event.idm.read_only_udm.additional.fields Value taken from source-zone-name and added with key source-zone-name .
destination-zone-name
event.idm.read_only_udm.additional.fields Value taken from destination-zone-name and added with key destination-zone-name .
service-name
event.idm.read_only_udm.target.application Value taken from service-name .
application
event.idm.read_only_udm.target.application Value taken from application (if service-name is not present).
nat-source-address
event.idm.read_only_udm.principal.nat_ip Value taken from nat-source-address .
nat-source-port
event.idm.read_only_udm.principal.nat_port Value taken from nat-source-port and converted to integer.
nat-destination-address
event.idm.read_only_udm.target.nat_ip Value taken from nat-destination-address .
nat-destination-port
event.idm.read_only_udm.target.nat_port Value taken from nat-destination-port and converted to integer.
bytes-from-client
event.idm.read_only_udm.network.sent_bytes Value taken from bytes-from-client and converted to unsigned integer.
bytes-from-server
event.idm.read_only_udm.network.received_bytes Value taken from bytes-from-server and converted to unsigned integer.
packets-from-client
event.idm.read_only_udm.additional.fields Value taken from packets-from-client and added with key packets-from-client .
packets-from-server
event.idm.read_only_udm.additional.fields Value taken from packets-from-server and added with key packets-from-server .
elapsed-time
event.idm.read_only_udm.additional.fields Value taken from elapsed-time and added with key elapsed-time .
username
event.idm.read_only_udm.principal.user.userid Value taken from username .
reason
event.idm.read_only_udm.security_result.description Value taken from reason .
action
event.idm.read_only_udm.security_result.action If action is accept or permit , set to ALLOW . If action is deny , drop , reject , or close , set to BLOCK .
hostname
event.idm.read_only_udm.principal.hostname Value taken from syslog hostname field.
attack-name
event.idm.read_only_udm.security_result.threat_name Value taken from attack-name (IDP events).
severity
event.idm.read_only_udm.security_result.severity Mapped from severity string: info to INFORMATIONAL , warning to MEDIUM , error or major to ERROR , critical to CRITICAL .
event.idm.read_only_udm.metadata.vendor_name Set to Juniper Networks .
event.idm.read_only_udm.metadata.product_name Set to SRX Series Firewall .

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

Create a Mobile Website
View Site in Mobile | Classic
Share by: