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
/var/log/nginx/access.log or /var/log/nginx/error.log
Log type (for preconfigured parsing)
Access log: nginx, nginx_access, or nginx-access
Error log: nginx-error
Guided configuration

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

  1. 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/
    
  2. Add nginx as an input

    In the Filebeat configuration file (/etc/filebeat/filebeat.yml), add nginx 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/log/nginx/access.log
    
      fields:
        logzio_codec: plain
    
        # Your Logz.io account token. You can find your token at
        #  https://app.logz.io/#/dashboard/settings/manage-accounts
        token: <<SHIPPING-TOKEN>>
        type: nginx_access
      fields_under_root: true
      encoding: utf-8
      ignore_older: 3h
    
    - type: log
      paths:
      - /var/log/nginx/error.log
    
      fields:
        logzio_codec: plain
    
        # Your Logz.io account token. You can find your token at
        #  https://app.logz.io/#/dashboard/settings/manage-accounts
        token: <<SHIPPING-TOKEN>>
        type: nginx_error
      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/log/nginx/access.log
    
      fields:
        logzio_codec: plain
    
        # Your Logz.io account token. You can find your token at
        #  https://app.logz.io/#/dashboard/settings/manage-accounts
        token: <<SHIPPING-TOKEN>>
        type: nginx_access
      fields_under_root: true
      encoding: utf-8
      ignore_older: 3h
    
    - type: log
      paths:
      - /var/log/nginx/error.log
    
      fields:
        logzio_codec: plain
    
        # Your Logz.io account token. You can find your token at
        #  https://app.logz.io/#/dashboard/settings/manage-accounts
        token: <<SHIPPING-TOKEN>>
        type: nginx_error
      fields_under_root: true
      encoding: utf-8
      ignore_older: 3h
    
    registry_file: /var/lib/filebeat/registry
    
  3. 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']
    
  4. Start Filebeat

    Start or restart Filebeat for the changes to take effect.

  5. Check Logz.io for your logs

    Confirm you’re shipping logs by opening an nginx-hosted webpage in your browser. Give your logs a few minutes to get from your system to ours, and then open Kibana.

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