Supervisor 是由 Python 语言编写、基于 linux 操作系统的一款服务器管理工具,用于监控服务器的运行,发现问题能立即自动预警及自动重启等。

Cloud Insight 是一款次世代监控工具兼数据管理平台。使用 StatsD 采集性能指标,在 HBase 存储之上,使用 OpenTSDB 来对性能指标进行聚合、分组、过滤。

使用 Supervisor 的原因

  • 如果你有很多进程在跑,不时还需要 start/stop/restart 一下进程
  • 如果哪天由于某种原因,进程挂了,你需要重启进程或定时执行脚本
  • 如果有多个进程,有些是同一项目,尽量可以同时启动/停止等

如果你有以上任意一种情况,那用 Supervisor 管理进程无疑再合适不过了,把你所有 *nix 进程都配置进 ini 文件中,这样所有的进程就变成了 Supervisor 的子进程。对于子进程,Supervisor 可以做到准确管理(有 web 界面),可以进行分组,一组组的 或者授权非 root 用户。

Supervisor 管理进程, Cloud Insight 监控进程

Supervisor 只能管理进程,对进程进行操作,但不能监控进程,虽然有 web 界面可以显示/管理的进程,但不具备一般意义上的监控。例如实时展示进程数据,出现问题有相应报警邮件。

Cloud Insight 可以监控 Supervisor 管理的进程数量和运行情况,也可以单独监控进程,也就是说进程无论是否被 Supervisor 管理,Cloud Insight 都可以监控。

像上面图片这样,监控所有进程的 IO 读写,内存,CPU,打开文件等等,也可以配置单个某一个进程的上述指标,查看正常情况下进程的资源消耗,如果出现异常邮件报警。例如假死等情况发生的时候,进程也没挂,但资源消耗会有异常,这些通过告警通通提前知道。

Cloud Insight 支持监控 Supervisor

Cloud Insight 不仅可以监控进程相关的数据,同样支持监控 Supervisor。Supervisor 管理进程的启动/停止/重启,如果 Supervisor 本身出问题了,那前面那些进程操作也就执行不了,虽然 Supervisor 本身不会出现什么问题,但这也不是万无一失的,所以监控上还是好的。

监控进程,设置告警

如果有一个进程挂了,或者假死,怎么能够及时知道?

配置上图这样的报警策略:

  • 选择性能指标:指标任意选一个 process 的指标,over 选定特定进程,例如 process:python 就是监控 Python 进程数据的。
  • 设置报警条件:设置一个阈值,达到阈值时会触发报警;此外还可以配置设置数据丢失(进程挂了自然也就不会再发送数据)时,直接发送报警邮件。
  • 再下面,就是命名报警和设置通知用户。

总之,如果你关心你的应用进程情况,或者在使用 Supervisor,不妨试试 Cloud Insight,永久免费版等你来用!

OneAPM Cloud Insight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客

本文转自 OneAPM 官方博客

参考文档:

Supervisor 管理进程,Cloud Insight 监控进程,完美!的更多相关文章

  1. 用 OneAPM Cloud Insight 监控 Docker 性能

    Docker 是构建和部署软件的一个新兴的轻量级的平台,也是一个减轻替代虚拟机的容器.Docker 通过给开发者提供兼容不同环境的镜像,成为解决现代基础设施的持续交付的一个流行的解决方案. 和虚拟机一 ...

  2. 使用supervisor管理tomcat,nginx等进程详解

    1,介绍 官网:http://supervisord.org Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时 ...

  3. celery和supervisor配合使用,实现supervisor管理celery进程

    在这里我选择redis作为celery异步任务的中间人,系统选择CentOS6.5 64位.redis.celery和supervisor的安装参见官方文档. 安装完毕后: 1, 创建celery的实 ...

  4. 如何监控 Tomcat?Zabbix 与 Cloud Insight 对比

    JVM 监控工具有很多,像命令 jstat,jmap,jstack,jinfo 可以根据不同需求查看不同的系统信息,还有图像化界面 jconsole,都是很方便的工具.这些可以参考 JAVA自带监控工 ...

  5. Docker 监控- Prometheus VS Cloud Insight

    如今,越来越多的公司开始使用 Docker 了,2 / 3 的公司在尝试了 Docker 后最终使用了它.为了能够更精确的分配每个容器能使用的资源,我们想要实时获取容器运行时使用资源的情况,怎样对 D ...

  6. Cloud Insight 现在已经支持监控 Cassandra 啦!

    Cassandra 是什么? Apache Cassandra 以其可扩展性和容错分布式数据库系统而被人所熟知.Cassandra 起源于Facebook 最初创建于 Amazon Dynamo 和谷 ...

  7. Cloud Insight 客户案例-晨芯时代科技有限公司

    在不断迭代的过程中,Cloud Insight 也很重视客户对产品的使用体验,这次我们拜访了晨芯时代,了解到他们在使用 Cloud Insight 过程中对产品的一些想法. 客户背景 晨芯时代是一家开 ...

  8. linux -- 进程的查看、进程id的获取、进程的杀死

    进程查看 ps ax : 显示当前系统进程的列表 ps aux : 显示当前系统进程详细列表以及进程用户 ps ax|less : 如果输出过长,可能添加管道命令 less查看具体进程, 如:ps a ...

  9. Cloud Insight 和 BearyChat 第一次合体,好紧张!

    说到 ChatOps 我们可能立刻想到是 Slack(啥?没听过?哦!),但是由于国内网络和语言的问题你可能无法拥有很好的体验了.那就把目光转回国内吧,国内的话就不得不提到 BearyChat 等 C ...

随机推荐

  1. CentOS7系统下YUM安装安装Mongodb 3.4

    第一步 查看是否存在Mongodb配置yum源 切换到yum目录 cd /etc/yum.repos.d/ 查看文件 ls 第二部 不存在添加yum 源 创建文件 touch mongodb-3.4. ...

  2. Editplus php

    一.配置PHP帮助手册 1.打开Editplus,[工具]-->[配置用户工具],在[添加工具]子菜单下选择[HTML帮助(*.chm)(T)],文件路径选择php的chm帮助文件路径. 这样在 ...

  3. css3实现流星坠落效果

    html代码 <div class="star"></div> <div class="star pink"></di ...

  4. 【云和恩墨】性能优化:Linux环境下合理配置大内存页(HugePage)

    原创 2016-09-12 熊军 [云和恩墨]性能优化:Linux环境下合理配置大内存页(HugePage)   熊军(老熊) 云和恩墨西区总经理 Oracle ACED,ACOUG核心会员 PC S ...

  5. docker内存和cpu调试

    本地启动了一个sshd的容器服务,但该容器经常会被重启导致ssh连接失败,使用kubectl describe pod命令查看改命令发现有容器返回值为137,一般是系统环境原因,且一般为内存不足导致的 ...

  6. ptmalloc总结

    内存管理的一般方法 C 风格的内存管理程序主要实现 malloc()和 free()函数. 内存池是一种半内存管理方法.Apache 使用了池式内存(pooled memory),将其连接拆分为各个阶 ...

  7. SpringMVC源码阅读:属性编辑器、数据绑定

    1.前言 SpringMVC是目前J2EE平台的主流Web框架,不熟悉的园友可以看SpringMVC源码阅读入门,它交代了SpringMVC的基础知识和源码阅读的技巧 本文将通过源码(基于Spring ...

  8. 并发编程之 CAS 的原理

    前言 在并发编程中,锁是消耗性能的操作,同一时间只能有一个线程进入同步块修改变量的值,比如下面的代码 synchronized void function(int b){ a = a + b: } 如 ...

  9. MVC添加数据并存入数据库

    你可以下载演示的数据库,在这篇<MVC显示详细记录Without Entity Framework>http://www.cnblogs.com/insus/p/3366608.html结 ...

  10. JS DOM操作(四) Window.docunment对象——操作内容

    操作内容:即对标签所夹内容的操作 一 非表单元素内容操作 定位 var a = document.ElementById( "id" ) 1.获取内容 var s = a.inne ...