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_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
fastcgi_paramSCHEME $scheme;
includefastcgi_params;
}
然后再添加index.php页面:
vim/usr/share/nginx/html/index.php
写入如下php测试页面:
保存后,重启下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/configcp 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 {
listen80 default_server;
server_name192.168.134.130;
root/root/supervisord-monitor/public_html;
location / {
indexindex.php index.html;
}
location /control/ {
indexindex.php;
rewrite/(.*)$/index.php?$1last;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name;
fastcgi_paramSCHEME $scheme;
includefastcgi_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后,登录网站,会弹出登录窗口。登录即可。
【supervisord-monitor集群管理服务器进程】这样我们便完成了supervisor的集群式管理。
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 2020-04-07vue中Axios的封装和API接口的管理
- 全过程工程咨询——时间管理(12)
- 《卓有成效的管理者》第二十二堂课(创造英雄)
- 游乐园系统,助力游乐园管理
- #山言良语#用管理思维百天减肥18斤
- 最有效的时间管理工具(赢效率手册和总结笔记)
- federation--kubernetes集群联邦的实现
- 干货来袭(自我管理(来几款撩人的APP))
- 九型管理教练复盘(一)