Giter Club home page Giter Club logo

httpbeat's Introduction

Build Status codecov.io Go Report Card license Github All Releases

Elastic Beats 5.2.1 Golang 1.7.4

Httpbeat

Welcome to Httpbeat.

Httpbeat is a Beat used to call HTTP endpoints. Multiple endpoints can be configured which are polled in a regular interval and the result is shipped to the configured output channel.

Httpbeat is inspired by the Logstash http_poller input filter but doesn't require that the endpoint is reachable by Logstash as Httpbeat pushes the data to Logstash or Elasticsearch. This is often necessary in security restricted network setups, where Logstash is not able to reach all servers. Instead the server to be monitored itself has Httpbeat installed and can send the data or a collector server has Httpbeat installed which is deployed in the secured network environment and can reach all servers to be monitored.

Example use cases are:

Ensure that this folder is at the following location: ${GOPATH}/src/github.com/christiangalsterer

Installation

Download

Pre-compiled binaries for different operating systems are available for download.

Installation

Install the package for your operation system by running the respective package manager or unzipping the package.

Configuration

Adjust the httpbeat.yml configuration file to your needs. You may take httpbeat.full.yml as an example containing all possible configuration values.

Running

In order to start Httpbeat please use the respective startup script, e.g. /usr/bin/httpbeat.sh.

Starting Httbeat as Service

Where supported Httpbeat can be started also using the respetive service scripts, e.g. etc/init.d/httpbeat.

Building and Releasing Httpbeat

Requirements

Build

To build the binary for httpbeat run the command below. This will generate a binary in the same directory with the name httpbeat.

make clean && make

Run

To run httpbeat with debugging output enabled, run:

./httpbeat -c httpbeat.yml -e -d "*"

To run httpbeat in normal mode, run:

./httpbeat -c httpbeat.yml

Test

To test httpbeat, run the following command:

make testsuite

alternatively:

make unit-tests
make system-tests
make integration-tests
make coverage-report

The test coverage is reported in the folder ./build/coverage/

Update

Each beat has a template for the mapping in elasticsearch and a documentation for the fields which is automatically generated based on etc/fields.yml. To generate etc/httpbeat.template.json and etc/httpbeat.asciidoc

make update

Cleanup

To clean httpbeat source code, run the following commands:

make check
make simplify

To clean up the build directory and generated artifacts, run:

make clean

Clone

To clone httpbeat from the git repository, run the following commands:

mkdir -p ${GOPATH}/github.com/christiangalsterer
cd ${GOPATH}/github.com/christiangalsterer
git clone https://github.com/christiangalsterer/httpbeat

For further development, check out the beat developer guide.

Packaging

The beat frameworks provides tools to crosscompile and package your beat for different platforms. This requires docker and vendoring as described above. To build packages of your beat, run the following command:

make package

This will fetch and create all images required for the build process. The hole process to finish can take several minutes.

Releases and Downloads

4.0.1 (WiP) Download

Github Releases (by Release)

Bugfix release containing the following changes:

  • Set correct version in package names and package metadata

4.0.0 (2017-02-19) Download

Github Releases (by Release)

Feature and bugfix release containing the following breaking changes:

  • Renamed configuration parameter urls to hosts. Please update your configuration accordingly.
  • Renamed configuration parameter cron to schedule. Please update your configuration accordingly.
  • Update to beats v5.2.1
  • Fix: Default schedule not working

3.3.0 (2017-02-04) Download

Github Releases (by Release)

Feature release containing the following changes:

  • Update to beats v5.2.0
  • Allow to specify the replacement character for json_dot_mode : replace, default replacement character is _

3.2.0 (2017-01-14) Download

Github Releases (by Release)

Feature and bugfix release containing the following changes:

3.1.1 (2017-01-07) Download

Github Releases (by Release)

Starting with this release pre-compiled binaries for different operating systems are available under the respective tag in the github project.

Bugfix release containing the following changes:

  • Move files into correct place to allow correct bulding with make package
  • Move files into correct place to allow correct bulding with make update
  • Cleanup of documentation

3.1.0 (2016-12-23)

Feature release containing the following changes:

  • Update to beats v5.1.1

3.0.0 (2016-12-18)

Feature release containing the following changes:

Bugfix release containing the following changes:

2.0.0 (2016-11-26)

Feature release containing the following changes:

  • Update to beats v5.0.1

Please note that this release contains the following breaking changes introduced by beats 5.0.X, see also Beats Changelog

  • SSL Configuration
    • rename tls configurations section to ssl
    • rename certificate_key configuration to key.
    • replace tls.insecure with ssl.verification_mode setting.
    • replace tls.min/max_version with ssl.supported_protocols setting requiring full protocol name

1.2.0 (2016-07-19)

Feature release containing the following changes:

  • Update to Go 1.6
  • Update to libbeat 1.2.3
  • Use Glide for dependency management

1.1.0 (2016-04-06)

Feature release containing the following changes:

1.0.1 (2016-02-17)

Bugfix release containing the following changes:

1.0.0 (2015-12-29)

  • Initial release

Configuration

Configuration Options

See here for more information.

Exported Document Types

There is exactly one document type exported:

  • type: httpbeat http request and response information

Exported Fields

See here for a detailed description of all exported fields.

httpbeat type

{
  "_index": "httpbeat-2015.12.05",
  "_type": "httpbeat",
  "_source": {
    "@timestamp": "2015-12-05T11:16:13.070Z",
    "beat": {
      "hostname": "mbp.box",
      "name": "mbp.box"
    },
    "count": 1,
    "fields": {
      "host": "test"
    },
    "request": {
      "url": "http://httpbin.org/headers",
      "method": "get",
      "headers": {
        "Accept": "application/json",
        "Foo": "bar"
      }
    },
    "response": {
      "statusCode": 200,
      "headers": {
        "Access-Control-Allow-Credentials": "true",
        "Access-Control-Allow-Origin": "*",
        "Connection": "keep-alive",
        "Content-Length": "220",
        "Content-Type": "application/json",
        "Date": "Sat, 05 Dec 2015 11:16:13 GMT",
        "Server": "nginx"
      },
      "body": "{\n  \"headers\": {\n    \"Accept\": \"application/json\", \n    \"Accept-Encoding\": \"gzip\", \n    \"Authorization\": \"Basic Zm9vOmJhcg==\", \n    \"Foo\": \"bar\", \n    \"Host\": \"httpbin.org\", \n    \"User-Agent\": \"Go-http-client/1.1\"\n  }\n}\n"
    },
    "type": "httpbeat"
  },
  "fields": {
    "timestamp": [
      1449314173
    ]
  },
  "sort": [
    1449314173
  ]
}

Elasticsearch Template

To apply the Httpbeat template:

curl -XPUT 'http://localhost:9200/_template/httpbeat' [email protected]

Contribution

All sorts of contributions are welcome. Please create a pull request and/or issue.

httpbeat's People

Contributors

andrewkroh avatar christiangalsterer avatar ddrozdov avatar massimosporchia avatar rompic 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.