网站首页 > 技术教程 正文
一:介绍
superlance介绍
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的进程组
pip install superlance
二:案例介绍
#案例
1)supervisord 管理监控脚本 monitor.sh ,后台运行
2)监控脚本,扫描监控,业务进程状态,
cat /etc/supervisord.d/listener.conf
[eventlistener:nginx-exited]
command=/bin/bash /tmp/monitor.sh
events=PROCESS_STATE_EXITED
redirect_stderr=false
stdout_logfile = /tmp/listener.stdout.log
stderr_logfile = /tmp/listener.stderr.log
#/tmp/monitor.sh
#!/bin/bash
while true
do
sleep 1
isok="`ps -ef|grep -v group |grep group.sh|wc -l`"
if [ $isok -lt 1 ]
then
echo "`date`" >>/tmp/alert.log
#curl post
#send alert
/bin/bash /tmp/group.sh
fi
done
#group.sh
#!/bin/bash
while true
do
sleep 30
done
#mon.sh 监控脚本
#!/usr/bin/env bash
while true
do
exist=`ps -ef | grep 'httpldlog' | grep -v grep | wc -l`
if [ $exist -eq 0 ]
then
echo `date '+%F %T not exist'`
./httpldlog>/dev/null 2>&1 &
else
sleep 10s
fi
done
三:supervisor安装部署
使用技巧
apt-get install supervisor
/etc/supervisor/conf.d
cat /etc/supervisor/conf.d/filebeat.conf
[program:filebeat]
directory=/data/filebeat
command=/data/filebeat/filebeat -c /data/filebeat/filebeat.yml
;user=ledou00
autorestart=true
redirect_stderr=true
stdout_logfile=/data/log/supervisord/filebeat.log
mkdir -p /data/log/supervisord
chmod -R 777 /data/log/supervisord*
#nginx
supervisorctl update
supervisorctl status
supervisorctl restart nginxsvr
启动 supervisor 服务
/etc/init.d/supervisor start
服务名:filebeat
查看单个任务状态: supervisorctl status 服务名
supervisorctl start 服务名
supervisorctl stop 服务名
supervisorctl restart 服务名
supervisorctl update
#
supervisorctl update
filebeat: added process group
supervisorctl start filebeat
filebeat: started
#添加模块
守护进程 php /data/wwwroot/fanbook-service-http-api/cmd/LogCenterController.php consume
1.进入目录 /etc/supervisor/conf.d
2.编辑配置文件 vi LogCenterController.conf (user 指定用户运行程序)
[program:LogCenterController]
directory=/data/wwwroot/fanbook-service-http-api/cmd
command=php /data/wwwroot/fanbook-service-http-api/cmd/LogCenterController.php consume
user=ubuntu
autorestart=true
redirect_stderr=true
stdout_logfile=/data/log/supervisord/LogCenterController.log
4.更新服务,默认是所有
supervisorctl update
filebeat: stopped
filebeat: updated process group
LogCenterController: added process group
更新指定服务
supervisorctl update LogCenterController
LogCenterController: stopped
LogCenterController: updated process group
5.检查状态
supervisorctl status
supervisorctl status LogCenterController
6.启动服务
supervisorctl start LogCenterController
#Supervisor只能管理非daemon的进程,也就是说Supervisor不能管理守护进程
#nginx 守护提示端口占用
#关闭 daemon off
cat /etc/supervisor/conf.d/nginxsvr.conf
[program:nginxsvr]
directory=/usr/local/nginx
;command=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
command=/usr/local/nginx/sbin/nginx -g 'daemon off;'
;user=ledou00
autorestart=true
redirect_stderr=true
stdout_logfile=/data/log/supervisord/nginxsvr.log
猜你喜欢
- 2024-10-16 LNMP环境搭建-nginx(lnmp搭建后怎么做网站)
- 2024-10-16 进阶必备 | Linux系统管理工具 supervisor 详解,代码齐全可复制
- 2024-10-16 K8S 之 Ingress-nginx 源码解析(k8s nginx配置)
- 2024-10-16 编排系统K8S Ingress-nginx源码解析
- 2024-10-16 让博客Docker化,轻松上手Docker(博客登录界面)
- 2024-10-16 「这些都不知道你就是个弟弟」Docker常用命令
- 2024-10-16 容器技术:Podman 与 RESTful 接口
- 2024-10-16 Docker:网络模式详解(docker五种网络模式)
- 2024-10-16 k8s日志收集 多pod挂载不同目录方案
- 2024-10-16 Docker部署前端Web项目(docker部署webdav)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)