龙叔Linux:supervisor集群方式-supervisor-monitor

507 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


        我的另一篇文章有介绍linux的进程管理工具supervisor

        《龙叔Linux:进程管理工具—supervisor》

        文章中也讲解了supervisor是可以开启一个http服务,用来在页面对supervisor管理的进程进行管理操作。

        但是如果你有很多个服务器都使用supervisor去管理进程,每个服务器的supervisor都有单独一个管理页面,那在管理上其实是没有那么方便的,要记住所有IP,还要一个个登录上去操作,多少有些麻烦,如果多个supervisor能够形成集群,能够集群管理就好了。

        对于这一点,是有一些工具可以支持supervisor的集群方案的,例如下面五个工具:

    ·Django-Dashvisor
    ·Nodervisor
    ·SupervisorUI
    ·cesi
    ·Supervisord-Monitor

        而本文要将的就是作者认为最简单方便,好用的一个工具:supervisor-monitor

        

1、supervisor自带管理页面

        /etc/supervisord.conf中配置如下,重启supervisor,然后访问 http:IP:9001  就可以了

        这里配置的账号密码  在后面的supervisor-monitor中也会用到

[inet_http_server] 
port=0.0.0.0:9001 
username=admin
password=admin

 2、安装supervisor-monitor

安装包下载地址:GitHub - mlazarov/supervisord-monitor: Supervisord Monitoring Tool

2.1、环境安装

因为supervisor-monitor是PHP语言开发的,所以要安装PHP环境,以及nginx

PHP安装

        yum -y install php-fpm
yum install php-xml.x86_64

nginx安装

        nginx安装,网上文章很多,这里就不过渡描述

2.2、搭建配置

        修改php-fpm配置文件中的用户,保持和nginx用户一致(我这里是www)

        vim /etc/php-fpm.d/www.conf

user = www
group = www

        启动php-fpm

        systemctl start php-fpm.service

        将supervisor-monitor的安装包解压(我这里的目录是/data/supervisor/)

        进入/data/supervisor/supervisord-monitor/application/config目录下,复制配置文件

        cp supervisor.php.example supervisor.php

        修改supervisor.php配置文件(添加集群实例)

        账号密码就是对应supervisor节点上的http服务中配置的账号密码

        修改nginx配置文件,user配置为www(没有用户就 useradd www新增一下)

        并且我们这里给supervisor配置一个单独的子配置文件conf.d/supervisor.conf

        并且主配置文件nginx.conf中一定要有 include conf.d/*.conf;

        conf.d/supervisor.conf内容如下(根据自己的路径进行调整)

        [root@cnabdabvdc09-193-45 conf.d]# cat supervisor.conf

 server {
     listen       80 default_server;
     server_name  172.xx.xx.223;(改成你的)
     root         /data/supervisor/supervisord-monitor-master/public_html;(改成你的)

     location / {
         index  index.php index.html;
         auth_basic "Basic Auth";
         auth_basic_user_file "/data/nginx/conf/conf.d/.htpasswd";
      }
     location /control/ {
         index  index.php;
         rewrite  /(.*)$  /index.php?$1  last;
     }
     location ~ .php$ {
         try_files $uri =404;
         fastcgi_pass   127.0.0.1:9000;
         fastcgi_index  index.php;
         fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
         fastcgi_param  SCHEME $scheme;
         include        fastcgi_params;
     }
 }

        然后重启nginx  (nginx -s reload)

        访问  172.xx.xx.223 (改成你的地址)  

        这样supervisor即实现了集群管理了   一个页面就可以管理多个服务器上supervisor管理的所有进程