Giter Club home page Giter Club logo

sensu-grid's Introduction

sensu-grid

Flask application to connect to a list of sensu-api servers and displays a grid of OK, WARNING, CRITICAL, DOWN and ACK'd alerts.

features

  • overview by data centre ( Name, OK, WARN, CRIT, DOWN, ACK )
  • detail view by data centre ( Grid of hosts, color changes based on amount of alerting checks, 1 = yellow, > 1 = red, down = purple )
  • Events view by data centre (Grid of events which are currently alerting/warning/unknown)
  • filter by hosts' subscription/s ( Only shows matchin hosts' check results in overview and detail view)

screenshots

Overview (DCs)

sensu-grid overview screenshot

More screenshots

faq

how can I filter by more than 1 value?

Amend the URL and add all the filters together as a comma-separated list, e.g.: http://localhost:5000/filtered/aaa,bbb,ccc,ddd

what do the filters filter by ?

They filter based on the hosts' subscriptions, except in the Events view where they filter on all properties of the check and the host.

docker

requirements

  • docker (obviously)
  • boot2docker (if you're on mac/windows)

build / run docker image

docker build -t name/sensu-grid:latest .
docker run -d -p 80:5000 name/sensu-grid:latest

install / setup

if you dont want to use docker

virtualenv

  • Checkout this directory into /opt/sensu-grid

virtualenv .
. bin/activate

requirements

python requirements

Add via pip install or via your package management

  • requests
  • PyYAML
  • Flask
  • argparse
  • gunicorn

install requirements

  • Install all required python libs first:

    
    pip install -r requirements.txt
    
    

app user

  • Create the app user:

    
    useradd -r sensu-grid
    
    

run as a service

supervisord

  • Install supervisord (yum -y install supervisor)
  • Copy the provided config (start-scripts/supervisord.conf) file to /etc/supervisord.conf

upstart

  • Install upstart (yum -y install upstart)
  • Copy the provided upstart config (start-scripts/sensu-grid.conf) file to /etc/init/

configuration

You should copy the conf/config.yaml.sample file to conf/config.yaml and edit as appropriate.

If you use username/password, ensure you set the appropriate permissions - e.g. chmod 640 conf/config.yaml and set the owner to sensu-grid which you'll be using to run this app.

example config

---
dcs:
  -
    name: dev
    url: sensu-dev.domain.local
    port: 4567
    uchiwa: http://sensu-dev.domain.local:3000
  -
    name: stage
    url: sensu-stage.domain.local
    port: 4567
    user: apiuser
    password: apipassword

app:
  refresh: 60
  bg_color: #333333
  # This is a python requests layer timeout, as by default, it does not timeout
  requests_timeout: 10
  logging_level: info
  cache_expire_time: 10

run locally / manually

(this requires you to install all the dependencies)

local dev server

cd <checkout>
/usr/bin/python sensugrid.py

## healthcheck

a healthcheck is available at /healthcheck which returns json formatted text, which you can pipe into python -m json.tool

example:

curl http://localhost:5000/healthcheck | python -m json.tool

sensu-grid's People

Contributors

alex-leonhardt avatar joerayme avatar naemono avatar jonasjonasjona23 avatar

Watchers

James Cloos 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.