Super Simple Server Monitoring Tool
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs/img
src/easy_alert
tests
.gitignore
.travis.yml
LICENSE
Makefile
README.rst
setup.py

README.rst

easy-alert

Super Simple Server Monitoring Tool.

PyPI version Build Status Coverage Status License 'Stories in Ready'

Features

  • Check various types of status, and then send notifications.

https://raw.githubusercontent.com/mogproject/easy-alert/master/docs/img/overview.png

Dependencies

  • Python >= 2.6
  • pyyaml
  • paramiko (for ssh watcher)
  • /bin/ps (for process watcher)
  • /usr/bin/aws (aws-cli for SES notifier)

Installation

  • pip command may need sudo
Operation Command
Install pip install easy-alert
Upgrade pip install --upgrade easy-alert
Uninstall pip uninstall easy-alert
  • Check the installed version: easy-alert --version
  • Write your configuration to the file /etc/easy-alert/easy-alert.yml.

See an example below.

Configuration Example

/etc/easy-alert/easy-alert.yml:

---
watchers:
  process:
    - { name: syslogd, error: "=1", regexp: "^/usr/sbin/syslogd" }
    - { name: awesome batch, error: "<=3", warn: "<=2", regexp: "^/usr/local/bin/awesome arg1 arg2" }
  ssh:
    - { dynamic: "aws ec2 describe-instances --output text --query 'sort_by(Reservations[].Instances[?not_null(Tags[?Key==`Name`].Value)][].[PrivateIpAddress,Tags[?Key==`Name`].Value|[0]],&[1])'", user: ec2-user, key: ~/.ssh/your.key.pem }
    - { name: web-1, host: xxx.xxx.xxx.xxx, user: ec2-user, key: ~/.ssh/your.key.pem }
    - { name: web-2, host: yyy.example.com, user: ec2-user, key: ~/.ssh/your.key.pem }

notifiers:
  email:
    group_id: awesome
    from_address: foo@example.com
    to_address_list: bar@example.com,baz@example.com
    smtp_server: mail.example.com
    smtp_port: 587

Quickstart Guide

(todo)

easy-alert process --check
easy-alert process
easy-alert ssh --check
easy-alert ssh