使用zabbix server监控tomcat实战案例
使用zabbix server监控tomcat实战案例
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
大家都知道,zabbix server效率高是使用C语言编写的,有很多应用程序是使用Java写的,zabbix如何去监控呢?官方有一个组件叫做Zabbix Java Gateway。Zabbix在监控Java 程序时首先会去找Zabbix Java Gateway,然后Zabbix Java Gateway再去找JMX取数据。
一.部署tomcat并启用JMX实战案例
博主推荐阅读:
https://www.cnblogs.com/yinzhengjie2020/p/12315341.html
二.部署zabbix java gateway服务
博主推荐阅读:
https://www.cnblogs.com/yinzhengjie2020/p/12318937.html
三.配置zabbix server支持zabbix java gateway
1>.指定zabbix java gateway的IP地址
[root@zabbix203.yinzhengjie.org.cn ~]# grep JavaGateway= /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
# JavaGateway=
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# sed -r -i 's@# (JavaGateway=)@\1172.200.5.253@' /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# grep JavaGateway= /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
JavaGateway=172.200.5.253
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# sed -r -i 's@# (JavaGateway=)@\1172.200.5.253@' /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
2>.指定zabbix java gateway的监听端口(此处我使用的是默认端口)
[root@zabbix203.yinzhengjie.org.cn ~]# grep JavaGatewayPort= /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
# JavaGatewayPort=
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# sed -r -i 's@# (JavaGatewayPort=10052)@\1@' /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# grep JavaGatewayPort= /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
JavaGatewayPort=
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# sed -r -i 's@# (JavaGatewayPort=10052)@\1@' /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
3>.指定zabbix server的用于zabbix java gateway的工作线程数(推荐小于等于你生产环境的core数)
[root@zabbix203.yinzhengjie.org.cn ~]# grep StartJavaPollers= /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
# StartJavaPollers=
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# sed -r -i 's@# (StartJavaPollers=)0@\132@' /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# grep StartJavaPollers= /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
StartJavaPollers=
[root@zabbix203.yinzhengjie.org.cn ~]#
[root@zabbix203.yinzhengjie.org.cn ~]# sed -r -i 's@# (StartJavaPollers=)0@\132@' /yinzhengjie/softwares/zabbix/etc/zabbix_server.conf
4>.重启zabbix server使得配置生效
[root@zabbix203.yinzhengjie.org.cn ~]# systemctl restart zabbix-server.service
5>.验证zabbix server启动的zabbix java gateway的工作线程数是否和咱们配置的一致
[root@zabbix203.yinzhengjie.org.cn ~]# ps -ef | grep "java poller" | grep -v grep | wc -l [root@zabbix203.yinzhengjie.org.cn ~]#
四.配置zabbix webUI对tomcat的监控
1>.如下图所示,依次点击"配置" ---> "主机" ---> "创建主机"
2>.配置主机信息
3>.如下图所示,选择tomcat模板
4>.添加到链接模板
5>.链接模板添加成功,点击"添加"按钮会添加主机
6>.主机添加成功啦~
7>.观察默认的tomcat模板无法采集到数据
8>.将之前的模板取消掉
9>.选择通用的java模板
10>.点击添加按钮
11>.点击更新按钮
12>.模板更换成功
13>.更换了多个版本之后,发现JMX始终无法监控到zabbix数据(就得考虑zabbix java gateway的版本是否和zabbix server版本一致性的问题了)
14>.剖析zabbix webUI始终无法获取到数据的原因(zabbix server 和zabbix java gateway版本不一致)
遇到JMX监控不到数据时,仔细回忆了监控tomcat的过程:
(1)部署tomcat并且用JMX功能,而且使用windows安装的JConsole工具测试过可用正常监控到数据,排除tomcat及其的可能性;
(2)部署zabbix java gateway,我使用的apt命令行工具安装的,就是为了图省事;
(3)在zabbix server中配置zabbix java gateway服务器的地址及端口;
(4)在webUI添加对tomcat的监控信息; 综上所述,四个步骤中最可能出现问题的就是第(2)步和第(3)步,经过我仔细检查zabbix server的配置后,确认第(3)步不是故障点,于是所有矛头指向了第(2)步,于是我登录到zabbix java gateway服务器上,尽管服务是正常启动的,查看日志我们就发现了问题,zabbix java gateway 和zabbix server版本不一致,如下图所示。 问题解决方案:
使用源码方式安装zabbix java gateway,或者直接部署在和zabbix server上也是可以的。
15>.解决问题
干货分享:
安装zabbix 相关组件时,建议大家不要一会编译安装,一会yum/apt等操作系统自带工具包进行安装,这样你无法确认使用的zabbix版本是否是一致性的。
因此我推荐大家生产环境部署服务时,尽量采用编译方式安装,这样类似于版本不一致的问题就会迎刃而解啦~
五.使用自定义的模板监控tomcat
1>.点击导入模板
2>. 从本地选择到导入的模板
3>.导入成功
4>.导入模板成功
5>.接下里就可用让监控的主机使用咱们自定义的模板
6>.模板链接成功
7>.查看tomcat的监控图形
六.监控java程序的JMX端口数据工具"cmdline-jmxclient-0.10.3.jar"
1>.下载"cmdline-jmxclient-0.10.3.jar"工具(需要翻墙)
博主推荐阅读:
http://www.crawler.archive.org/cmdline-jmxclient/downloads.html
2>.测试能否获取到java当前已经分配的线程数
[root@zabbix203.yinzhengjie.org.cn ~]# java -jar cmdline-jmxclient-0.10..jar - 172.200.5.250: 'Catalina:name="http-nio-8080",type=ThreadPool' currentThreadCount
2>.测试能否获取到java最大的线程数
[root@zabbix203.yinzhengjie.org.cn ~]# java -jar cmdline-jmxclient-0.10..jar - 172.200.5.250: 'Catalina:name="http-bio-8080",type=ThreadPool' maxThreads
使用zabbix server监控tomcat实战案例的更多相关文章
- zabbix java gateway配置实战案例
zabbix java gateway配置实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署tomcat服务 博主推荐阅读: CentOS: https://www. ...
- Zabbix Server 监控Web页面
Zabbix Server 监控Web页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.选中一台可以连接互联网的主机 2>.创建一个web场景,点击“Crea ...
- zabbix server监控报主机 Lack of free swap space
zabbix server监控报主机 Lack of free swap space,因为交换空间不足引起.该主机内存为3G,正常交换空间大小为物理内存2倍左右. #查看已有内存及交换空间 free ...
- zabbix 自定义监控项简单案例
例如:获取被监控主机的登录用户数 以uptime为例: 输入命令:uptime | awk '{print $6}' 可以获得当前登录用户数(不通终端打印出的位置不同) 1.被监控主机修改zabbi ...
- 使用Zabbix监控Nginx服务实战案例
使用Zabbix监控Nginx服务实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.编译安装nginx步骤详解并开启状态页 博主推荐阅读: https://www.cn ...
- zabbix proxy配置实战案例
zabbix proxy配置实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix proxy概述 上一篇博客我们分享了zabbix agent有两种工作模式,即 ...
- 运维监控-使用Zabbix Server 添加自定义 item
运维监控-使用Zabbix Server 监控自定义 item 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客就直接开门见山如何使用Zabbix Server 监控自定义 ...
- Zabbix Server 自带模板监控有密码MySQL数据库
Zabbix Server 自带模板监控有密码MySQL数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Zabbix-agent端的配置 1>.为数据库设置密码 ...
- zabbix Server 4.0监控Flume关键参数
zabbix Server 4.0监控Flume关键参数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Flume本身提供了http, ganglia的监控服务.当然我们也可以使用 ...
随机推荐
- 【PAT甲级】1045 Favorite Color Stripe (30 分)(DP)
题意: 输入一个正整数N(<=200),代表颜色总数,接下来输入一个正整数M(<=200),代表喜爱的颜色数量,接着输入M个正整数表示喜爱颜色的编号(同一颜色不会出现两次),接下来输入一个 ...
- 洛谷P1301 魔鬼之城 题解
想找原题请点击这里:传送门 题目描述 在一个被分割为N*M个正方形房间的矩形魔鬼之城中,一个探险者必须遵循下列规则才能跳跃行动.他必须从(, )进入,从(N, M)走出:在每一房间的墙壁上都写了一个魔 ...
- MySQL报Too many connections
错误信息 Exception in thread "main" java.sql.SQLNonTransientConnectionException: Data source r ...
- 了解Web的相关知识
一.WWW基础 WWW(world wide web, 万维网)是Internet上基于客户端/服务器体系结构的分布式多平台的超文本超媒体信息服务系统.它利用超文本(hypertext).超媒体(hy ...
- Win10中小娜无法搜索本地应用
解决方案 1.win+X - Windows PowerShell(管理员) 2. 输入Get-AppXPackage -Name Microsoft.Windows.Cortana | Fo ...
- centos上正式环境邮件发送失败问题
用celery异步发送邮件的时候遇到一个问题: 能接收到任务,但是就是执行不了, 也不报错 发现可能是settIngs.py里设置的端口有问题, 现在设置的端口是25, 改成465, 并且把ssl打开 ...
- 洛谷P1198 [JSOI2008]最大数(线段树)
题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:LLL不超过当前数列的长度.(L> ...
- 杭电 2028 ( Lowest Common Multiple Plus )
链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2028 题目要求:就是求最大公倍数,我百度了一下,最好实现的算法就是: 公式法 由于 ...
- (转)notepad++去重
notepad++ 真是强大,几乎你能想到的处理文本方法都可以用它来实现,因为他有强大的插件团! 例如1:去除重复行 先安装TextFx插件 在菜单TextFX-->TextFX Tools下 ...
- php实现简单链式操作mysql数据库类
<?php $dbConfig = require_once(dirname(__FILE__).'/config.php'); class Db{ public $conn; ...