Coder Social home page Coder Social logo

sheacloud / goflow-addons Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 19 KB

Extension of Cloudflare's goflow tool to include flow enrichment and additional outputs (like Cloudwatch Logs)

License: BSD 3-Clause "New" or "Revised" License

Go 100.00%
go goflow ipfix aws flow netflow sflow

goflow-addons's Introduction

goflow-addons

Additional modules for Cloudflares goflow tool

Mostly designed to create a standalone flow ingestion tool rather than leveraging goflows native transport of Kafka + separate consumers for processing/storing the data. This is not intended to be a better solution at scale, but rather provide a less complex solution for small deployments such as for home networks.

Currently adds:

  • Ability to have multiple targets for the flow messages (i.e. send to Cloudwatch logs and Kafka)
  • Cloudwatch Logs target
    • Supports batching the upload requests by time and size in order to reduce the total number of API calls
  • Flowlog enrichment
    • GeoIP information via MaxMind IP databases
    • Flow direction + client/server differentiation based on configured local CIDRs and src/dst port comparisons
    • Reverse DNS lookups for source and destination IPs

Extended modules

This package implements a wrapper/extension of goflows Transport interface. The ExtendedWrapper Transport adheres to the original Transport interface, but can be configured with a list of ExtendedTransports to which it publishes each message. This allows you to have multiple targets for the flows, such as sysout and cloudwatch logs, helpful for troubleshooting.

The ExtendedTransport interface is nearly identical to the original Transport interface, except that it's Publish method takes in a list of ExtendedFlowMessages. The ExtendedWrapper takes care of converting the FlowMessages produced by goflow into these ExtendedFlowMessages before sending them to each of the configured ExtendedTransports.

The ExtendedWrapper also can be configured with a list of Enrichers, which are modules that add additional metadata to each flow message, such as GeoIP information or reverse DNS lookup info.

goflow-addons's People

Contributors

sheacloud avatar

Stargazers

 avatar  avatar

Watchers

 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.