zabbix监控jmx

zabbix监控jmx背景:目前公司用的主要语言就是java,然后在运维过程中会遇到频繁的内存溢出的情况,之前使用过elk日志分析系统可以实时的判断出内存溢出的情况,但是无法查看内存的使用情况,只能通过dump文件查看内存溢出的时候dump下来的文件去分析。这样也无法准确的判断出问题。zabbix可以监控java,并且将内存的使用情况实时的展现出来,这是一个不错的选择。JMX的全称是JavaManagement…

大家好,又见面了,我是你们的朋友全栈君。

背景:目前公司用的主要语言就是java,然后在运维过程中会遇到频繁的内存溢出的情况,之前使用过elk日志分析系统可以实时的判断出内存溢出的情况,但是无法查看内存的使用情况,只能通过dump文件查看内存溢出的时候dump下来的文件去分析。这样也无法准确的判断出问题。zabbix可以监控java,并且将内存的使用情况实时的展现出来,这是一个不错的选择。

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。

zabbix jmx的架构:

 

zabbix server -> zabbix java Gateway -> jmx counter

zabbix的安装这里稍微讲下,需要开启java以及后续要用到ldap认证

所以需要在编译的时候将功能编译进去,但首先取药安装这些组件比如java php-ldap等

yum install libssh2-devel.*

yum install libssh2-devel.i686

yum install openldap openldap-devel

yum install unixODBC-devel

安装java

wget http://mirrors.linuxeye.com/jdk/jdk-7u80-linux-x64.tar.gz && tar -xf jdk-7u80-linux-x64.tar.gz -C /usr/local/ && chown root:root -R /usr/local/jdk1.7.0_80/

cat >> /etc/profile << “EOF”

export JAVA_HOME=/usr/local/jdk1.7.0_80

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

EOF

source /etc/profile

java -version

rm -fr /bin/java

ln -s /usr/local/jdk1.7.0_80/bin/java /bin/

java -version

 

 

./configure –enable-java -prefix=/usr/local/zabbix –enable-server –enable-agent –with-mysql –with-net-snmp –with-libcurl –with-net-snmp –with-libcurl –with-libcurl –with-unixodbc –with-ldap –with-ssh2

make && make install

 

创建用户

groupadd zabbix

useradd -r -g zabbix zabbix

cd /usr/local && chown -R zabbix:zabbix zabbix

mysql数据库的话需要以下设置

mysql -uroot -p create database zabbix character set utf8; grant all on zabbix.* to zabbix@localhost identified by ‘zabbix’; mysql -uzabbix -pzabbix zabbix<./database/mysql/schema.sql mysql -uzabbix -pzabbix zabbix<./database/mysql/images.sql mysql -uzabbix -pzabbix zabbix<./database/mysql/data.sql

 

配置配置文件:

cat /usr/local/zabbix/etc/zabbix_server.conf | grep -v ^$ | grep -v ^#

LogFile=/tmp/zabbix_server.log #日志路径

DBHost=**** #mysql地址

DBName=zabbix #mysql库名

DBUser=zabbix #mysql帐号

DBPassword=zabbix_1 #mysql密码

DBSocket=/tmp/mysql.sock #mysql socke的路径

StartDiscoverers=2 #自动发现的初始值

Timeout=4

AlertScriptsPath=/var/lib/zabbixsrv/alertscripts

ExternalScripts=/var/lib/zabbixsrv/externalscripts

LogSlowQueries=3000

TmpDir=/var/lib/zabbix/srv/tmp

 

sudo vim /usr/local/zabbix/sbin/zabbix_java/settings.sh # 需修改的内容如下 #服务器端ip地址

LISTEN_IP=10.1.31.31

LISTEN_PORT=10052

PID_FILE=”/tmp/zabbix_java.pid”

START_POLLERS=5

 

sudo chown zabbix.zabbix /usr/local/zabbix -R

 

sudo vim /etc/zabbix/zabbix_server.conf # 需添加的内容如下 #服务器端ip地址 JavaGateway=10.1.31.31 JavaGatewayPort=10052 StartJavaPollers=5

启动zabbix_java

sudo -iu zabbix cd /usr/local/zabbix/sbin/zabbix_java/ ./startup.sh

传catalina-jmx-remote.jar包到tomcat的lib目录下 没有的话需要下载

修改catalina.sh

sudo vim /home/qjdchina.com/tomcat-server/ams/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″

com.sun.management.jmxremote.port=12345这个参数也可以加到server.xml

<Listener className=”org.apache.catalina.mbeans.JmxRemoteLifecycleListener” rmiRegistryPortPlatform=”12345″ rmiServerPortPlatform=”12346″ />

images

然后重启tomcat和zabbix客户端的服务,重启之后到服务器端进行测试

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

返回结果如下所示

22/07/2016 15:42:02 +0800 org.archive.jmx.Client NonHeapMemoryUsage: committed: 47316992 init: 24313856 max: 136314880 used: 47012784

 

后续只需要在zabbix web端加入主机 并增加jmx接口 并且加入模版 模版我用的是自定义的模版 如果有需要可以联系我

 

images

模版的效果图展示

images

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/142660.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java获取Date时间的各种方式汇总「建议收藏」

    java获取Date时间的各种方式汇总「建议收藏」1. 常用的时间获取方式public class DateUtils {   /**   * 获取时间戳   * 输出结果:1438692801766   */  @Test  public void getTimeStamp() {    Date date = new Date();    long times = date.getTime();    System.o…

  • PLSQL Developer 安装使用教程详解

    PLSQL Developer 安装使用教程详解下载plsqldeveloper:官网下载:https://www.allroundautomations.com/registered-plsqldev/我下载的是10.0.3这个版本,目前版本已经达到了14,下载后顺带把ChineseLanguagepack下载一下,一会可以将软件的语言改为中文;安装plsqldeveloper下载完成后:选择plsqldev文件(注意这里标注的默认安装路径需要修改,改成路径中不含空格和中文的路径,否则,安装了,无法进行远程连接。)安

  • nmap命令教程详解

    nmap命令教程详解-sP:ping扫描(不进行端口扫描)-sT:进行TCP全连接扫描-sS:进行SYN半连接扫描-sF:进行FIN扫描-sN:进行Null扫描-sX:进行Xmas扫描-O:进行测探目标主机版本(不是很准)-sV:可以显示服务的详细版本-A:全面扫描-p:指定端口扫描-oN:会将扫描出来的结果保存成一个txt文件-oX:会将扫描出来的结果保存成一个xml文件[-T1]-[-T5]:提高扫描速度.详细分析1)、主机发现nmap-sP192.168.1

  • go 环境搭建(mac 版)

    go 环境搭建(mac 版)1.下载合适你电脑的版本,下载地址是:https://studygolang.com/dl,我是macm1的,我下载的是https://studygolang.com/dl/golang/go1.17.2.darwin-arm64.pkg如下图:2.下载完成后,双击安装,安装成功后如下图:3.打开终端,输入goversion如果出现版本成功,就是安装成功了,如下图:如果输入命令,说找不到commandnotfound:go的情况解决如下:…

    2022年10月12日
  • DeepFakes深度造假,AI换脸的技术原理是什么?

    DeepFakes深度造假,AI换脸的技术原理是什么?DeepFakes的出现还意味着我们可以在视频中进行大规模的“换脸”。我们大多数人都曾经把自己的照片上传到网络上,因此,我们大多数人的脸都能够轻易地被替换到一些视频中,成为视频的“主角”,凭空捏造一个人根本没有干过的事。不得不说,这是件非常可怕的事情。

  • Nginx-rtmp、FFmpeg实现直播效果并在web页面播放「建议收藏」

    Nginx-rtmp、FFmpeg实现直播效果并在web页面播放「建议收藏」本文参考链接:https://blog.csdn.net/u011424614/article/details/113420000前情提示:本文使用的是windows10系统主要流程讲解1.本文选择的路线是视频文件–>FFmpeg–>nginx–>web播放2.FFmpeg是一个强大的视频编辑软件,基本干视频,音频的多多少少都会用到这个软件。本文中FFmpeg的作用是将视频整成视频流的形式。3.nginx的作用主要是将FFmpeg的视频流进行发布,供web进行访问。4.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号