Setup

Configuration tl;dr

Files
Sample configuration
Encryption certificate
Listener
Port 5015. For help finding your region’s listener host, see Account region.
Default log locations
JSON (recommended): /var/ossec/logs/alerts/alerts.json
Plain text: /var/ossec/logs/alerts/alerts.log
Guided configuration

You’ll need: Filebeat 7 or Filebeat 6, root access

  1. Configure Wazuh for JSON logging

    In the Wazuh configuration file (/var/ossec/etc/ossec.conf), find the <logging> tag, and set the <log_format> property to json.

    <logging>
      <log_format>json</log_format>
    </logging>
    

    Restart Wazuh.

    sudo systemctl restart wazuh-manager
    
  2. Download the Logz.io certificate

    For HTTPS shipping, download the Logz.io public certificate to your certificate authority folder.

    sudo wget https://raw.githubusercontent.com/logzio/public-certificates/master/COMODORSADomainValidationSecureServerCA.crt -P /etc/pki/tls/certs/
    
  3. Add Wazuh as an input

    In the Filebeat configuration file (/etc/filebeat/filebeat.yml), add Wazuh to the filebeat.inputs section.

    Replace <<SHIPPING-TOKEN>> with the token of the account you want to ship to.

    # Filebeat 7 configuration
    
    filebeat.inputs:
    - type: log
    
      paths:
      - /var/ossec/logs/alerts/alerts.json
    
      fields:
        logzio_codec: json
    
        # Your Logz.io account token. You can find your token at
        #  https://app.logz.io/#/dashboard/settings/manage-accounts
        token: <<SHIPPING-TOKEN>>
        type: wazuh
      fields_under_root: true
      encoding: utf-8
      ignore_older: 3h
    
    filebeat.registry.path: /var/lib/filebeat
    processors:
    - rename:
        fields:
        - from: "agent"
          to: "filebeat_agent"
        ignore_missing: true
    - rename:
        fields:
        - from: "log.file.path"
          to: "source"
        ignore_missing: true
    
    # Filebeat 6 configuration
    
    filebeat.inputs:
    - type: log
    
      paths:
      - /var/ossec/logs/alerts/alerts.json
    
      fields:
        logzio_codec: json
    
        # Your Logz.io account token. You can find your token at
        #  https://app.logz.io/#/dashboard/settings/manage-accounts
        token: <<SHIPPING-TOKEN>>
        type: wazuh
      fields_under_root: true
      encoding: utf-8
      ignore_older: 3h
    
    registry_file: /var/lib/filebeat/registry
    
  4. Add Logz.io as an output

    If Logz.io is not an output, add it now.

    Replace <<LISTENER-HOST>> with your region’s listener host (for example, listener.logz.io). For more information on finding your account’s region, see Account region.

    output.logstash:
      hosts: ["<<LISTENER-HOST>>:5015"]
      ssl:
        certificate_authorities: ['/etc/pki/tls/certs/COMODORSADomainValidationSecureServerCA.crt']
    
  5. Start Filebeat

    Start or restart Filebeat for the changes to take effect.

  6. Check Logz.io for your logs

    Give your logs some time to get from your system to ours, and then open Kibana.

    If you still don’t see your logs, see log shipping troubleshooting.