Giter VIP home page Giter VIP logo

glamor's Introduction

Glamor

Glamor (Sindarin for "echo") is a daemon for monitoring hosts via ICMP echo request (ping)

Why?

I needed a tool at work to monitor one host via ICMP echo request and send a notification if the host is down. I did not find a tool, which I liked, right away and hence - as I am learning Go - I just wrote a tool myself. Glamor is intended to monitor our Icinga host therefore I could not simply use Nagios/Icinga/... itself.

How does Glamor work?

There is (currently) no ICMP implementation in Go, so the system's ping command is used instead. If a threshold of packet loss is reached, a simple mail notification is sent via SMTP. The notification is sent only once per host down status, which will reset after a given amount of successful ICMP echo replies.

How do I install and use Glamor?

As Glamor is written in Go you have to install Go first. Your distribution will most definitely have some packages or you can be brave and just install it yourself. Have a look at the official documentation. Good luck!

To fetch and install Glamor just use the following command:

go get github.com/zimmski/glamor

After that you can compile Glamor into the binary $GOBIN/glamor:

go install github.com/zimmski/glamor

The following CLI arguments can be used:

      --config=                       INI config file
      --config-write=                 Write all arguments to an INI config file and exit
      --host=                         A host to ping
      --interval=                     Ping interval in seconds (60)
      --max-down=                     How many pings must fail (in a row) before the host status is down (5)
      --max-up=                       How many pings must succeed (in a row) before the host status is up again (20)
      --ping-packet-size=             Packet size of one ping. Minimum is 64 bytes maximum is 65535 bytes (64)
      --smtp=                         The SMTP server + port for sending report mails
      --smtp-from=                    From-mail address
      --smtp-skip-certificate-verify  Do not verify the SMTP certificate
      --smtp-tls                      Use TLS for the SMTP connection
      --smtp-to=                      A To-mail address
      --verbose                       Do verbose output
      --version                       Print the version of this program

  -h, --help                          Show this help message

Only the --host argument is required.

Some example arguments for Glamor:

  • Monitor github.com with verbose output

    glamor --host github.com --verbose
  • Monitor github.com and google.com

    glamor --host github.com --host google.com
  • Monitor github.com every second with verbose output

    glamor --host github.com --verbose --interval 1
  • Monitor github.com and send a mail if it is down

    glamor --host github.com --smtp localhost:25 --smtp-from [email protected] --smtp-to [email protected]
  • Monitor github.com and send a mail via TLS connection but ignore “invalid” certificates

    glamor --host github.com --smtp localhost:25 --smtp-from [email protected] --smtp-to [email protected] --smtp-tls --smtp-skip-certificate-verify

INI config file

All Glamor arguments can be definied with an INI config file specified through the --config CLI argument. An INI config file could for example look like this.

Host = github.com
Interval = 60
MaxDown = 5
MaxUp = 20
PingPacketSize = 64

SMTP = localhost:25
SMTPFrom = [email protected]
SMTPTo = [email protected]
SMTPTLS = true
SMTPSkipCertificateVerify = true

Verbose = true

Arguments defined in an INI config file are overwritten by CLI arguments.

Can I make some feature requests?

Always! As long as they are plain and simple and not degenerate into a full blown monitoring tool.

glamor's People

Contributors

zimmski 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.