Tomcat java zabbix 监控

排除汤姆猫错误的步骤

ps-ef | grep java或jps –lvm 查看java pid进程

netstat –lntup | grep java 查看java 端口有没有启动

查看 tomcat 日志 tailf /application/tomcat/logs/catalina.out

show-busy-java-threads.sh 打印系统排名前五的java进程,查看那个进程占用内存高。

tomcat java远程监控

下载jkd http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在C:\Program Files\Java\jdk1.8.0_31\bin下 找 jconsole.exe

开启tomcat远程监控功能

  1. vim /application/tomcat8_1/bin/catalina.sh +97

  1. CATALINA_OPTS="$CATALINA_OPTS
  2. -Dcom.sun.management.jmxremote
  3. -Dcom.sun.management.jmxremote.port=12345
  4. -Dcom.sun.management.jmxremote.authenticate=false
  5. -Dcom.sun.management.jmxremote.ssl=false
  6. -Djava.rmi.server.hostname=10.0.0.17"

做解析不然报错

  1. 需要做解析 echo     "10.0.0.17 web03 " >> /etc/hosts

重启汤姆猫查看端口

  1. /application/tomcat8_1/bin/shutdown.sh
  2. /application/tomcat8_1/bin/startup.sh
  3. netstat -tunlp|grep 12345
  4. tcp6 0 0 :::12345 :::* LISTEN 24388/java

用jconsole连接

端口12345

jvisualvm远程链接

右键添加主机

右键添加jvm

zabbix 监控 tomcat

zabbix需要开启java监控

修改zabbix-server配置文件

  1. sed -i -e ‘220a JavaGateway=127.0.0.1‘ -e ‘236a StartJavaPollers=5‘ /etc/zabbix/zabbix_server.conf

JavaGateway=127.0.0.1 网关地址(本机ip地址)

StartJavaPollers=5 java线程

在服务端安装zabbix_java_gateway

需要安装jdk(openjdk)

yum 安装自动安装

启动 zabbix_java_gateway

  1. systemctl start zabbix-java-gateway.service
  2. netstat -tunlp|grep java

tomcat开启远程监控功能(每个实力都要做)

新键主机

搜索jmx 添加两默认模板

jmx连接了

Tomcat安全优化

降权启动

先杀掉java进程

[[email protected] ~]# pkill java

[[email protected] ~]# pkill java

  1. [[email protected] ~]# useradd tomcat 新建一个用户
  2. [[email protected] ~]# cp -a /application/tools/tomcat8_1 /home/tomcat/ 把测试文件复制到 home目录下
  3. [[email protected] ~]# chown -R tomcat.tomcat /home/tomcat/tomcat8_1/ 给文件权限
  4. [[email protected] ~]# su -c ‘/home/tomcat/tomcat8_1/bin/startup.sh ‘tomcat 以tomcat用户启动
  5. Using CATALINA_BASE: /home/tomcat/tomcat8_1
  6. Using CATALINA_HOME: /home/tomcat/tomcat8_1
  7. Using CATALINA_TMPDIR: /home/tomcat/tomcat8_1/temp
  8. Using JRE_HOME: /application/jdk
  9. Using CLASSPATH: /home/tomcat/tomcat8_1/bin/bootstrap.jar:/home/tomcat/tomcat8_1/bin/tomcat-juli.jar
  10. Tomcat started.
  11. [[email protected] ~]# ps -ef|grep tomcat 查看tomcat进程用户

其他安全优化都在http://www.cnblogs.com/jksbaduen/p/7903539.html

Tomcat优化

上策: java 代码优化

中策: jvm 优化机制 垃圾回收机制,把不需要的内存回收。

优化jvm—就是优化垃圾回收机制

下策: 买买买加内存

下下策: 定时重启tomcat

简单的jvm优化

1G内存优化

内存给tomcat 75%左右或者 3/4

修改核心配置文件

  1. vim/home/tomcat/tomcat8_1/bin/ catalina.sh +97

插入下面的代码

  1. JAVA_OPTS="-Djava.awt.headless=true?-Dfile.encoding=UTF-8?-server?-Xms800m?-Xmx800m?-XX:NewSize=400m?-XX:MaxNewSize=400m?-XX:PermSize=400m?-XX:MaxPermSize=400m"
  1. server:一定要作为第一个参数,在多个CPU时性能佳
  2. -Xms:初始堆内存Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
  3. -Xmx:初始堆内存heap最大值,使用的最大内存
  4. 上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
  5. -XX:PermSize:设定内存的永久保存区域
  6. -XX:MaxPermSize:设定最大内存的永久保存区域
  7. -XX:MaxNewSize:
  8. -Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
  9. +XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
  10. -Xss:每个线程的Stack大小
  11. -verbose:gc 现实垃圾收集信息
  12. -Xloggc:gc.log 指定垃圾收集日志文件
  13. -Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
  14. -XX:+UseParNewGC :缩短minor收集的时间
  15. -XX:+UseConcMarkSweepGC :缩短major收集的时间

重启服务

  1. su -c ‘/home/tomcat/tomcat8_1/bin/ shutdown.sh ‘ tomcat
  2. su -c ‘/home/tomcat/tomcat8_1/bin/ startup.sh ‘ tomcat
时间: 2024-10-12 04:27:39

Tomcat java zabbix 监控的相关文章

Zabbix 监控 tomcat 连接池(报错org.archive.jmx.Client ...is not a registered bean)

Zabbix 监控 tomcat 连接池 一.     前言 领导提出需求,需要监控tomcat的连接池,之前已经通过zabbix监控了jvm(关于jvm监控这部分,后续补上).在网上找了很多教程,经历了很多坑,不过还是要感谢那些帮助过我的人,踩着坑搞出来,也是记忆犹新呀. 二.     基础环境 操作系统:Centos 6.8 Jdk:1.8.0_77(jdk最好是1.7及以上) Tomcat:7.0.69 Zabbix:3.0.3 三.     环境部署 (一)         Zabbix

企业——Zabbix使用JMX监控tomcat(JAVA类应用)

一.JMX的简介 JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架. JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构.设计模式.应用程序接口以及服务.通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存.重新加载配置文件等.优点是可以非常容易的使应用程序被管理.伸缩性的架构使每个JMX Agent服务可以很容易的放入到Agent中,每个JMX的实现都提供几个核心的Agent服务

Zabbix监控Tomcat状态

安装Tomcat 确定已经安装好Tomcat Java支持 编译安装zabbix server需要加上--enable-java以支持jmx监控,如果之前的zabbix server没加,那么请重新编译安装, # ./configure --prefix=/usr/local/zabbix-3.0.0/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libc 启动Tomcat # /usr/local/tom

Zabbix 监控Tomcat

Zabbix监控Tomcat 一.环境 两台服务器,一台是Zabbix_java_Server ,另一台Tomcat-Server 需要用到的文件:catalina-jmx-remote.jar cmdline-jmxclient-0.10.3.jar 二.Tomcat-Server被控端配置 # cd /usr/java/apache-tomcat-8.0.30/bin # vim catalina.sh 添加如下内容: CATALINA_OPTS="-Dcom.sun.management.

zabbix监控tomcat(2)

zabbix监控tomcat 1.编译zabbix的时候需要添加参数--enable-java 关于如何安装zabbix,可以参考上一篇文章http://blog.unix178.com/ 备份zabbix_server.conf和zabbix_agentd.conf文件,重新编译安装zabbix [[email protected] zabbix-2.2.0]# ./configure --enable-server --enable-agent     --with-mysql --enab

官网下载包模式安装tomcat的jmx进行zabbix监控

JMX的全称是Java Management Extensions,即Java管理扩展.Java程序会开放一些端口,用来获取运行状况.在Zabbix 1.8以前,只能使用Zapcat来监控JMX,并需要修改源代码来支持,非常麻烦.另一种方法是使用jmx-cmd-client,他的作用是从命令行去获取JMX信息,可以在它的上层包装一个程序,用来获取JMX数据. 从Zabbix 2.0开始,内置了监控JMX的功能,叫做"Zabbix Java Gateway",在Zabbix Server

ZABBIX监控一台机器上的多tomcat实例落地经验步骤

以前做过通过jmx监控单个tomcat实例,但是有的时候公司一台服务器上有10个tomcat容器那怎么办呢,来吧往下看吧 1,注意操作文件路径: zabbix安装路径: /data/zabbix/etc/zabbix_agentd.conf.d/jmx_discovery.sh /etc/zabbix/zabbix_agentd.conf 配置文件中 UnsafeUserParameters=1 必须打开,否则模板的自动发现功能报错. 该模板的监控和触发属性在自动发现中配置,所以导入模板后,下属

Zabbix监控DB,Tomcat

因项目需要,Zabbix要监控SQL server的连接数,MySQL以及tomcat,下面是对监控上述item的简要介绍. 1. SQL server连接数 1.1 SQL server连接数 1. SQL Server查询当前连接数 2. Sql Server当前并发连接数的查看方法 3. 亲测SQLServer的最大连接数 4. SQL SERVER用户数.连接数.连接池License SELECT * FROM [Master].[dbo].[SYSPROCESSES] WHERE [D

Zabbix监控Tomcat及Nginx

注:本篇博文是基于部署zabbix监控服务器的环境进行的.这里将开启一台client服务器(被监控端)用于测试. 博文大纲:一.监控Tomcat二.监控Nginx服务器 一.监控Tomcat 监控Tomcat需要用到zabbix_java_gateway这个组件(在zabbix2.0引入的功能),顾名思义就是:Java网关,类似于agentd,但是只用于Java方面.需要注意的是,它只能主动去获取数据,而不能被动获取数据.它的数据最终会提交到server端或proxy. 如果需要开启监控Tomc