supervisor安装使用和我踩过的坑
什么是supervisor:
supervisor是一款用python编写的进程管理工具,主要运行于linux系统,不支持windows系统,目前还不能运行于python3下。
step1:安装supervisor
yum -y install python-pip
pip install supervisor==3.3.4
step2:生成配置文件
echo_supervisord_conf > /etc/supervisord.conf
这条命令会为我们自动生成配置文件 ,我一般用自己改好的配置文件,如下:
[root@ec2-54-218-126-221 ~]# cat /etc/supervisord.conf [unix_http_server] file=/var/run/supervisor.sock ; the path to the socket file [supervisord] logfile=/data/logs/supervisor/supervisord.log ; main log file; default $CWD/supervisord.log logfile_maxbytes=50MB ; max main logfile bytes b4 rotation; default 50MB logfile_backups=10 ; # of main logfile backups; 0 means none, default 10 loglevel=info ; log level; default info; others: debug,warn,trace pidfile=/var/run/supervisord.pid ; supervisord pidfile; default supervisord.pid nodaemon=false ; start in foreground if true; default false minfds=1024 ; min. avail startup file descriptors; default 1024 minprocs=200 ; min. avail process descriptors;default 200 [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; 如果这里的路径是/tmp/...应该改成/var/run/..因为系统默认定期对/tmp下文件进行删除,supervisor会出错的。 [include] files = /etc/supervisor/conf.d/*.conf ;我一般把每个要管理的进程单独写成一个配置文件,放在此目录中
注意:注意我标红的那一行,默认生成的serverurl=unix路径应该在/tmp下,这时应该手动修改它。
step3:编写sysV启动文件
#!/bin/bash
# chkconfig: 2345 80 80
. /etc/init.d/functions
DAEMON=/usr/bin/supervisord
PIDFILE=/var/run/supervisord.pid
[ ! -f $DAEMON ] && DAEMON=/usr/local/bin/supervisord
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
start() {
echo -n "Starting supervisord: "
ulimit -n 65536
daemon --pidfile $PIDFILE $DAEMON --pidfile $PIDFILE -c /etc/supervisord.conf
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/supervisord
return $RETVAL
}
stop() {
echo -n "Shutting down supervisord: "
echo
killproc -p $PIDFILE supervisord
echo
rm -f /var/lock/subsys/supervisord
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status supervisord
;;
restart)
stop
start
;;
*)
echo "Usage: {start|stop|status|restart}"
exit 1
;;
esac
exit $?
然后执行/etc/init.d/supervisord start命令就可以启动了。
step4:实战之管理promethues进程
prometheus是一个监控工具,官方说启动方法是这样子的:./prometheus --config.file=prometheus.yml 显然在生产环境中我们应该使用sysV脚本或使用supervisor来管理它。
mkdir -p /etc/supervisor/conf.d/ cd /etc/supervisor/conf.d/ touch prometheus.conf
prometheus.conf的内容为:
[program:prometheus] command=/data/prometheus/prometheus --config.file=/data/prometheus/prometheus.yml directory=/data/prometheus user=root numprocs=1 numprocs_start=1 process_name=%(program_name)s autostart=true autorestart=true exitcodes=0 startretries=10 stopsignal=TERM stopasgroup=true killasgroup=true stopwaitsecs=10 redirect_stderr=false stdout_logfile=/data/logs/supervisor/%(program_name)s.log stdout_logfile_maxbytes=100MB stdout_logfile_backups=50 stderr_logfile=/data/logs/supervisor/%(program_name)s_error.log stderr_logfile_maxbytes=100MB
然后重新加载配置文件:
supervisorctl reread supervisorctl reload
然后看一下prometheus的运行状态:
supervisorctl status prometheus RUNNING pid 12807, uptime 0:01:30
先写到这里,不定时更新。
supervisor安装使用和我踩过的坑的更多相关文章
- CentOS7.2上用KVM安装虚拟机window10踩过的坑
最近两个星期一直在琢磨kvm安装window10操作系统,并且通过桥接模式与外界通信,经历了九九八十一难,终于搞定.下面就记录以下我们在探索的过程中踩过的坑. 安装KVM 1. 系统要求:需要一台可以 ...
- 可视化爬虫Portia安装和部署踩过的坑
背景 Scrapy爬虫的确是好使好用,去过scrapinghub的官网浏览一下,更是赞叹可视化爬虫的犀利.scrapinghub有一系列的产品,开源了大部分项目,Portia负责可视化爬虫的编辑,Sp ...
- 安装Apache所踩的的坑
刚开始接触PHP等一些脚本语言,需要建立一个本地的服务器,变进行安装了Apache.在其中碰到了诸多问题,和大家一一分享一下. 一.刚解压完成后使用cmd面板进入解压完成的apache的bin目录下, ...
- IONIC和Cordova安装、打包踩过的坑
1.问题1:直接执行npm install -g cordova ionic,因为网络原因,执行不成功 解决方案:将npm映射到淘宝服务器:npm install -g cnpm --registry ...
- webpack4.0在Mac下的安装配置及踩到的坑
一.什么是webpack是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源.它做的事情是,分析你的项目结构,找到JavaScript模块以 ...
- Mysql5.7.19压缩版安装步骤及踩过的坑
安装Mysql5.7.19压缩版 一:下载压缩包 1.从MySQL官网下载MySQL Community Server 5.7.19,此版本为免费版. 2.下载完成之后解压缩,打开之后文件夹如下: ...
- 安装Mycat 曾经踩的那些坑
1. INFO | jvm | ----/--/-- --:--:-- | Caused by: io.mycat.config.util.ConfigException: schema TEST d ...
- 最细的eclipse 安装maven踩过的坑
Eclipse安装maven插件踩过的坑 在线安装maven eclipse安装maven插件,在网上有各种各样的方法,博主使用过的也不止一种,但是留下的印象总是时好时不好,同样的方法也不确定那一次能 ...
- 安装mysql的踩坑之旅
近期的一个项目要求用mysql数据库,正好系统重装了,复习下mysql的安装,哪成想是踩了无数坑啊! 要安装首先自然是火速进官网下个安装包(下载地址https://dev.mysql.com/down ...
随机推荐
- 学习JAVA的几大优处
首先:简单:我们都知道Java是目前使用较为广泛的网络编程语言之一.他容易学而且很好用,如果你学习过C++语言,你会觉得C++和 Java很像,因为Java中许多基本语句的语法和C++一样,像常用的循 ...
- 排序算法Java实现(快速排序)
算法描述:对于一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再依次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止. ...
- Day3---------网络基础和DOS命令
一.网络分类 1.地理位置 1).局域网(LAN) 2).城域网(MAN) 3).广域网(WAN) 2.传输介质 1).有线网 2).光纤网 3).无线网 3.层--------设备 传输层----- ...
- 【Python】 迭代器&生成器
迭代器 任何一个类,只要其实现了__iter__方法,就算是一个可迭代对象.可迭代对象的__iter__方法返回的对象是迭代器,迭代器类需要实现next方法.一般来说,实现了__iter__方法的类肯 ...
- 压力测试(webbench、ab、siege)
在本地安装webbench,步骤如下: wget http://www.ha97.com/code/webbench-1.5.tar.gz tar zxvf webbench-1.5.tar.gz m ...
- table 表格的增删和修改
如上图,图片的增删都没有问题:唯一的问题就是我改变下一行的内容时,把上面一行给覆盖了,费了好久,终于找到原因了,直接贴代码: 效果如下:
- 基于node写了个工具,可以在线制作“sorry,为所欲为”的 GIF(开源)
SnailDev.GifMaker 一个生成gif并添加自定义字幕的工具 client 微信小程序 server nodejs + express 欢迎 star&fork 如果您有好的com ...
- 『BUG』Android Studio 64位 始终提示 JVM 启动不了,JDK配置失败,error code -1
前几天 安装了 Android Studio 2.2. 本来一切都好,但是当我修改了 配置文件 studio64.exe.vmoptions 想修改 最大内存(保证运行流畅)后,AS 就再也运行不了了 ...
- 那些在django开发中遇到的坑
1. 关于csrf错误 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或 ...
- 一个CSS简单入门网站
讲的知识简单明了,很实用: http://zh.learnlayout.com/