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

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

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

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

Java gateway 接受来自 Zabbix server 或者代理的链接,所以在每个 Zabbix server 或代理中只能配置一个 Java gateway。若是一个主机有 JMX agent 及其余类型的监控项,则只有 JMX agent 类型的监控项能够经过 Java gateway 进行监控。当在 Java gateway 上的一个监控项值更新了,Zabbix server 或代理将链接 Java gateway 请求该值,由于 Java gateway 不会缓存任何值.linux

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

Zabbix, Cloud Insight  监控 Tomcat 对比

原理讲完,上手操做github

  • 编译添加 --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 配置,终于成功啦!

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

  • 建立 host,引用模版就能够实现监控系统 cpu 等数据,而想要监控 Tomcat 数据,也须要相应的模块,但 zabbix 自带的 tomcat 模板很差用(其实都没有找到),因此须要本身添加模版
  • 在 github 上有相应的文件,能够下载下来直接使用,就这样导入模版
  • 而后参考官网 JMX monitoring 进行配置,想要看哪一个图表,须要本身建立相应的 item graph。

Cloud Insight 监控 Tomcat

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

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

Zabbix, Cloud Insight  监控 Tomcat 对比

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 官方博客

相关文章
相关标签/搜索