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的搭建

原文地址:https://www.cnblogs.com/Mr-he-learner/p/9524645.html

时间: 2024-08-01 17:28:27

prometheus+grafana+consul+supervisor搭建监控系统(一)之supervisor搭建的相关文章

MySQL监控系统MySQL MTOP的搭建

MySQLMTOP是一个由Python+PHP开发的MySQL企业级监控系统.系统由Python实现多进程数据采集和告警,PHP实现WEB展示和管理.最重要是MySQL服务器无需安装任何Agent,只需在监控WEB界面配置相关数据库信息 功能非常强大: 可对上百台MySQL数据库的状态.连接数.QTS.TPS.数据库流量.复制.性能等进行时时监控 能在数据库偏离设定的正常运行阀值(如连接异常,复制异常,复制延迟) 时发送告警邮件通知到DBA进行处理 对历史数据归档,通过图表展示出数据库近期状态,

Grafana + Zabbix --- 部署分布式监控系统

阅读目录: 1. 关闭防火墙 2. 安装Zabbix下载源 3. ZabbixClient  --- 安装zabbix-agent代理 4. ZabbixServer --- 安装zabbix-server服务 5. ZabbixServer --- 配置zabbix-server的数据库 6. ZabbixServer --- 配置zabbix-server的服务参数 7. ZabbixServer --- 使用zabbix-server 8. 登录Zabbix的Web端 9. 在Web配置z

Zabbix+Grafana打造高逼格监控系统

第一章 zabbix监控的意义 1.1 为什么要监控 业务安全性的保障 系统的保障 产品持续性的运行 1.2 监控的内容 1.3 zabbix的选择性 [x] 纯命令监控太局限性 [x] 监控三剑客(Nagios.zabbix.Cacti ) [x] 可及时发现故障,并在故障恢复的第一时间得到通知 [x] 灵活运用,包括zabbix的阈值定义,自动发现,API接口,触发动作等功能 1.4 zabbix的工作组件及告警流程 数据采集:Zabbix 通过 SNMP.Agent.ICMP.SSH.IP

Zabbix+Grafana打造全方位立体化监控系统

前言简介: Grafana是一个开源的指标量检测和可视化工具.常用于展示基础设施的实时数据和应用程序运行分析:是一个通用的可视化工具,不仅仅用于展示zabbix下的监控数据,也同样适用于一些其他数据可视化的需求:首选需要搞清楚两个概念: 1.数据源(datasource) 数据存储源,主要定义了将用什么方式查询数据展示在grafana上面,不同的datasource拥有不同的查询语法:官方支持数据源最常见的有:zabbix,prometheus,Elasticsearch,Open TSDB等等

zabbix 结合grafana设计自己的监控系统

1:zabbix和grafana的离线安装 步骤:略 grafana 安装遇到的问题: 1:下载的alexanderzobnin-grafana-zabbix-1a85503.zip 需要放在/var/lib/grafana/plugins目录下 重启一下就可以. 2:zabbix 和grafana 数据源连接不上(版本不一致) 需要通过zabbix API(http://IP/zabbix/api_jsonrpc.php,) 查看其输出的结果是否正常, 3:grafana模板设置 1)首先创建

zabbix监控系统的搭建

系统环境:Centos 6.8,LNMP,zabbix 3.0.3 一.前言 Zabbix是一个企业级的,开源的.分布式的监控套件,可监控linux,windows,交换路由设备等,其已成为时下最主流的监控系统.本次Zabbix搭建均基于上篇博文LNMP环境搭建部署,部分前期准备与原LNMP有关. LNMP环境搭建请参照:http://zhoufan.blog.51cto.com/4278592/1793394. 二.前期准备 1.依赖包安装 yum install net-snmp-devel

Docker容器监控系统初探

https://www.jianshu.com/p/abfa502e43a6 随着线上服务的全面docker化,对docker容器的监控就很重要了.SA的监控系统是物理机的监控,在一个物理机跑多个容器的情况下,我们是没法从一个监控图表里面区分各个容器的资源占用情况的.为了更好的监控容器运行情况,更重要的是为了后续的容器动态调度算法需要的大量运行时数据的搜集,经过调研后,基于CAdvisor + InfluxDB + Grafana搭建了这套容器监控系统. 1 容器监控方案选择 在调研容器监控系统

基于 HTML5 的 WebGL 3D 智能楼宇监控系统

前言 智能监控的领域已经涉及到了各大领域,工控.电信.电力.轨道交通.航天航空等等,为了减少人员的消耗,监控系统必不可少.之前我写过一篇 2D 的智能地铁监控系统广受好评,突然觉得,既然 2D 的这么受欢迎,那么 3D 的需求量肯定也是非常大的,3D 毕竟比 2D 来说还是更直观一些,于是有了这个例子以及这篇文章.智能监控系统在 3D 中应用比较广泛的除了 3D 机房以外,我觉得就是楼宇的监控了,可是之前做了很多关于机房方面的 Demo,所以最终决定做 3D 楼宇监控系统. 代码生成 场景搭建

监控系统----zabbix

监控系统----zabbix zabbix-server 在搭建zabbix之前,首先我们需要搭建好LAMP环境(当然大神们也可以挑战自我选择用nginx,但是其配置会复杂很多) 1.关闭selinux setenforcce 0 vim /etc/selinux/config 2.安装php(这里选择最方便的方式,各位也可以尝试用高级的php) yum -y install php php-fpm 3.配置php参数 vim  /etc/php.ini date.timezone = Asia