官网下载包模式安装tomcat的jmx进行zabbix监控
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了官网下载包模式安装tomcat的jmx进行zabbix监控,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4811字,纯文字阅读大概需要7分钟。
内容图文
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 Proxy上启动名为“Zabbix Java Gateway”的进程,当需要获取JMX数据时,Zabbix Server会“问”JMX Gateway,然后JMX Gateway根据JMX管理API去查询需要的数据。在使用时,Java程序不需要在代码中新增任何东西,只需要在启动的时候加上一些JVM参数,使得它可以支持使用端口监控JMX。
一 配置JDK
JDK官网为 http://www.oracle.com/technetwork/java/javase/downloads
下载jdk安装包,解压并移动到/usr/local, 重命名为jdk目录
添加jdk的系统环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
系统立即生效
source /etc/profile
使用java -version查看安装好的JDK
Z abbix服务端的配置操作(已有环境则不需要重复此步骤,即二、三步骤)
二 zabbix编译时添加的编译参数,需要重新编译zabbix,备份 zabbix_server.conf和zabbix_agentd.conf文件
./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --enable-java
添加JMX监控支持--enable-java
报错configure: error: Unable to find "javac" executable in path 安装sudo yum install java*
三 修改zabbix_java相关路径
设定Java gateway 监听的端口和进程个数
cd /usr/local/zabbix/sbin/zabbix_java
sudo vim settings.sh
# vim settings.sh
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
PID_FILE="/tmp/zabbix_java.pid"
START_POLLERS=5
其中 LISTEN_PORT 和 LISTEN_IP 可以不配置,zabbix_java 会采用默认值。但是 PID_FILE 和 START_POLLERS 必须配置,尤其主意 START_POLLERS,若不配置 zabbix_java 依旧可以启动但是是不工作的。
2、修改zabbix_server文件
既然java gateway运行了,你要告诉zabbix server去哪里找java gateway,在配置文件中开启如下几项参数。
在zabbix_server添加以下文件
vi /usr/local/zabbix/etc/zabbix_server.conf
JavaGateway=127.0.0.1
JavaGatewayPort=10052 #和上面的LISTEN_PORT一样
StartJavaPollers=5 #这个数值要小于上面的START_POLLERS
这三项都需要配置,其中StartJavaPollers会被视为开关性质的参数。0或者未配置将被系统认为不具有Java信息抓取能力。这点在 Zabbix JMX Monitoring Wiki 中未提及,但是实际效果就是这样。同时Zabbix Proxy的配置文件解析中也有介绍此参数的含义。
3、启动zabbix_java
在zabbix的安装目录下找到zabbix_java目录路径,然后执行命令./startup.sh,并重启zabbix server。
查看zabbix_java进程:ps -aux |grep zabbix_java
自此Server端已经配置完成,下面配置Agent端的设定。
四 agent端的tomcat环境安装
安装JDK环境(请跳至第一步),并使用java -version查看安装好的JDK
值得注意的是使用yum安装的tomcat下极其不容易配置JMX,建议使用源码包安装
下载需要版本的tomcat源码包文件
解压并移动到/usr/local/目录下,重命名为tomcat
进入tomcat/bin/,执行./startup.sh
如果出现报错
touch: cannot touch ‘/usr/local/tomcat/logs/catalina.out’:No such file or directory
需要创建目录
mkdir /usr/local/tomcat/logs/
问题:使用tomcat/bin下的sh文件启动停止服务会出现
错误: 找不到或无法加载主类 org.apache.catalina.startup.Bootstrap 的报错
需要从官网下载非源码需要编译安装的源码包文件,其bin目录下会包含.jar文件
centos7下使用systemctl管理tomcat服务
在/usr/lib/systemd/system/下创建tomcat.service,写入如下的启动配置内容
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment= ‘JAVA_HOME=/usr/local/jdk‘
Environment= ‘CATALINA_PID=/usr/local/tomcat/bin/tomcat.pid‘
Environment= ‘CATALINA_HOME=/usr/local/tomcat/‘
Environment= ‘CATALINA_BASE=/usr/local/tomcat/‘
Environment= ‘CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC‘
WorkingDirectory= /usr/ local/tomcat
ExecStart= /usr/ local/tomcat/bin/startup.sh
ExecReload= /bin/ kill -s HUP $MAINPID
ExecStop= /bin/ kill -s QUIT $MAINPID
PrivateTmp= true
[Install]
WantedBy=multi-user.target
更新systemd管理库:systemctl daemon-reload
配置开机启动
systemctl enable tomcat
启动tomcat
systemctl start tomcat
停止tomcat
systemctl stop tomcat
重启tomcat
systemctl restart tomcat
五 agent端配置
1、修改tomcat/bin/catalina.sh文件
修改catalina.sh文件,添加
CATALINA_OPTS= "-Xms1024m -Xmx1024m
-XX:NewRatio= 4
-XX:PermSize= 192 m
-XX:MaxPermSize= 192 m
-Xss256k
-XX:SurvivorRatio= 4
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate= false #不进行验证
-Dcom.sun.management.jmxremote.port= 12345 #jmx远程监控端口
-Dcom.sun.management.jmxremote.ssl= false
-Djava.rmi.server.hostname= 10.0.1.13 " #10.0.0.15是Agent的本地IP
就这种方式而言,需要注意的是catalina.sh中提供的默认变量名JAVA_OPTS和CATALINA_OPTS。由于JAVA_OPTS所添加的参数会在tomcat开启和关闭时都运行,所以如果你把 -Dcom.sun.management.jmxremote.port=12345写在JAVA_OPTS中,就会在关闭tomcat时出现如下错误,从而无法关闭。
Error: Exception thrown by the agent : java.rmi.server.ExportException : Port
already in use: 12345 ;nested exception is:
java.net.BindException: Address already in use: JVM_Bind
而CATALINA_OPTS只会在开启tomcat的时候运行,所以应该将这些配置写在CATALINA_OPTS中。
经过N多次测试在catalina.sh文件中添加上面的配置启动不了JMX程序,未做深入研究
后在网上找出以下配置,修改为以下配置则正确启动jmx,配置大概在242行左右
JAVA_OPTS= "-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname= 192.168.1.108
-Dcom.sun.management.jmxremote.port= 6666
-Dcom.sun.management.jmxremote.ssl= false
-Dcom.sun.management.jmxremote.authenticate= false $JAVA_OPTS "
六 添加zabbix监控自定义项
1-1.添加监控主机
1-2.添加tomcat端catalina.sh中配置的信息,如:tomcat端的主机ip地址及启动监听的端口号
2-1.查看数据生成的图表
以上均是从网络上筛选并通过实际验证的解决结果进行总结
具体添加jmx监控主机详情请见附件中的图片
本文出自 “linux窝” 博客,请务必保留此出处http://xiangcc.blog.51cto.com/10201823/1964333
原文:http://xiangcc.blog.51cto.com/10201823/1964333
内容总结
以上是互联网集市为您收集整理的官网下载包模式安装tomcat的jmx进行zabbix监控全部内容,希望文章能够帮你解决官网下载包模式安装tomcat的jmx进行zabbix监控所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。