Code Monkey home page Code Monkey logo

elk-f5-ts's Introduction

F5 BIG-IP TS ELK Container

Introduction

This is a fork from the ELK all in one docker containers found on

They include a fully containerized Logstash, ElasticSearch and Kibana stack

The docker container and sources after the below described modifications can be found on

The get the proper docker command startup flags, please refer to the original documentation, as nothing has changed here

Modifications

The default docker images contain a Logstash chain for Beats and Nginx. This forked container removes the default Logstash chain and injects an F5 Telemetry Streaming specific Logstash chain

The default location of the Logstash chain configuration is /etc/logstash/conf.d

Input

We use the HTTP input plugin, documented here

input {
  http {
    type => "f5.telemetry"
    port => 5044
  }
}

Filter

We enrich the data.client_ip field in the original F5 BIG-IP Elasticsearch data with GeoLocation data for Kibana dashboarding. More information on the GeoIP filter can be found here

We also remove the extra headers added by the http input plugin and make sure the @timestamp field matches the data.event_timestamp from the original data (this matches the HTTP timstamp of the traffic on the wire going through BIG-IP)

filter {
  if [type] == "f5.telemetry" {
    date {
      match => ["[data][event_timestamp]" , "yyyy-MM-dd'T'HH:mm:ss.SSSZ"]
      target => "@timestamp"
    }
    mutate {
      remove_field => [ "headers" ]
    }
    geoip {
      source => "[data][client_ip]"
    }
  }
}

Output

We make sure the upstream configured (by TS) index bigip and document type f5.telemetry match our expectations

output {
  elasticsearch {
    hosts => ["localhost"]
    index => "bigip"
    document_type => "f5.telemetry"
  }
}

Note: This index and document_type need to match the below example configuration for the F5 TS Elasticsearch Consumer Configuration

Background

For more information on how to use Telemetry Streaming in combination with Elasticsearch, please refer to the following documentation

Note that we are not sending traffic directly to Elasticsearch, but use Logstash as intermediate transformer and enricher (GeoIP data in this case)

{
    "class": "Telemetry",
    "ELK_Consumer": {
        "class": "Telemetry_Consumer",
        "type": "ElasticSearch",
        "host": "<the IP address of this container>",
        "index": "bigip",
        "port": 5044,
        "protocol": "http",
        "dataType": "f5.telemetry"
    }
}

Please be aware you will also need to create a Traffic_Log_Profile and attach this to your Virtual Server for the full end-to-end scenario

Note

This container is purely used for demo purposes and not meant for production environments at all

elk-f5-ts's People

Contributors

boeboe avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.