Supervisor 与 Superlance 简介
Supervisor 是一款用 Python 编写的进程管理工具,支持多种 UNIX-like 操作系统。它不仅能启动、守护和管理大量进程,还提供事件机制与 XML-RPC API,方便扩展功能。
Superlance 则是基于 Supervisor 事件机制实现的一系列命令行工具集。它弥补了 Supervisor 原生功能的不足,提供了内存监控、HTTP 接口检测、邮件和短信通知等实用特性。同样使用 Python 编写。
安装 Superlance
作为 Python 包,Superlance 安装非常简单。推荐使用 pip:
pip install superlance
也可以通过 easy_install 或从 GitHub 源码编译安装:
python setup.py install
安装完成后,执行 httpok 命令验证是否成功。若命令存在,说明环境已就绪。
Superlance 核心组件
Superlance 包含多个命令行工具,常用如下:
- httpok:定时对 HTTP 接口发起 GET 请求,根据响应状态判定进程健康度,异常时自动重启。
- crashmail:进程意外退出时发送邮件告警。
- memmon:监控进程内存占用,超过阈值时发送告警。
- crashmailbatch:类似 crashmail,但会将一段时间内的告警合并发送,避免邮件轰炸。
- fatalmailbatch:针对多次启动失败进入 FATAL 状态的进程进行合并报警。
- crsms:通过邮件网关发送短信告警。
实战配置
在正式使用前,需确保系统安装了 sendmail 以支持邮件发送:
sudo apt-get install sendmail
1. 进程崩溃邮件告警 (crashmail)
我们需要配置一个 Supervisor 监听器来捕获进程退出的事件。以下是一个示例配置:
[program:top]
command=top -b
process_name=%(program_name)s
numprocs=1
directory=/tmp
umask=022
priority=999
autostart=false
autorestart=false
startsecs=10
startretries=3
exitcodes=0,2
=TERM
=
=
=crashmail -p top -m [email protected]
=PROCESS_STATE_EXITED
=


