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 个目标(复制目标)

Consul与Prometheus [1]

五分钟搭建基于 Prometheus + Grafana 实时监控系统

部署Prometheus+Grafana监控Docker