prometheus+grafana+consul+supervisor搭建监控系统之supervisor搭建
Posted mr-he-learner
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了prometheus+grafana+consul+supervisor搭建监控系统之supervisor搭建相关的知识,希望对你有一定的参考价值。
随着公司业务增大,zabbix+脚本监控已经不能满足需求,经过一段时间的研究发现prometheus+grafana+consul+supervisor非常不错,supervisor托管非daemod进程,动态注册到consul中,prometheus通过targets发现consul中的服务,Grafan中data Source配置:Prometheus(http://xxx.xxx.xxx.xxx:9090)获取源数据展示出来(非常漂亮,美观)
把搭建的过程分享给大家 PS:有些还在研究中,有错误的地方,请见谅。
环境准备:
一、supervisor的搭建
1、简介
superviosr是一个Python开发在Linux/Unix系统上的进程监控工具,能将一个普通的命令行进程变为后台daemon(不能监控daemon进程),通过fork/exec的方式将这些被管理的进程当作supervisor的子进程来启动,并监控进程状态,异常退出时能自动重启。
2、安装
# 1)安装
wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
(yum install python-pip)
pip install supervisor
mkdir -p /etc/supervisor/config.d/
mkdir -p /var/log/supervisor/
echo_supervisord_conf > /etc/supervisor/supervisord.conf
#可能会报如下错误:
Traceback (most recent call last):
File "/usr/bin/echo_supervisord_conf", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in <module>
working_set.require(__requires__)
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: meld3>=0.6.5
#解决:编辑python中的文件,把meld3 >= 0.6.5注释掉
vim /usr/lib/python2.6/site-packages/supervisor-3.3.4-py2.6.egg-info/requires.txt
#meld3 >= 0.6.5
[iterparse]
cElementTree >= 1.0.2
# 2)编辑配置文件
vim /etc/supervisor/supervisord.conf
#注意:一定要修改supervisor.sock 、 .pid 的路径,如果默认在/tmp下,可能会被系统定期给清理掉,会导致supervisor不可用(一个大坑,坑死我了)
#最末尾修改成:
[include]
files = /etc/supervisor/config.d/*.ini
# 3)启动
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
# 4)测试:托管redis进程(注意redis配置文件daemonize no)
vim /etc/supervisor/config.d/redis.ini
#添加
[program:redis]
command=/usr/local/redis/redis-server /usr/local/redis.conf
stdout_logfile=/data/redis_data/redis_supervisor.log
autostart=true
autorestart=true
startsecs=5
priority=1
stopasgroup=true
killasgroup=true
stopsignal=QUIT
# 5) update / reload .ini 文件
supervisorctl update 或者 supervisorctl reload
# 6)supervisor的常用命令
输入命令 supervisorctl 进入 :
help # 查看帮助
status # 查看程序状态
stop program_name # 关闭 指定的程序
start program_name # 启动 指定的程序
restart program_name # 重启 指定的程序
tail -f program_name # 查看 该程序的日志
update # 重启配置文件修改过的程序(修改了配置,通过这个命令加载新的配置)
=========================
直接通过 shell 命令操作:
supervisorctl status
supervisorctl update
supervisorctl restart
3、备注:supervisor就安装好了,可以初步体验一下,管理、监控非daemon进程很方便,后面讲到的consul ,prometheus 及prometheus的各种exporter都用supervisor来管理、监控超爽!
预告:
下一篇:prometheus+grafana+consul+supervisor搭建监控系统(二)之consul的搭建
以上是关于prometheus+grafana+consul+supervisor搭建监控系统之supervisor搭建的主要内容,如果未能解决你的问题,请参考以下文章
Prometheus + consul + grafana 监控体系搭建1
Centos7.5 Prometheus2.5配置和基于Consul1.2.4的服务发现
Prometheus + Consul:为每个 Consul 服务器创建 2 个目标(复制目标)