【图文超详解】Zabbix 6.0监控Tomcat服务操作指引~

Zabbix监控Tomcat服务保姆级教程~

1、介绍

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

mqXNocsh65aa506b31e73.png

从上面的原理图中可以看出,配置Zabbix监控Java应用程序的关键点在于:配置Zabbix-JavaGateway、让Zabbix-Server能够连接Zabbix-JavaGateway、Tomcat开启JVM远程监控功能等。

2、node2主机上(Tomcat服务器)安装JDKrpm包

使用Oracle官网的JDK 8的rpm包

官方下载JDK地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(1)安装下载下来的JDK 8的rpm包

[root@node2 ~]# yum install jdk-8u211-linux-x64.rpm -y

(2)配置java全局变量

[root@node2 ~]# cat /etc/profile.d/jdk.sh  # 设置环境变量
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH

[root@node2 ~]# . /etc/profile.d/jdk.sh  # 使环境变量生效

(3)查看JDK版本

[root@node2 ~]# java -version
java version "1.8.0_211"
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

3、下载安装二进制Tomcat包

(1)从官网下载tomcat二进制安装包 http://tomcat.apache.org/

下载路径:https://archive.apache.org/dist/tomcat/

gH9SWTYN65aa509ba01ce.png

(2)解包,指定解压的目录,并创建软链接

[root@node2 ~]# tar xvf apache-tomcat-8.5.42.tar.gz  -C /usr/local
[root@node2 ~]# ln -sv  /usr/local/apache-tomcat-8.5.42/  /usr/local/tomcat

(3)配置tomcat参数vim /usr/local/tomcat/bin/catalina.sh

CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote  #启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345 # 默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false # 不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false #不使用ssl认证
-Djava.rmi.server.hostname=192.168.7.102" #tomcat主机自己的IP地址,不要写zabbix服务器的地址

(4)以ROOT身份启动Tomcat服务(不推荐,账号破解后就会被黑客以root身份做其他服务的破坏)

[root@node2 tomcat]# ./bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/java/default
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@node2 tomcat]# ss -nlt
State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port             
LISTEN      0      100                                  127.0.0.1:25                                                       *:*                 
LISTEN      0      128                                          *:22                                                       *:*                 
LISTEN      0      50                                        [::]:12345   # 验证监听了12345端口                                               [::]:*                 
LISTEN      0      100                                      [::1]:25                                                    [::]:*                 
LISTEN      0      1                           [::ffff:127.0.0.1]:8005                                                  [::]:*                 
LISTEN      0      50                                        [::]:22567                                                 [::]:*                 
LISTEN      0      100                                       [::]:8009                                                  [::]:*                 
LISTEN      0      50                                        [::]:35756                                                 [::]:*                 
LISTEN      0      100                                       [::]:8080     # 监听8080的tomcat端口                                             [::]:*                 
LISTEN      0      128                                       [::]:22                                                    [::]:*

(5)为了tomcat服务安全起见,最好不要用root用户登录,防止被破解之后存在安全隐患,建议自己新建一个普通用户进行登录 

[root@node2 tomcat]# useradd -r java # #创建一个系统账号,此时就没有家目录
[root@node2 tomcat]# chown -R java.java /usr/local/tomcat/  #将tomcat目录下的文件所有者和所属组都进行修改
[root@node2 tomcat]# su - java -c /usr/local/tomcat/bin/startup.sh  #以java用户形式进行启动tomcat服务

(6)查看此时启动的服务是以java用户进行启动的

BpTB5vP165aa50c54e8f3.png

 (7)网页验证此时的tomcat服务已经可以访问

7nmCycS965aa50de06883.png

(8)在oracle jdk download官网下载windows版本的JDK,安装并验证此时tomcat安装结果。

     官网下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

j2X4xOFp65aa50ffd59dd.png

(9)在安装好的windows版本的JDK后,打开指定的执行程序进行验证:

qAapr5C465aa511bb0b5d.png

(10)远程登录连接(远程此时tomcat主机的IP地址)

8nuh7mHa65aa51307ec50.png(11)连接进去之后有tomcat服务的信息即可,说明安装正确。

c0Vu8DvF65aa5150919bc.png

 4、在zabbix-server服务端机器上安装对应的zabbix-java-gateway包

 (1)在zabbix-server服务器上安装zabbix-java-gateway包。

[root@zabbix ~]# yum install zabbix-java-gateway -y

(2)修改/etc/zabbix/zabbix_java_gateway.conf 配置文件

LISTEN_IP="0.0.0.0"  # 默认监控0.0.0.0的IP地址
LISTEN_PORT=10052 # 默认监控10052端口
START_POLLERS=5  # 启动多少个进程轮询java,要和java 应用保持一定关系
TIMEOUT=30   # 超时时间30s,最大时间也就是30s,尽量超时时长改大点,否则后端服务器还未响应,当大于超时时长才进行响应,此时java-gateway已经显示超时。

核对配置的信息:

[root@zabbix ~]# grep "^[a-Z]" /etc/zabbix/zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/var/run/zabbix/zabbix_java.pid"
START_POLLERS=5
TIMEOUT=30

重启zabbix-java-gateway服务:systemctl restart zabbix-java-gateway

(3)修改vim /etc/zabbix/zabbix_server.conf 配置文件

JavaGateway=192.168.7.100 # 数据库的IP地址,此时的数据库IP地址和zabbix-server在同一机器,也可以分开配置
JavaGatewayPort=10052 # 默认监听的是10052端口
StartJavaPollers=5  #启动多少个进程去轮询java gateway,要和java gateway的配置一致

重启zabbix-server服务:systemctl restart zabbix-server

(4)查看此时的进程数,就会看到有5个进程

XZkgucVO65aa517b61db7.png

 5、登陆zabbix网页:192.168.7.100/zabbix/index.html,添加JMX接口

(1)在原有的主机上进行选择,然后将之前配置好的机器进行克隆。

hTbFCE4l65aa5195b3f72.png

(2)克隆一个新的模板,不需要自己手动新建,节约时间。

95QjPURL65aa51b2f1536.png

 (3)添加JMX接口:tomcat服务对应的IP地址

72gt492L65aa51cfd6a73.png

(4)node2上添加Tomcat JMX模板(最好添加自定义的模板,此模板显示不是很全面)

fG7C3Imr65aa51f5e384c.png注意:以下是导入个人自定义的模板:先点击导入(推荐导入个人自定义模板)

fiRPA1gi65aa53e166034.png

选择自定义模板,并导入

zu4edYAv65aa53a788db8.png

(5)此时可以看到zabbix-web界面已经显示JMX变绿色的图标,说明配置正确。

eAWJtphW65aa52c1bd1c6.png

(6)在安装了tomcat服务的基础上安装zabbix-agent包,将agent也监控上

[root@node2 ~]# yum install zabbix-agent  -y  # 安装zabbix-agent包

(7)配置zabbix-agent文件:vim /etc/zabbix/zabbix_agentd.conf

Server=192.168.7.100   # zabbix服务端的IP地址
Hostname=192.168.7.102 # 本机node2主机的IP地址,或者起一个与zabbix服务器端不重名的名称
ListenPort=10050    # 本机监听的端口
ListenIP=0.0.0.0   # 允许监听在本机的地址,0.0.0.0 是监听所有

(8)重启zabbix-agent服务

# systemctl restart zabbix-agent

(9)在zabbix-server服务端进行测试验证此时的zabbix-agent是否正常

[root@zabbix ~]# zabbix_get -s 192.168.7.102 -p 10050 -k "agent.ping"  # 显示结果是1,说明配置正常

(10)在zabbix网页上配置zabbix-agent

5BdbrPCs65aa52f0ba62e.png

 添加Template OS Linux模板,然后点击更新即可。

pytyTW9v65aa53068e9e8.png 查看此时监控的agent和tomcat都显示绿色,说明监控正常。

AIO9kftg65aa531e1bcb4.png

 

 以上就是Zabbix 6.0监控Tomcat服务的全部操作流程。乐维社区是国内较大的专业运维监控技术交流平台,致力于为广大运维人员提供运维技术交流互助空间,更多Zabbix技术知识欢迎加入乐维社区。此外,更多Zabbix部署问题、Zabbix开发问题等也欢迎到乐维社区留言

McGPrWDO64ddf048aa408.png

0 条评论

请先 登录 后评论
乐维君
乐维君

381 篇文章

作家榜 »

  1. 乐维君 381 文章
  2. YOHOHO 14 文章
  3. 机灵小和尚 13 文章
  4. 我是一只小菜鸡 12 文章
  5. 细雨闲花 11 文章
  6. 。。。 9 文章
  7. 御前侍卫张五哥 9 文章
  8. 小黄人 8 文章