博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
monitoring tomcat with zabbix
阅读量:6120 次
发布时间:2019-06-21

本文共 5254 字,大约阅读时间需要 17 分钟。

                                        |                                        

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

一. Zabbix 的JMX监控架构

二.安装Java gateway[zabbix服务端操作]

1.安装jdk

首先要安装jdk,我的系统位redhat 6.4 x64位,我使用rpm包安装jdk,从 server

1
rpm -ivh jdk-7u79-linux-x64.rpm

安装成功之后添加系统环境变量

1
vi /etc/profile

添加如下

1 2 3 4 5
JAVA_HOME=/usr/java/jdk1.7.0_79 JRE_HOME=/usr/java/jdk1.7.0_79/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME PATH CLASSPATH

使配置生效

1
source /etc/profile

测试,输入

1
java -version

如果显示如下信息表示jdk安装完成

1 2 3 4
java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode) You have mail in /var/spool/mail/root

2.安装Java gateway

可使用rpm进行安装,我使用源码安装,大家可在安装zabbix时启用—enable-java参数即可安装zabbix java gateway,如果第一次没有加载,可重新加载编译安装,我使用以下参数安装

1
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

以上参数可安装zabbix server,java gateway,snmp,zabbix agent

,建议大家使用。

3.配置Java gateway

安装好之后可在/usr/local/zabbix/sbin/目录下看到zabbix_java目录(具体根据实际安装情况)

编辑配置文件

1 2 3 4 5
vi /usr/local/zabbix/sbin/zabbix_java/settings.sh LISTEN_IP="127.0.0.1" LISTEN_PORT=10052 PID_FILE="/tmp/zabbix_java.pid" START_POLLERS=5

修改zabbix server配置文件

1 2 3 4
vi /usr/local/zabbix/etc/zabbix_server.conf JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=5

4.启动测试Java gateway

启动Java gateway

1
/usr/local/zabbix/sbin/zabbix_java/startup.sh

可使用

1
netstat -lntp | grep 10052

查看是否已经监听10052端口,如果已监听,表示启动成功,如果没有,可通过zabbix_server日志查看解决.

5.添加catalina-jmx-remote.jar

添加catalina-jmx-remote.jar到zabbix java gateway的lib目录下,catalina-jmx-remote.jar包可在

1 2
cd /usr/local/zabbix/sbin/zabbix_java/lib/ wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.61/bin/extras/catalina-jmx-remote.jar

并重启zabbix和java gateway

1 2 3
/usr/local/zabbix/sbin/zabbix_java/shutdown.sh /usr/local/zabbix/sbin/zabbix_java/startup.sh /etc/init.d/zabbix-server restart

6.下载测试工具cmdline-jmxclient-0.10.3.jar

cmdline-jmxclient-0.10.3.jar为一个测试工具,可用来测试jmx是否配置正确,下载cmdline-jmxclient-0.10.3.jar(下载到任意目录)

1
wget http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar

三.被监控tomcat 配置[被监控tomcat操作]

1.添加catalina-jmx-remote.jar

添加catalina-jmx-remote.jar文件到tomcat的lib目录

1 2
cd /opt/apache-tomcat/lib/ wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.61/bin/extras/catalina-jmx-remote.jar

2.修改setenv.sh

1
vi /opt/apache-tomcat/bin/setenv.sh

添加如下

1 2 3 4 5
CATALINA_OPTS="${CATALINA_OPTS} -Djava.rmi.server.hostname=192.168.7.186" CATALINA_OPTS="${CATALINA_OPTS} -Djavax.management.builder.initial=" CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote=true" CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.ssl=false" CATALINA_OPTS="${CATALINA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false"

注意:hostname位机器ip地址,即被监控机器对外服务地址

3.修改server.xml

1
vi /opt/apache-tomcat/conf/server.xml

添加如下,注意添加位置在

1

之后添加如下代码

1

4.添加tomcat应用自动发现脚本

由于默认的jmx不能自动发现部署的新应用,因此需要添加一个脚本自动发现,并且利用zabbix的LLD(Low-level discovery)来发现

1 2 3 4 5 6 7 8
mkdir /opt/tomcat/ mkdir /tmp/tomcat/ chmod -R 777 /tmp/tomcat/ cd /opt/tomcat/ wget http://dl.cactifans.org/tools/context.sh wget http://dl.cactifans.org/tools/cmdline-jmxclient-0.10.3.jar chmod a+x /opt/tomcat/context.sh echo "*/1  *  *  *  * root /opt/tomcat/context.sh" >>/etc/crontab

context.sh脚本内容

1 2
#!/bin/bash java -jar /opt/tomcat/cmdline-jmxclient-0.10.3.jar - 192.168.7.186:12345 Catalina:type=Manager,*| awk -F "," '{ print $1 }'|awk -F: '{ print $2 }'>/tmp/tomcat/context.csv

此脚本在被监控端添加,注意要把ip改成本机的服务IP地址

添加一个应用自动发现的程序,我放到zabbix agent的bin目录下

1 2 3
cd /usr/local/zabbix/bin/ wget http://dl.cactifans.org/tools/context chmod a+x /usr/local/zabbix/bin/context

修改zabbix agentd设置,添加应用自动发现的key

1 2 3
vi /usr/local/zabbix/etc/zabbix_agentd.conf #tomcat UserParameter=tomcat.context.discovery,/usr/local/zabbix/bin/context

重启tomcat

1 2
/opt/apache-tomcat/bin/shutdown.sh /opt/apache-tomcat/bin/startup.sh

重启zabbix agent

1
service zabbix-agent restart

注:防火墙需要开放12345,12346端口

四.测试并添加

1.测试

在zabbix server上执行

1
java -jar /root/cmdline-jmxclient-0.10.3.jar - 192.168.7.186:12345 java.lang:type=Memory NonHeapMemoryUsage

如果有如下回显表示jmx配置正确,如不正确,请检查配置

1 2 3 4 5
07/23/2015 23:25:29 +0800 org.archive.jmx.Client NonHeapMemoryUsage: committed: 271646720 init: 270991360 max: 587202560 used: 38207984

在zabbix server上用zabbix_get执行

1
zabbix_get -s 192.168.7.153 -k tomcat.context.discovery

如果能回显如下数据表示获取成功

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
{
   "data": [        {
           "{#CONTEXT}": "context=/manager"        },        {
           "{#CONTEXT}": "context=/omai"        },        {
           "{#CONTEXT}": "context=/examples"        },        {
           "{#CONTEXT}": "context=/docs"        },        {
           "{#CONTEXT}": "context=/"        },        {
           "{#CONTEXT}": "context=/host-manager"        }    ] }

2.添加模版

模版我已经做好了大家可直接倒入使用

模版下载:
导入到zabbix,并关联到主机

五.最终效果

本文转自 msj0905 51CTO博客,原文链接:http://blog.51cto.com/sky66/1680406

转载地址:http://jwqka.baihongyu.com/

你可能感兴趣的文章
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
Oracle表分区
查看>>
centos 下安装g++
查看>>
嵌入式,代码调试----GDB扫盲
查看>>
类斐波那契数列的奇妙性质
查看>>
配置设置[Django]引入模版之后报错Requested setting TEMPLATE_DEBUG, but settings are not configured....
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>