分布式监控系统:Watchy

jopen 10年前

Watchy 是一个分布式的系统,用于监控应用程序和服务器。该系统非常简单和易于管理。Watchy 提供一个分布式的架构和每个服务器之间守护进程的通讯,通过 UDP 获取不懂服务器上的数据并在同一个面板上显示。

s1.png

工作原理

Watchy 使用应用/事件驱动模型,如下图所示:

s2.png

而且整个系统是脚本化的,可通过 Python 或者 C/C++ 来进行操作。但首先要启动服务器:

$ /usr/local/bin/watchy.py --help  Usage: watchy.py [options]Options:    -h, --help            show this help message and exit    -v, --version         Print version    -c CONFIG, --config=CONFIG                          Config file location    -F, --fork            Fork as daemon

然后通过下列命令运行服务器

$ /usr/local/bin/watchy.py -c /etc/watchy/example-watchy.cfg   WATCHY INFO - Starting StatsAggregator on 0.0.0.0:7878  WATCHY INFO - Starting Async Backend handler  WATCHY INFO - WSGIServer:[gevent] starting http://0.0.0.0:8787/  ...

现在可以启动监控成员

>>> import pywatchy  # hostname and port of watchy server  >>> daemon = pywatchy.WatchyDaemon ('localhost', 7878)   # Creates or attaches to existing daemon on the server                                                                                                                                                                >>> daemon.watchHost ('hostname')  # tell the daemon to watch the host server for statistics and post under specified key ('hostname')

启动和停止进程:

>>> daemon.watchPid ('watchyserver', 14293) # watch the python web app  >>> daemon.postMessage ('test', 'Hello World')  >>> daemon.stopWatchPid (14293) # stop watching in

这些操作都是实时而动态的.

项目主页:http://www.open-open.com/lib/view/home/1405219182034