项目作者: SierraSoftworks

项目描述 :
Heimdall is a distributed availability check platform built with an emphasis on performance, flexibility and security.
高级语言: Go
项目地址: git://github.com/SierraSoftworks/heimdall.git
创建时间: 2017-02-25T21:31:47Z
项目社区:https://github.com/SierraSoftworks/heimdall

开源协议:Other

下载


<<<<<<< HEAD

Heimdall " class="reference-link"> Heimdall Build Status

Heimdall is a monitoring service built on some of the same design
principles as other distributed monitoring tools like Sensu but with
a strong emphasis on security and performance.

Heimdall accomplishes this by providing support for message authentication,
a strict security model and a secure-by-default design approach. In addition
to this, it is developed on Go, is automatically tested to ensure compatibility
and quality and has been built to enable easy deployment anywhere.

Features

  • Reliable Communication over configurable transport layers, everything from
    Redis to NATS, with the option to use multiple transports if required.
  • Simple API making it trivially easy to integrate with Heimdall, whether you’re
    building a dashboard or an automated remediation tool.
  • Easy to Deploy whether you’re using Docker or VMs thanks to its single executable.
  • Aggregated Data to simplify reporting, enable complex grouping and drive
    realtime dashboards.
  • Client Driven Configuration, since what you’re monitoring matters more than
    your monitoring tool.

Background

Monitoring of large scale distributed systems tends to be rather challenging to get
right. We don’t believe it should be, so we’ve built Heimdall from the ground up with
the goal of making it trivially easy to monitor everything from containers to bare
metal servers, on any platform, in any network environment.

To accomplish this, Heimdall builds on the shoulders of proven, high performance,
communication services like NATS and Redis to ensure reliable and timely
delivery of information from your services to the Heimdall servers for processing.

With Heimdall, we also believe you shouldn’t need to compromise on security in order
to monitor your systems effectively. Our security model ensures that a compromised
machine is incapable of influencing the behaviour of other machines in your Heimdall
cluster; while the ability to run Heimdall behind your firewall prevents your information
from leaving your hands.

Design

Heimdall is composed of four components: the client, transport, server and datastore.
Each has a dedicated and well-defined purpose, keeping their implementations simple and
easy to audit, while also reducing the scope for failure. Heimdall’s job is to provide
monitoring, so we’ve delegated the job of safely transporting events and storing data to
proven, existing, services.

We also believe that you shouldn’t be tied to our technology choices and that what works
for one team might not suit another. Heimdall’s transports and datastores, as a result,
are built to enable easy switching between a number of different options. Choose the one
you’re most familiar with, or which suits your requirements best and trust Heimdall to do
the rest.

Configuration

Server

  1. ---
  2. # Listen on :80 for Heimdall's REST API
  3. listen: ":80"
  4. transports:
  5. # Define a NATS transport for the server to listen to
  6. # using the heimdall queue prefix.
  7. - driver: nats
  8. url: nats://localhost:4222/heimdall

Client

  1. ---
  2. # Declare the details of our client including its name
  3. # and tags. Names should be unique and are used for grouping.
  4. client:
  5. # You can use $ENV variables in your client's name if you wish
  6. name: $HOSTNAME
  7. tags:
  8. role: webserver
  9. transports:
  10. # Tell the client to submit events on a NATS transport
  11. # using the heimdall queue prefix.
  12. - driver: nats
  13. # We can use $ENV variables in our URLs
  14. url: nats://$USER:$PASS@localhost:4222/heimdall
  15. checks:
  16. # Define an Apache healthcheck
  17. - name: apache-healthcheck
  18. # You can use $ENV variables in your commands
  19. command: curl -D - http://localhost:$APACHE_PORT/healthz
  20. # Run the check every 30 seconds
  21. interval: 30s
  22. # Give the check 3 seconds to run before failing
  23. timeout: 3s
  24. aggregates:
  25. # Aggregate the check's results into the "webservers" group
  26. - webservers

Redis: https://redis.io/

Heimdall " class="reference-link"> Heimdall Build Status

Heimdall is a monitoring service built on some of the same design
principles as other distributed monitoring tools like Sensu but with
a strong emphasis on security and performance.

Heimdall accomplishes this by providing support for message authentication,
a strict security model and a secure-by-default design approach. In addition
to this, it is developed on Go, is automatically tested to ensure compatibility
and quality and has been built to enable easy deployment anywhere.

Features

  • Reliable Communication over configurable transport layers, everything from
    Redis to NATS, with the option to use multiple transports if required.
  • Simple API making it trivially easy to integrate with Heimdall, whether you’re
    building a dashboard or an automated remediation tool.
  • Easy to Deploy whether you’re using Docker or VMs thanks to its single executable.
  • Aggregated Data to simplify reporting, enable complex grouping and drive
    realtime dashboards.
  • Client Driven Configuration, since what you’re monitoring matters more than
    your monitoring tool.

Background

Monitoring of large scale distributed systems tends to be rather challenging to get
right. We don’t believe it should be, so we’ve built Heimdall from the ground up with
the goal of making it trivially easy to monitor everything from containers to bare
metal servers, on any platform, in any network environment.

To accomplish this, Heimdall builds on the shoulders of proven, high performance,
communication services like NATS and Redis to ensure reliable and timely
delivery of information from your services to the Heimdall servers for processing.

With Heimdall, we also believe you shouldn’t need to compromise on security in order
to monitor your systems effectively. Our security model ensures that a compromised
machine is incapable of influencing the behaviour of other machines in your Heimdall
cluster; while the ability to run Heimdall behind your firewall prevents your information
from leaving your hands.

Design

Heimdall is composed of four components: the client, transport, server and datastore.
Each has a dedicated and well-defined purpose, keeping their implementations simple and
easy to audit, while also reducing the scope for failure. Heimdall’s job is to provide
monitoring, so we’ve delegated the job of safely transporting events and storing data to
proven, existing, services.

We also believe that you shouldn’t be tied to our technology choices and that what works
for one team might not suit another. Heimdall’s transports and datastores, as a result,
are built to enable easy switching between a number of different options. Choose the one
you’re most familiar with, or which suits your requirements best and trust Heimdall to do
the rest.

Configuration

Server

  1. ---
  2. # Listen on :80 for Heimdall's REST API
  3. listen: ":80"
  4. transports:
  5. # Define a NATS transport for the server to listen to
  6. # using the heimdall queue prefix.
  7. - driver: nats
  8. url: nats://localhost:4222/heimdall

Client

  1. ---
  2. # Declare the details of our client including its name
  3. # and tags. Names should be unique and are used for grouping.
  4. client:
  5. # You can use $ENV variables in your client's name if you wish
  6. name: $HOSTNAME
  7. tags:
  8. role: webserver
  9. transports:
  10. # Tell the client to submit events on a NATS transport
  11. # using the heimdall queue prefix.
  12. - driver: nats
  13. # We can use $ENV variables in our URLs
  14. url: nats://$USER:$PASS@localhost:4222/heimdall
  15. checks:
  16. # Define an Apache healthcheck
  17. - name: apache-healthcheck
  18. # You can use $ENV variables in your commands
  19. command: curl -D - http://localhost:$APACHE_PORT/healthz
  20. # Run the check every 30 seconds
  21. interval: 30s
  22. # Give the check 3 seconds to run before failing
  23. timeout: 3s
  24. aggregates:
  25. # Aggregate the check's results into the "webservers" group
  26. - webservers

master