zabbix实现对java应用的监控【tomcat】【JMX】

tomcat的官方说明文件


文章目录


软件需要

apache-tomcat-8.5.24.tar.gz
jdk-8u121-linux-x64.rpm


知识点说明

Tomcat

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。


jdk

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。


JMX

JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。


原理展示

zabbix实现对java应用的监控【tomcat】【JMX】

当Zabbix-Server需要知道java应用程序的某项性能的时候,会启动自身的一个Zabbix-JavaPollers进程去连接Zabbix-JavaGateway请求数据,而ZabbixJavagateway收到请求后使用“JMXmanagementAPI”去查询特定的应用程序,而前提是应用程序这端在开启时需要“-Dcom.sun.management.jmxremote”参数来开启JMX远程查询就行。Java程序会启动自身的一个简单的小程序端口12345向Zabbix-JavaGateway提供请求数据。


实验环境

主机 服务
server1(172.25.12.1) zabbix-server、
server2(172.25.12.2) zabbix-agent

实验演示

server2安装配置:

1.安装tomcat

[root@server2 ~]# ls
apache-tomcat-8.5.24.tar.gz  jdk-8u121-linux-x64.rpm
[root@server2 ~]# tar zxf apache-tomcat-8.5.24.tar.gz 
[root@server2 ~]# cd /usr/local/
[root@server2 local]# ls
bin  etc  games  include  lib  lib64  libexec  sbin  share  src
[root@server2 local]# mv ~/apache-tomcat-8.5.24 .
[root@server2 local]# ln -s apache-tomcat-8.5.24/ tomcat  #软链接
[root@server2 local]# ll
total 0
drwxr-xr-x  9 root root 160 Aug 21 04:05 apache-tomcat-8.5.24
drwxr-xr-x. 2 root root   6 Mar 10  2016 bin
drwxr-xr-x. 2 root root   6 Mar 10  2016 etc
drwxr-xr-x. 2 root root   6 Mar 10  2016 games
drwxr-xr-x. 2 root root   6 Mar 10  2016 include
drwxr-xr-x. 2 root root   6 Mar 10  2016 lib
drwxr-xr-x. 2 root root   6 Mar 10  2016 lib64
drwxr-xr-x. 2 root root   6 Mar 10  2016 libexec
drwxr-xr-x. 2 root root   6 Mar 10  2016 sbin
drwxr-xr-x. 5 root root  49 Jul 30 21:07 share
drwxr-xr-x. 2 root root   6 Mar 10  2016 src
lrwxrwxrwx  1 root root  21 Aug 21 04:06 tomcat -> apache-tomcat-8.5.24/
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm  #解压jdk模块
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8.0_121-2000:1.8.0_121-fcs  ################################# [100%]
Unpacking JAR files...
	tools.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...
	rt.jar...
	jsse.jar...
	charsets.jar...
	localedata.jar...

2.更改tomcat的配置文件

vim catalina.sh    #在tomcat文件中添加JMA参数
CATALINA_OPTS='-Dcom.sun.management.jmxremote  #开启远程监控
  -Dcom.sun.management.jmxremote.port=%my.jmx.port%  #远程监控端口
  -Dcom.sun.management.jmxremote.ssl=false    #远程ssl验证为false
  -Dcom.sun.management.jmxremote.authenticate=false'


[root@server2 bin]# ./startup.sh    #改完后开启tomcat

zabbix实现对java应用的监控【tomcat】【JMX】
zabbix实现对java应用的监控【tomcat】【JMX】

查看端口状况:netstat -tnlp
确保我们配置的端口正常开启即可。
zabbix实现对java应用的监控【tomcat】【JMX】

在网页*问server2的8080端口,查看tomcat是否正常zabbix实现对java应用的监控【tomcat】【JMX】

server1安装配置

安装zabbix-java-gateway,开启,并设置开机自启:

[root@server1 ~]# yum install zabbix-java-gateway -y
[root@server1 ~]# systemctl start zabbix-java-gateway
[root@server1 ~]# systemctl enable zabbix-java-gateway
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-java-gateway.service to /usr/lib/systemd/system/zabbix-java-gateway.service.
[root@server1 ~]# netstat -tnlp | grep 10052
tcp6       0      0 :::10052                :::*                    LISTEN      8853/java           

zabbix实现对java应用的监控【tomcat】【JMX】

更改配置文件:

vim /etc/zabbix/zabbix_server.conf
systemctl restart zabbix-server

zabbix实现对java应用的监控【tomcat】【JMX】

页面配置

只需要给server加上jmx接口和IP指向,并且加入java模版即可。

zabbix实现对java应用的监控【tomcat】【JMX】

zabbix实现对java应用的监控【tomcat】【JMX】

zabbix实现对java应用的监控【tomcat】【JMX】


大大的小小阳

上一篇:java – 标准MBean的描述


下一篇:java – 覆盖Spring Boot中AnnotationMBeanExporter上的默认RegistrationPolicy