supervisord-monitor集群管理服务器进程

在一台服务器上通过supervisor对该服务器的进程进行管理,很容易实现。网上有很多教程,比如我之前的博客:supervisor的使用教程

如果在多台服务器上都部署了supervisor做进程守护,每个supervisor都有各自的web管理,那么如果要管理多台服务器上的程序时,岂不是要登陆多个supervisor页面控制台吗?如果能把它们集合在一个页面上统一进行控制,那该有多好呢?是的,已经有人研发了这么一个工具–supervisord-monitor,这是一个php研发的工具,代码托管在gitlab,最近一次更新是四个月前。

https://github.com/mlazarov/supervisord-monitor
我们只需要把supervisord-monitor 部署到一台服务器上,就可以对其他服务器进行集群式管理了,当然,前提条件是每台服务器都必须安装supervisor,并配置运行好。

1、安装php

由于supervisord-monitor是php写的,因此首先需要安装php.

yum -y install php-fpm

我们进入到php安装后的配置文件中,将用户组修改为同nginx一致。

vim /etc/php-fpm.d/www.conf
user = root
group = root

由于是自己的服务器,我这里用的都是root用户。用root启动php时,会报错,需要按照如下进行启动。

/usr/sbin/php-fpm -R &

通过netstat -antp 查看进程,我们可以看到php-fpm在本地端口9000上运行成功。
通过ps aux|grep php-fpm 查看进程,可以看到php-fpm以root用户运次着。

2、测试php

我们先测试下nginx是否成功运行。直接在浏览器中输入服务器ip地址,我这里开的是虚拟机,地址为:192.168.134.130,在浏览器中输入后,显示如下界面则,成功运行。
这里写图片描述

然后,我们测试下php页面能否正常打开。

进入到nginx的配置:

vim /etc/nginx/nginx.conf

在server段落添加如下location:

#add
location ~ .php$ {
    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;
}

然后再添加index.php页面:

vim  /usr/share/nginx/html/index.php

写入如下php测试页面:

<?php
    phpinfo();
?>

保存后,重启下nginx:

pikll -9 nginx  # 杀死nginx进程
nginx           # 重启nginx

好吧,我一般都是通过杀死进程的方式重启nginx的。

然后,在浏览器中输入:192.168.134.130/index.php

出现php的配置信息页面,则nginx + php-fpm配置成功。

如果出现将index.php下载下来的情况,有可能是因为php的user同nginx的不一致。

3、安装supervisord-monitor

通过git将supervisord-monitor下载下来。我这里将其下载到/root目录下。

git clone https://github.com/mlazarov/supervisord-monitor.git

其目录结构如下:

[root@localhost ~]# tree /root/supervisord-monitor/ -L 1
/root/supervisord-monitor/
├── application
├── composer.json
├── package.json
├── public_html
├── Readme.md
├── supervisord-monitor.png
└── system

其中application文件夹下为配置文件,public_html为前端显示页面。

首先进入到application中,将默认的配置文件重命名下:

cd /root/supervisord-monitor/application/config

cp supervisor.php.example supervisor.php

然后打开该配置文件,我们的所有需要连接的服务器都是在这个文件中进行设置的。

vim supervisor.php

按照如下格式,输入需要连接的服务器的ip地址和用户名密码即可。

$config['supervisor_servers'] = array(
        '192.168.134.130' => array(
                'url' => 'http://192.168.134.130/RPC2',
                'port' => '9001',
                'username' => 'user',
                'password' => '123'
        ),
);

4、设置nginx

新建一个nginx配置文件,专门用来管理supervisord-mointor。

vim /etc/nginx/conf.d/supervisor.conf

写入如下配置:

server {
    listen       80 default_server;
    server_name  192.168.134.130;
    root         /root/supervisord-monitor/public_html;
    location / {
        index  index.php index.html;
     }
    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。

再次在浏览器中打开:192.168.134.130,一切顺利的话,便可以进入到如下界面,可以对多个服务器上的进程进行监管。
这里写图片描述

其中,第一个是我后加的,还是在前面提到的/root/supervisord-monitor/application/config/supervisor.php中进行添加的。

5、给网站加密码

到这里我们就做好了服务器集群进程的管理了,但是有一点,这个网站如果不加密的话,任何人都可以在任何浏览器上登录,随便管理我们的服务器,这样太危险了。为此,我们通过htpasswd对该网页进行加密处理,需要登录才能进入网页。

首先,安装httpd-tools:

yum -y install httpd-tools

然后在指定位置创建密码文件,这里我们创建在supervisord-monitor的配置文件中:

htpasswd -c /root/supervisord-monitor/application/config/password admin  #  创建password文件,以及用户的登录名admin
New password: admin
Re-type new password: admin
Adding password for user admin

这样我们就创建了一个用户名及密码都为admin的账户。

最后,再将其写入到nginx的配置中即可:

vim /etc/nginx/conf.d/supervisor.conf

添加如下:

auth_basic "Please input password"; #这里是验证时的提示信息
auth_basic_user_file /root/supervisord-monitor/application/config/password;  # 刚才配置的password文件

再次重启nginx后,登录网站,会弹出登录窗口。登录即可。

这样我们便完成了supervisor的集群式管理。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值