文档章节

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

CloudInsight
 CloudInsight
发布于 2016/01/26 17:31
字数 1593
阅读 247
收藏 0

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

但是现代监控工具都是集成的,上可监控服务器性能,下可监控个组件运行情况,不用每次查询都在命令行敲啊敲的,图像化实时展示数据,本文就个人实际操作经验来谈谈现代集成监控工具 Zabbix 和 Cloud 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 在内部通过 STARTPOLLERS 控制选项使用多线程启动。StartJavaPollers 要小于或等于 STARTPOLLERS,否则可能导致当连接 Java gateway 时没有多余的线程进行处理;在服务端,如果一个连接请求超过了 Timeout 设定的秒数,连接将会终止,但 Java gateway 也许此时依然从 JMX 计数器中检索该值。

Zabbix, Cloud Insight  监控 Tomcat 对比

原理讲完,上手操作

  • 编译添加 --enable-java 参数,参考官网 Java gateway,进行编译安装,其中还需要下载 catalina-jmx-remote.jar 包,配置 zabbixjava,zabbixserver,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 远程监控

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


© 著作权归作者所有

共有 人打赏支持
CloudInsight
粉丝 15
博文 3
码字总数 4653
作品 0
高级程序员
私信 提问
如何监控 Tomcat?Zabbix 与 Cloud Insight 对比

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

OneAPM蓝海讯通
2016/01/25
101
0
开源监控软件之争

开源监控软件 Zabbix 和 Nagios 究竟哪个更好?Zabbix 可视化更好?Nagios 更轻量?作为产品经理程默的一名默默无闻的小粉丝,觉得很有义务把他的回答编辑整理出来让大家看到。下面是程默在知...

OneAPM蓝海讯通
2015/12/09
83
0
运维 2.0 时代:数据聚合和分组

运维 2.0 时代 运维 2.0 是指,从技术运维升级为服务运维,向公司提供可依赖的专业服务。运维 2.0 强调服务交付能力,而不是技术能力,需求可依赖、懂业务、服务化的专业运维。 为了了解运维...

OneAPM蓝海讯通
2015/11/13
67
1
如何在局域网内部署服务器监控 ?

背景 随着互联网的发展,各种网络攻击手段也层出不穷,不管是大型企业还是中小企业,随时都有被攻击的危险,因此很多公司都会采取各种手段来维护自己服务器安全,其中比较常见的是采用内网环...

OneAPM蓝海讯通
2015/12/29
31
0
谁会是 Zabbix 和 Nagios 的继任者?

【编者按】本文根据 Dataloop.IO 的创始人兼 CEO David Gildeh 对监控工具市场的现状分析以及对未来发展趋势的展望,展开拓展讨论。 为什么监控还是一塌糊涂? 为了调研市场,从而做出更好的...

OneAPM蓝海讯通
2016/04/12
42
0

没有更多内容

加载失败,请刷新页面

加载更多

一文了解JVM全部垃圾回收器,从Serial到ZGC

《对象搜索算法与回收算法》介绍了垃圾回收的基础算法,相当于垃圾回收的方法论。接下来就详细看看垃圾回收的具体实现。 上文提到过现代的商用虚拟机的都是采用分代收集的,不同的区域用不同...

公众号_Zack说码
22分钟前
6
0
用七牛云做小程序直播不用资质只需要公安备案

一般做小程序需要到live-pusher和live-player 分别用于推拉流但要求太严格一般商户满足不了这种情况 暂只针对国内主体如下类目的小程序开放,需要先通过类目审核,再在小程序管理后台,“设置...

xiaogg
26分钟前
2
0
spring2

Spring第二天 回顾: IOC:控制反转,把对象的创建权利反转给spring框架。 IOC的作用:解耦 Spring中的工厂: ApplicationContext ClassPathXmlApplicationContext FileSystemXmlApplication...

码农屌丝
36分钟前
3
0
Postman请求向后台传递List数据

前后台分离项目,使用Postman对写好的接口进行测试,请求类型为Post需要向后台传递List<String> list数据下面是后台控制层的java代码 @RequestMapping(value = "/del",method = RequestMetho...

王子城
41分钟前
6
0
Java并发编程的艺术:Condition的实现分析

ConditionObject是同步器AbstractQueuedSynchronizer的内部类,因为Condition的操作需要获取相关联的锁,所以作为同步器的内部类也较为合理。每个Condition对象都包含着一个队列(以下称为等...

陈刚生
42分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部