随着公司业务增大,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的搭建
原文地址:https://www.cnblogs.com/Mr-he-learner/p/9524645.html
时间: 2024-08-01 17:28:27