superlance 命令

superlance介绍

superlance就是基于supervisor的事件机制实现的一系列命令行的工具集,它实现了许多supervisor本身没有实现的实用的进程监控和管理的特性,包括内存监控,http接口监控,邮件和短信通知机制等。同样的,superlance本身也是使用python编写的


superlance命令

superlance是一系列命令行工具的集合,其包括以下这些命令:

httpok

通过定时对一个HTTP接口进行GET请求,根据请求是否成功来判定一个进程是否处于正常状态,如果不正常则对进程进行重启。

crashmail

当一个进程意外退出时,发送邮件告警。

memmon

当一个进程的内存占用超过了设定阈值时,发送邮件告警。

crashmailbatch

类似于crashmail的告警,但是一段时间内的邮件将会被合成起来发送,以避免邮件轰炸。

fatalmailbatch

当一个进程没有成功启动多次后会进入FATAL状态,此时发送邮件告警。与crashmailbatch一样会进行合成报警。

crashsms

当一个进程意外退出时发送短信告警,这个短信也是通过email网关来发送的

1.当supervisord启动的时候,如果我们的listener配置为autostart=true的话,listener就会作为supervisor的子进程被启动。2.listener被启动之后,会向自己的stdout写一个"READY"的消息,此时父进程也就是supervisord读取到这条消息后,会认为listener处于就绪状态。3.listener处于就绪状态后,当supervisord产生的event在listener的配置的可接受的events中时,supervisord就会把该event发送给该listener。4.listener接收到event后,我们就可以根据event的head,body里面的数据,做一系列的处理了。我们根据event的内容,判断,提取,报警等等操作。5.该干的活都干完之后,listener需要向自己的stdout写一个消息"RESULTnOK",supervisord接受到这条消息后。就知道listener处理event完毕了。


Supervisord支持的Event

PROCESS_STATE    进程状态发生改变

PROCESS_STATE_STARTING  进程状态从其他状态转换为正在启动(Supervisord的配置项中有startsecs配置项, 是指程序启动时需要程序至少稳定运行x秒才认为程序运行正常,在这x秒中程序状态为正在启动)

PROCESS_STATE_RUNNING   进程状态由正在启动转换为正在运行

PROCESS_STATE_BACKOFF   进程状态由正在启动转换为失败

PROCESS_STATE_STOPPING   进程状态由正在运行转换为正在停止

PROCESS_STATE_EXITED   进程状态由正在运行转换为退出

PROCESS_STATE_STOPPED   进程状态由正在停止转换为已经停止(exited和stopped的区别是exited是程序自行退出,而stopped为人为控制其退出)

PROCESS_STATE_FATAL   进程状态由正在运行转换为失败

PROCESS_STATE_UNKNOWN   未知的进程状态

REMOTE_COMMUNICATION   使用Supervisord的RPC接口与Supervisord进行通信

PROCESS_LOG   进程产生日志输出,包括标准输出和标准错误输出

PROCESS_LOG_STDOUT   进程产生标准输出

PROCESS_LOG_STDERR   进程产生标准错误输出

PROCESS_COMMUNICATION   进程的日志输出包含 和

PROCESS_COMMUNICATION_STDOUT   进程的标准输出包含 和

PROCESS_COMMUNICATION_STDERR   进程的标准错误输出包含 和

SUPERVISOR_STATE_CHANGE_RUNNING Supervisord  启动

SUPERVISOR_STATE_CHANGE_STOPPING Supervisord  停止

TICK_5   每隔5秒触发

TICK_60   每隔60秒触发

TICK_3600   每隔3600触发

PROCESS_GROUP   Supervisord的进程组发生变化

PROCESS_GROUP_ADDED   新增了Supervisord的进程组

PROCESS_GROUP_REMOVED   删除了Supervisord的进程组

安装superlance

也是python程序,直接pip 安装


pip install superlance


既然有了上面的event特性,下面就配置一个发邮件报警,当nginx莫名其妙的重启后 就立刻发邮件通知。

这里在说一下,centos下如何用命令行直接发邮件的,我一直都没有用过默认 自带的,也不好用。推荐一个比较好用的。

sendEmail,用perl语言写好的 也都封装好了,只需要提供发件人 邮箱账号 密码 smtp服务 收件人 就可以了。

先配置一下


wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gztar zxvf sendEmail-v1.56.tar.gz

cp sendEmail-v1.56/sendEmail /usr/bin/sendemail


ok,发邮件测试一下,这里我把邮箱信息隐藏一下了.....


sendemail -f 发件人邮箱 -t 收件人邮箱 -s 发件人邮箱smtp服务器 -u"sendEmail"-m"haha"-xu 发件人邮箱 -xp 发件人邮箱密码

-f 发件人-t 收件人-s 发件人smtp服务器-u 主题-m 内容-xu 发件人用户名-xp 发件人密码


我这里用的163发的 qq邮箱收件的,测试没啥问题的。




ok 现在要做的就是配置一个supervisor配置文件,来一直监听进程的状态变化


[root@test /]# cat /etc/supervisor/config.d/mail.conf

[eventlistener:crashmail-exited]

command=crashmail -a -s "/usr/bin/sendemail -f xxxxxx@163.com -t xxxxxx@qq.com -s smtp.163.com -u 'nginx' -xu xxxxxxx@163.com -xp xxxxxxxx -m" -m xxxxxxxx@qq.com

events=PROCESS_STATE_EXITED

redirect_stderr=false

添加好一个进程配置文件后,supervisorctl reload 重启一下



已经是两个进程在running了

下面测试一下 kill 掉nginx进程


ps aux | grep nginx

kill -91765917660



然后看一下supervisor




此时 nginx pid已经变化,说明kill之后 又被拉起来了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容