Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Amon: Lightweight, Open Source App and Server Monitoring

DZone's Guide to

Amon: Lightweight, Open Source App and Server Monitoring

· Performance Zone ·
Free Resource

Sensu is an open source monitoring event pipeline. Try it today.

Amon (named after the Egyptian Sun god or a demon) is a self-hosted toolkit that allows you to monitor web apps with a small footprint (Amon can fit in 20MB of RAM) and all the information kept in one place.  It's a nice open source tool (with good docs) that can run on the smallest VPS you have.  If you don't trust similar cloud solutions (some of which are not free) and you want to be in full control of your logs and performance history, then Amon is probably worth a look, especially for you DevOps folks.

Here's what it can do:

  • Monitoring (CPU, Loadavg, Disk space, Network traffic, Memory)
  • Error Tracking
  • App Logging


Amon consists of three main components:

  1. Collector daemon - Amon’s server and process monitoring is a thin wrapper on top of Unix tools to record metrics and store them in the MongoDB backend.
  2. JSON API - Shipping with language bindings for Python, Ruby, and JavaScript, Amon’s JSON API makes it easy to record your own application events.
  3. Web interface - The web app provides a friendly user interface for viewing logs and visualizing data in charts.  [Written in Python]


Support tested for:

  • Ubuntu
  • Debian
  • CentOS
  • Fedora,
  • Amazon Linux AMI
  • Mac OS X

Amon is language and framework agnostic, but if you if you want to log exceptions and data from your web applications you have to install one of Amon's pre-built clients for Python. Ruby, PHP, and Javascript. You can easily write a client for another language with this guide.

Get over to the Amon Homepage to download it.

Sensu: workflow automation for monitoring. Learn more—download the whitepaper.

Topics:

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}