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

但是现代监控工具都是集成的,上可监控服务器性能,下可监控个组件运行情况,不用每次查询都在命令行敲啊敲的,图像化实时展示数据,本文就个人实际操作经验来谈谈现代集成监控工具 ZabbixCloud Insight 实现监控 Tomcat 的体验。

Zabbix 监控 Tomcat

最开始使用 Zabbix 只是监控服务器,并没有想到以后要监控 Tomcat,所以直接简单 yum 安装,安装完成后配置 host,templates,然后就可以直接从图表上看到服务器的性能数据。

现在想要监控 Tomcat,本人使用的2.4.7版本的 Zabbix 已然提供了原生对 JMX 应用的监控,即 Zabbix Java gateway。它是采用 Java 编写的一个守护进程,当 Zabbix server 想知道主机 JMX 计数器的值时,将利用 JMX 管理 API 去请求远程的有关应用。应用不需要额外安装软件,只需要在启动时在命令行指定 -Dcom.sun.management.jmxremote 选项。

Java gateway 接受来自 Zabbix server 或者代理的连接,因此在每一个 Zabbix server 或代理中只能配置一个 Java gateway。如果一个主机有 JMX agent 及其他类型的监控项,则只有 JMX agent 类型的监控项可以通过 Java gateway 进行监控。当在 Java gateway 上的一个监控项值更新了,Zabbix server 或代理将连接 Java gateway 请求该值,因为 Java gateway 不会缓存任何值.

Zabbix server 或代理可以通过 StartJavaPollers 控制连接 Java gateway 的进程。Java gateway 在内部通过 START_POLLERS 控制选项使用多线程启动。StartJavaPollers 要小于或等于 START_POLLERS,否则可能导致当连接 Java gateway 时没有多余的线程进行处理;在服务端,如果一个连接请求超过了 Timeout 设定的秒数,连接将会终止,但 Java gateway 也许此时依然从 JMX 计数器中检索该值。

原理讲完,上手操作

  • 编译添加 --enable-java 参数,参考官网 Java gateway,进行编译安装,其中还需要下载 catalina-jmx-remote.jar 包,配置 zabbix_java,zabbix_server,zabbix_agent 等配置文件
  • 把 php 等前端文件放到 apache 网站目录上,通过访问 http://ip/zabbix 在安装界面进行配置,如果报403错误的话要考虑关闭防火墙
  • 在界面上配置 Zabbix,然而在进行 php 环境检查的时候报错缺少9个模块( ̄ェ ̄),又是坑又要编译 PHP,参考图文讲解zabbix安装全过程(5),把 php 编译了一遍(早发现这篇文章多好 -_-#),接着进行 zabbix 配置,终于成功啦!

等服务器配置完成后,就是配置客户端了

  • 创建 host,引用模版就可以实现监控系统 cpu 等数据,而想要监控 Tomcat 数据,也需要相应的模块,但 zabbix 自带的 tomcat 模板不好用(其实都没有找到),所以需要自己添加模版
  • 在 github 上有相应的文件,可以下载下来直接使用,就这样导入模版
  • 然后参考官网 JMX monitoring 进行配置,想要看哪个图表,需要自己创建相应的 item graph。

Cloud Insight 监控 Tomcat

相对于复杂的安装编译配置的 zabbix 来说,Cloud Insight 就真的简单多了,一键复制即完成安装(执行的 shell 脚本里面会把需要的环境模块一同下载下来进行安装,形成一个黑盒环境,不需要再安装其他软件),之后在 web 上见可以看到系统 CPU 的相关数据了。

再来就是监控 Tomcat,Cloud Insight 同样也是通过 JMX 远程监控服务来监控 Tomcat。为了收集这些指标,Cloud Insight 会调用一个轻量级的 Java 插件 JMXFetch 连接到 MBean 服务器,并通过 OneStatsd 服务器,将这些指标发送到 Cloud Insight Agent,具体参考文档 JMX 远程监控

Cloud Insight 要实现监控 Tomcat 很简单

  • 在 Tomcat 配置文件里面添加 JMX 的环境变量 -Dcom.sun.management.jmxremote
  • 配置 Ci 里面 Tomcat 的配置文件 tomcat.yaml
  • 重启探针

总结

Zabbix 和 Cloud Insight 安装步骤对比:

Zabbix

  • Zabbix 需要同时安装服务端和客户端,用户需要自己配置 PHP 做前端
  • 此外 Zabbix 会检查 php 对前端的支持情况,所需要的模块是否都已安装,需要按教程把 php 参数设置好
  • 监控 java 等应用时还需要进行额外编译
  • 监控组件时 zabbix 本身的模版支持不够,需要自己导入模块(自己写也行)

Cloud Insight

  • Cloud Insight 只需要一键安装探针,配置服务,探针所需的环境模块都在一个包里
  • 数据从 OneAPM 官网上看,有默认抓取的指标,一般无需配置,如果有特殊需求可在配置文件里面进行配置

Zabbix 和 Cloud Insight 监控 Tomcat 指标对比:

  • Zabbix 监控的指标和使用的模版有关,可以监控 JVM JMX Tomcat 等指标
  • Cloud Insight 默认收集 JVM JMX Tomcat 等20+指标,如果想添加监控项可以自己配置,参考 JMX 监控,默认上限350个指标

Zabbix 和 Cloud Insight 分别适合的人群:

  • Zabbix 历史悠久,有相关社区,很多人已经使用习惯
  • 如果喜欢挑战新事物,想要解放运维人力,还是用 Cloud Insight 吧 (^∇^)

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

如何监控 Tomcat?Zabbix 与 Cloud Insight 对比的更多相关文章

  1. Docker 监控- Prometheus VS Cloud Insight

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

  2. 如何监控业务的响应速度?Cloud Insight SDK 实践分享

    一直在说 Cloud Insight 是数据聚合平台,可以用 SDK 和 API 实现业务监控,如今不拿出点实践人们恐怕是不能信服.那今天本文就先简单介绍一下 SDK 可以应用在哪些方面,再举个真实用 ...

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

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

  4. Cloud Insight 仪表盘上线 | 全面监控 Redis

    OneAPM 作为应用性能领域的新兴领军企业,近期发布了重量级新产品-- Cloud Insight 数据管理平台,用它能够监控所有基础组件,并通过 tag 标签对数据进行管理. 近日,Cloud I ...

  5. 极客范:如何使用 Cloud Insight 来监控闭路电视?

    最近新上线支持 Windows 系统及其组件 监控功能的 Cloud Insight,在系统监控领域基本囊括了对所有主流和部分非主流平台的支持.但是这还不够,Cloud Insight 可不仅仅是一个 ...

  6. 用 OneAPM Cloud Insight 监控 Docker 性能

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

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

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

  8. 如何使用 Cloud Insight SDK 实现 Druid 监控?

    Druid 简介与用途 首先说明,这里所说的 Druid 并不是阿里巴巴的数据库连接池项目,而是 Eric Tschetter 创立的一个开源的分布式实时处理系统,希望为烧钱的大数据处理,提供一种更廉 ...

  9. 使用 Cloud Insight SDK 监控北京空气质量!

    现在越来越多的 App 都开始有广告了.特别是空气质量监测,和天气类的 App,广告还是蛮多的,眼花缭乱,真是够了. 最近刚好在用一款系统监控工具 Cloud Insight,它提供的 SDK 可以把 ...

随机推荐

  1. Android环境变量笔记

    Logcat打印日志 使用方法Log.i(tag, msg);参数tag: 标签.用于识别Logcat的分类(一般可以使用类名作为标签)数msg: 打印的内容 在eclipse中打开logcat标签W ...

  2. 查看kindle paperwhite2上卡索引书籍的方法

    昨天kindle耗电量突然加快,经过检查和网络搜索得知是卡索引导致的耗电量增大.我自己通过关闭索引的方式解决了这个问题. 在这个过程中发现了一个可以直接找到所有卡索引书籍的方法,在此分享一下. 首先打 ...

  3. javascript实现可编辑的下拉框

    曾经遇到过一个需求的情况是这样的,我们提供给用户的输入框的可选择项只能满足用户的大部分情况的选择,但是有时候会遇到一些用户想要输入的数据是下拉项中所没有的,而用户不希望改变下拉项为输入框模式,需要说如 ...

  4. nyoj 202 红黑树

    红黑树 时间限制:3000 ms  |            内存限制:65535 KB 难度:3   描述 什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子是红色的树... 当然,这 ...

  5. 在HTML中怎么去掉a标签(超链接)的下划线?

    <style type="text/css">a:link,a:visited{ text-decoration:none; /*超链接无下划线*/}a:hover{ ...

  6. php安全模式

    http://www.cnblogs.com/samson/archive/2011/08/08/2130550.html php安全模式:safe_mode=on|off启用safe_mode指令将 ...

  7. Java输出日历

    源码链接:http://pan.baidu.com/s/1o6xeybK

  8. cognos 10.2.2 report studio数字---字符型查询注意事项

    做了一个简单的报表,就是按照员工编号查询员工,其中员工编号是全数字,我们保存在数据库中的是字符型varchar2(10),所以在report studio中做查询就一直报告服务器错误. 其中使用cas ...

  9. windows server 2003 禁止开机显示“关闭事件跟踪”

    关机事件跟踪(Shutdown   Event   Tracker)也是Windows   server   2003区别于其他工作站系统的一个设置,对于服务器来说这是一个必要的选择,但是对于工作站系 ...

  10. spring mvc 错误

    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin  //跨域问题 respons ...