使用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实战案例的更多相关文章

  1. zabbix java gateway配置实战案例

    zabbix java gateway配置实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.部署tomcat服务 博主推荐阅读: CentOS: https://www. ...

  2. Zabbix Server 监控Web页面

    Zabbix Server 监控Web页面 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  1>.选中一台可以连接互联网的主机 2>.创建一个web场景,点击“Crea ...

  3. zabbix server监控报主机 Lack of free swap space

    zabbix server监控报主机 Lack of free swap space,因为交换空间不足引起.该主机内存为3G,正常交换空间大小为物理内存2倍左右. #查看已有内存及交换空间 free ...

  4. zabbix 自定义监控项简单案例

    例如:获取被监控主机的登录用户数 以uptime为例: 输入命令:uptime | awk '{print $6}'  可以获得当前登录用户数(不通终端打印出的位置不同) 1.被监控主机修改zabbi ...

  5. 使用Zabbix监控Nginx服务实战案例

    使用Zabbix监控Nginx服务实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.编译安装nginx步骤详解并开启状态页 博主推荐阅读: https://www.cn ...

  6. zabbix proxy配置实战案例

    zabbix proxy配置实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.zabbix proxy概述 上一篇博客我们分享了zabbix agent有两种工作模式,即 ...

  7. 运维监控-使用Zabbix Server 添加自定义 item

    运维监控-使用Zabbix Server 监控自定义 item  作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客就直接开门见山如何使用Zabbix Server 监控自定义 ...

  8. Zabbix Server 自带模板监控有密码MySQL数据库

    Zabbix Server 自带模板监控有密码MySQL数据库 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.  一.Zabbix-agent端的配置 1>.为数据库设置密码 ...

  9. zabbix Server 4.0监控Flume关键参数

    zabbix Server 4.0监控Flume关键参数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Flume本身提供了http, ganglia的监控服务.当然我们也可以使用 ...

随机推荐

  1. 高级T-SQL进阶系列 (一)【上篇】:使用 CROSS JOIN 介绍高级T-SQL

    [译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文连接:传送门 这是一个新进阶系列的第一篇文章,我们将浏览Transact-SQL(T-SQL)的更多高级特性.这个进阶系列将会包 ...

  2. 命令关闭tomcat

    1.netstat -ano|findstr 8080(默认端口为8080) 2. taskkill /F /PID 17652 关闭后面的进程号(17652),直到输入上面第三个命令查不到占用808 ...

  3. apache 配置虚拟目录

    #注释掉apache默认的网站目录地址 #DocumentRoot "c:/Rrogram Files/Apache/htdocs" #配置一个虚拟目录 <ifModule ...

  4. PAT T1012 Greedy Snake

    直接暴力枚举,注意每次深搜完状态的还原~ #include<bits/stdc++.h> using namespace std; ; int visit[maxn][maxn]; int ...

  5. python笔记心得

    1.字典的映射 day=10# def get_sunday():# return 'Sunday'# def get_monday():# return 'monday'# def get_tues ...

  6. MySQL之关键字

    关键字: select * from 表名 where group by having distinct order by limit a,b between * and * 测试数据 # 测试数据 ...

  7. Struts2学习(四)

    struts-defualt.xml指定的result的类型 1.struts-defualt.xml 文件的 181 行 开始定义了: <result-types> <result ...

  8. 【python-leetcode25-翻转链表】K 个一组翻转链表

    问题描述: 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小于或等于链表的长度. 如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序. 示例 ...

  9. 0-1背包问题(0-1 knapsack problem)

    0-1背包问题描述:一个正在抢劫商店的小偷发现了n个商品,第i个商品价值 vi 美元,重 wi 磅,vi 和 wi 都是整数.这个小偷希望拿走价值尽量高的商品,但他的背包最多能容纳 S 磅重的商品,S ...

  10. AtCoder agc007_d Shik and Game

    洛谷题目页面传送门 & AtCoder题目页面传送门 有\(1\)根数轴,Shik初始在位置\(0\).数轴上有\(n\)只小熊,第\(i\)只在位置\(a_i\).Shik每秒可以向左移动\ ...