zabbix监控tomcat中MBean属性的值

来源:互联网 发布:mac照片怎么翻页 编辑:程序博客网 时间:2024/05/21 19:46

zabbix监控Tomcat中java程序MBean属性


环境配置

操作系统 Ubuntu 16.04.3

zabbix版本 zabbix-3.4.1

jdk版本 jdk-1.8.0_131

tomcat版本 8.0.30


环境搭建

一、jdk的安装(1.8.0_131)

首先下载Jdk安装包(jdk-8u131-linux-x64.tar.gz),解压文件,配置环境变量

vim /etc/profile

在文件的末尾加上下列配置

export JAVA_HOME=/home/suser/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

保存退出

source /etc/profile  环境变量生效

执行java -version 后 出现下列界面表示jdk安装成功


二、zabbix安装(3.4.1)

首先先配置下载源:

1、配置zabbix软件下载源

# wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+xenial_all.deb   

# dpkg -i zabbix-release_3.4-1+xenial_all.deb

# apt-get update

2、安装zabbix服务端

# apt-get install zabbix-server-mysql zabbix-frontend-php

3、安装zabbix agent:

# apt-get install zabbix-agent

4、安装zabbix
# apt-get install zabbix-java-gateway


5、配置zabbix-server.conf

# vim /etc/zabbix/zabbix_server.conf 

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=zabbix


6、配置mysql

# mysql

进入mysql后使用下列命令:

mysql>create database zabbix character set utf8 collate utf8_bin;

mysql>grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

mysql>flush privileges;

mysql>exit;

bye

然后就是导入mysql数据:

# zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix

# cp -r /usr/share/zabbix /var/www/html/zabbix

# /etc/init.d/zabbix-server start      //启动zabbix-server 服务


7、配置PHP

在安装zabbix-frontend-php时,在/etc/zabbix/存在apache.conf文件,编辑此文件

# vim /etc/zabbix/apache.conf

将下列这一行:

php_value date.timezone Europe/Rome

修改为:

php_value date.timezone Asia/Shanghai

注意有可能有两行(mod_php5.c/mod_php7.c),如果你不知道改哪行就两行一起改

重启apache2

# service apache2 start

重启zabbix服务

# /etc/init.d/zabbix-server restart


到此服务端的配置已经配好,支持java的后面再详细说明,接下来进行web端配置


8、网页配置

在浏览器输入http://zabbix服务端ip地址/zabbix 并访问

如果界面出现welcome to zabbix 3.4说明你的服务端配置没问题,如果访问时出现php文件,说明你的服务端php环境没有配好

这是我遇到的问题:

zabbix web 界面在浏览器总是显示源码
是因为少个扩展,ubuntu下直接
apt-get install libapache2-mod-php7.0

如果都没啥问题就直接点击 Next step;

在第二个界面上 会有很多键值对

查看是否所有的值都显示 ok ,再次点击Next step

输入数据库的用户名和密码zabbix/zabbix,检查并点击Next step 一直到出现 congragulations!you hava seccessfully installed Zabbix frontend然后点击Finish.

出现zabbix登录界面

输入用户名密码 Admin/zabbix(默认的注意Admin大写开头)


不出意外应该就能登录到zabbix界面了


接下来我们来讲讲中文乱码的解决方案:

找到本地C:\Windows\Fonts 下面这个文件simkai.ttf 将其上传到服务器/var/www/html/fonts/目录下


修改zabbix的web端 /var/www/html/include/defines.inc.php 

# vim /var/www/html/include/defines.onc.php

将文件中的原先两行修改成下列两行(文件比较大找这两行只需在编辑器中未编辑状态输入 /ZABBIX_FONT_NAME 和 /ZABBIX_GRAPH_FONT_NAME 找到并修改)

define('ZABBIX_FONT_NAME','simkai')

define('ZABBIX_GRAPH_FONT_NAME','simkai')

有可能你连中文选项都没有

可以通过find / -name locales.inc.php

找到该文件并编辑

将文件中'name' => _('Chinese (zh_CN)') 后的deplay改为 'deplay' => true

重启web服务应该就能解决


以上到此均是zabbix服务端的配置,接下来就是zabbix如何监控tomcat中的自定义的MBean

首先先安装tomcat这里不再详细说明安装过程

进入tomcat安装目录bin目录下

修改catalina.sh

CATALINA_OPTS="-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=12345-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false-Djava.rmi.server.hostname=tomcat主机地址"

启动tomcat查看端口12345是否在监听

配置zabbix_java_gateway.conf文件

LISTEN_IP="0.0.0.0"

LISTEN_PORT=10052

START_POLLERS=5

修改服务端zabbix_server.conf文件

JavaGateway=192.168.89.204
JavaGatewayPort=10052
StartJavaPollers=5     //要和zabbix_java_gateway.conf中的配置数一样


启动zabbix-java-gateway服务

# /etc/init.d/zabbix-java-gateway start

重启zabbix-server服务

# /etc/init.d/zabbix-server restart


下载本机的测试工具

cmdline-imxclient-0.10.3.jar(自己想办法下载)

下载后执行

java -jar cmdline-jmxclient-0.10.3.jar -127.0.0.1:12345 java.lang:type=Memory NonHeapMemoryUsage

出现下列回显说明jmx配置成功



我使用的都是默认的模板(用使用别的模板自己去下载,具体我也没试过)


添加JMX端口


然后接下来选择监测中->图形 选择想要显示的图形



到此zabbix监测tomcat的已经成功,但还是存在很多问题,好多东西都不支持,我暂时还没有去搞明白


那么接下来就是如何去监控tomcat中部署的java程序中的自定义的MBean了

这里我写了一个简单的HelloJMX,这里我只写简单的Demo,我使用的是springboot项目,因为其内嵌有tomcat,所以我做了一些配置,不使用内置的tomcat启动


下面这些都是参照网上的东西自己写的






还有我的pom文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>


<groupId>com.example.jmx</groupId>
<artifactId>jmxDemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>


<name>demo</name>
<description>Demo project for Spring Boot</description>


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.7.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>


<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>


<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
    <groupId>com.sun.jdmk</groupId>
    <artifactId>jmxtools</artifactId>
    <version>1.2.1</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <!-- 移除嵌入式tomcat插件 -->
  <exclusions>
    <exclusion>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>  
            <groupId>javax.servlet</groupId>  
            <artifactId>javax.servlet-api</artifactId>  
        </dependency>
<dependency>
  <groupId>org.apache.tomcat</groupId>
  <artifactId>tomcat-servlet-api</artifactId>
  <version>8.0.30</version>
  <scope>provided</scope>
</dependency>
</dependencies>


<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

以上就是我自定义的MBean项目,将项目达成war包放入服务器中的tomcat中,启动tomcat,然后使用jconsole.exe(本地jdk安装路径中bin目录下双击打开即可)


打开后


使用远程连接输入ip:port  (第一次是端口号没输连接按钮显示灰色,还以为连不了,比较尴尬) 出现下图表示成功连到了


然后点击MBean按钮,下图的红色框框中出现的就是我程序中自定义的MBean


代码中的位置:


至此我们的MBean已经注册到MBeanServer中


接下来讲解如何进行zabbix进行监控Mean的属性

zabbix Web界面上点击 主机 按钮,选择监控项 ,创建监控项


点击添加就行了。

在Jconsole中给Message属性进行赋值 zabbix web 如果能监测到该值说明可以监测到该MBean属性了

如果在zabbix web的监测中的最新数据中出现下图:(说明已经监测到该属性)

 



原创粉丝点击