array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 zabbix通过jmx监控tomcat - 爱码网

Zabbix版本: Zabbix 3.0.2

一、服务端配置
1、安装jdk(版本1.7.0_79)
安装与配置比较简单,过程省略。执行java -version命令,出现类似界面表示成功。
zabbix通过jmx监控tomcat
 
2、安装Zabbix-Java-gateway
Zabbix2.0起添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Java-gateway”,它是用java写的一个程序。
有两种方法可以安装Zabbix-Java-gateway,第1种是编译安装zabbix时添加--enable java参数。第2种是单独安装,步骤如下:
# tar zxvf zabbix-3.0.2.tar.gz
# cd zabbix-3.0.2
# ./configure  --enable-java  --prefix=/data/zabbix/zabbix_java  #/data/zabbix是我的zabbix安装目录
# make && make install
3、修改Java-gateway的配置文件并启动它
配置文件路径为/data/zabbix/zabbix_java/sbin/zabbix_java/settings.sh
启用以下参数:
LISTEN_IP="0.0.0.0"       #监听地址
LISTEN_PORT=10052      #监听端口
START_POLLERS=5        # 开启的工作线程数(必须大于等于后面zabbix_server.conf文件的StartJavaPollers参数)
进入/data/zabbix/zabbix_java/sbin/zabbix_java目录,执行
./startup.sh
检查端口是否监听:
# netstat -anp|grep 10052
tcp        0      0 0.0.0.0:10052               0.0.0.0:*                   LISTEN      9613/java

4、修改zabbix_server的配置文件并重启

JavaGateway=127.0.0.1                     # JavaGateway 服务器地址,zabbix_server与zabbix_java_gateway在同一台主机
JavaGatewayPort=10052                    #端口
StartJavaPollers=5

重启zabbix_server

# /etc/init.d/zabbix_server restart
二、客户端配置
1、给tomcat启动脚本添加参数,开启JMX
修改tomcat/bin/下的catalina.sh,添加如下内容:
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=12345  #定义jmx监听端口
-Djava.rmi.server.hostname=客户端IP"
2、下载catalina-jmx-remote.jar
将下载后后的jar包放到被监控的tomcat实例的lib目录下。
3、重启tomcat
4、测试是否可以获取数据
命令行下测试需要cmdline-jmxclient-0.10.3.jar这个包,测试结果如下:
zabbix通过jmx监控tomcat
 
三、导入模板,添加监控
从网上下载了一个不错的模板,导入后如下:
zabbix通过jmx监控tomcat
添加主机,关联模板,出图,效果如下:
zabbix通过jmx监控tomcat
 
四、如何监控单主机多个tomcat
监控多个tomcat实例,网上的详细的配置文档很少,几乎没有。比较好的办法是使用自动发现,但刚使用zabbix,来不及研究,所以采用笨法,修改模板、监控项、图形来达到最终目的。
关键配置:
1、添加主机时添加多个jmx端口
zabbix通过jmx监控tomcat
2、修改监控项、键值
在同一主机上,zabbix不允键值重复,但是监控的项目是一样的,不可能键值写的不重复,经过几番搜索,找到方法如下:
只要在箭头处添加1个空格就可以,也可以是多个。(注意位置不要错,在逗到后面)
zabbix通过jmx监控tomcat
剩下的就是体力活了,复制监控项、修改监控项、复制图形、修改图形。。。
以下是两个tomcat实例的监控项:
zabbix通过jmx监控tomcat
 
最后的监控效果如下:
zabbix通过jmx监控tomcat
 
zabbix通过jmx监控tomcat
 
其它图形就不一一展示了。
 

相关文章: