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多线程JUC
			
1. volatile 关键字 多线程访问的时候,一个比较严重的问题就是内存不可见,其实在内存访问的时候每一个线程都有一个自己的缓冲区,每次在做修改的时候都是从主存取到数据,然后放到自己的缓冲区中,在 ...
 - 【Python】 命名空间与LEGB规则
			
命名空间与LEGB规则 之前隐隐约约提到过一些关于Python赋值语句的特殊性的问题,这个问题的根源就在于Python中的变量的命名空间机制和之前熟悉的C也好java也好都不太一样. ■ 命名空间 所 ...
 - Angular开发实践(六):服务端渲染
			
Angular Universal Angular在服务端渲染方面提供一套前后端同构解决方案,它就是 Angular Universal(统一平台),一项在服务端运行 Angular 应用的技术. 标 ...
 - opencv配置
			
1.安装opecv库 从官网http://opencv.org/下载OpenCV windows版 运行之后 2.配置环境变量 64位系统,可以将32位和64位两个都添加上,免得以后编译不同程序再来配 ...
 - 在CentOS7.1上安装Gitlab碰到的问题及解决方法
			
一 前言 关于在CentOS7上安装Gitlab, 官方文档已经很详细了,步骤大家按照官方的安装文档一步一步安装即可, 这里就不在累述.官方安装文档地址: https://about.gitlab. ...
 - Java作业-集合
			
1. 本周学习总结 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { r ...
 - 学号:201621123032 《Java程序设计》第6周学习总结
			
1:本周学习总结 1.1: 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图或相关笔记,对面向对象思想进行一个总结 2:书面作业 2.1: clone方法 2.1.1 ...
 - 简单的C语言编译器--词法分析器
			
1. 定义词法单元Tag 首先要将可能出现的词进行分类,可以有不同的分类方式.如多符一类:将所有逗号.分号.括号等都归为一类,或者一符一类,将一个符号归为一类.我这里采用的是一符一类的方式.C代码 ...
 - verilog学习笔记(1)_两个小module
			
第一个小module-ex_module module ex_module( input wire sclk,//声明模块的时候input变量一定是wire变量 input wire rst_n,// ...
 - NetFPGA-1G-CML从零开始环境配置
			
NetFPGA-1G-CML从零开始环境配置 前言 偶得一块NetFPGA-1G-CML,跟着github对NetFPGA-1G-CML的入门指南,一步步把配置环境终于搭建起来,下面重新复现一下此过程 ...