zoukankan      html  css  js  c++  java
  • 安装supervisord

    一:简介

    supervisord是一个进程管理工具,提供web页面管理,能对进程进行自动重启等操作。
    优点:
        - 可以将非后台运行程序后台运行
        - 自动监控,重启进程
    缺点:
        - 不能管理后台运行程序
        - 对多进程服务,不能使用kill关闭
    

    二:安装supervisord

    1.pip安装supervisord

    pip install supervisor
    

    2.生成配置文件

    echo_supervisord_conf > /etc/supervisord.conf
    

    如果报错:

    vim /usr/lib/python2.6/site-packages/supervisor-3.3.3-py2.6.egg-info/requires.txt
    # 注销如下内容即可
    #meld3 >= 0.6.5
    

    3.修改配置文件

    [unix_http_server]
    file=/tmp/supervisor.sock   ; the path to the socket file
    
    # 开启web界面
    [inet_http_server]         ; inet (TCP) server disabled by default
    port=mweb07:9001        ; ip_address:port specifier, *:port for all iface
    username=admin         ; default is no username (open server)
    password=123456             ; default is no password (open server)
    
    [supervisord]
    logfile=/tmp/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=/tmp/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:///tmp/supervisor.sock ; use a unix:// URL  for a unix socket
    
    [program:elasticsearch]
    command=/data/elk/elasticsearch/bin/elasticsearch  ; 管理命令,supervisor不支持后太进程
    process_name=%(program_name)s
    user=elk                                 ;进程启动用户
    autostart=true                           ;是否随supervisor启动
    autorestart=true                         ;是否在挂了之后重启,意外关闭后会重启,比如kill掉!
    startretries=3                           ;启动尝试次数
    stderr_logfile=/tmp/tail1.err.log        ;标准输出的位置
    stdout_logfile=/tmp/tail1.out.log        ;标准错误输出的位置
    loglevel=info                            ;日志的级别
    
    
    [program:redis]
    command=/data/elk/redis/src/redis-server /data/elk/redis/redis.conf
    process_name=%(program_name)s
    user=elk
    directory=/data/elk/redi
    

    4.启动关闭
    启动:

    supervisord -c /etc/supervisord.conf
    

    关闭:

    supervisorctl shutdown
    

    管理命令:

    supervisorctl stop program_name  # 停止某一个进程,program_name 为 [program:x] 里的 x
    
    supervisorctl start program_name  # 启动某个进程
    
    supervisorctl restart program_name  # 重启某个进程
    
    supervisorctl stop groupworker:  # 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)
    
    supervisorctl stop groupworker:name1  # 结束 groupworker:name1 这个进程 (start,restart 同理)
    
    supervisorctl stop all  # 停止全部进程,注:start、restartUnlinking stale socket /tmp/supervisor.sock
    、stop 都不会载入最新的配置文件
    
    supervisorctl reload  # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
    
    supervisorctl update  # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
    

    5.效果展示

    三:安装supervisord-monitor

    • supervisord-monitor是对supervisord的一个集中化管理工具,可以对supervisor统一化操作

    1.安装

    # 下载
    git clone https://github.com/mlazarov/supervisord-monitor.git
    
    # 生成配置文件
    cd supervisord-monitor/
    cp application/config/supervisor.php.example application/config/supervisor.php
    

    2.修改配置文件,添加supervisord主机
    mweb08 展示名 url 服务器地址 port 端口

    $config['supervisor_servers'] = array(
            'mweb08' => array(
                    'url' => 'http://mweb08/RPC2',
                    'port' => '9001',
                    'username' => 'admin',
                    'password' => '123456'
            ),
            'mweb07' => array(
                    'url' => 'http://mweb07/RPC2',
                    'port' => '9001',
                    'username' => 'admin',
                    'password' => '123456'
            ),
    );
    

    3.添加nginx对supervisord-monitor的支持

        server {
           listen 82;
           server_name  localhost;
           set $web_root /data/web/supervisord-monitor/public_html;
           root $web_root;
           index  index.php index.html index.htm;
    
           location / {
                try_files $uri $uri/ /index.php;
           }
    
           location ~ .php$ {
               fastcgi_pass   127.0.0.1:9000;
               fastcgi_index  index.php;
               include        fastcgi_params;
               fastcgi_param  SCRIPT_FILENAME $web_root$fastcgi_script_name;
               fastcgi_param  SCHEME $scheme;
            }
    
         }
    

    5.展示,重启nginx后,访问即可

  • 相关阅读:
    1094. Car Pooling
    121. Best Time to Buy and Sell Stock
    58. Length of Last Word
    510. Inorder Successor in BST II
    198. House Robber
    57. Insert Interval
    15. 3Sum java solutions
    79. Word Search java solutions
    80. Remove Duplicates from Sorted Array II java solutions
    34. Search for a Range java solutions
  • 原文地址:https://www.cnblogs.com/GXLo/p/7661137.html
Copyright © 2011-2022 走看看