supervisor 监控redis & mongodb

来源:互联网 发布:apt yum rpm 编辑:程序博客网 时间:2024/05/06 15:56

安装

  1. 安装python 
    brew install python

  2. 安装pip
    wget https://bootstrap.pypa.io/get-pip.py
    sudo python get-pip.py

  3. 安装supervisor 
    pip install supervisor

配置文件

  1. 生成默认的配置文件 
    echo_supervisord_conf > /etc/supervisord.conf

  2. 编辑配置文件 参考地址

  3. 附我的配置文件 在默认的配置文件后面添加

[supervisord]nodaemon=true[program:redis]command=/usr/local/bin/redis-server /usr/local/etc/redis.confautostart=trueautorestart=truestartsecs=3[program:mongod]command=/usr/local/bin/mongod --dbpath /Users/weixuan/Database/mongodbdataautostart=truestartsecs=3autorestart=true

基本使用

Supervisord安装完成后有两个可用的命令行supervisorsupervisorctl
常见的命令如下:

命令说明supervisord初始启动Supervisord,启动、管理配置中设置的进程supervisorctl stop programxxx停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemonsupervisorctl start programxxx启动某个进程supervisorctl restart programxxx重启某个进程supervisorctl stop groupworker重启所有属于名为groupworker这个分组的进程(start,restart同理)supervisorctl stop all停止全部进程,注:start、restart、stop都不会载入最新的配置文件supervisorctl reload载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程supervisorctl update根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。注意:显示用stop停止掉的进程,用reload或者update都不会自动重启

常见命令

supervisorctl tail programname 查看programname的日志
supervisorctl tail redis 查看日志

错误代码

ERROR (abnormal termination)

解决办法:
supervisorctl tail programname 查看programname的具体日志信息

Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.

解决办法:

sudo unlink /tmp/supervisor.sock 
or
sudo unlink /var/run/supervisor.sock

gave up: redis entered FATAL state, too many start retries too quickly

解决办法:

修改redis.conf的daemonize为no

brew安装的redis,配置文件在 /usr/local/etc/redis.conf

小技巧:vim查找

# 要自当前光标位置向上搜索/pattern#pattern   表示要搜索的特定字符序列# 要自当前光标位置向下搜索 ?pattern# 精确查找# 要查找单个的   place,请键入该单词,并在其前后各加一个空格 /   place 

其它

终止mongodb

正常:

use admindb.shutdownServer()

强制:

kill -9 pid
0 0