Zabbix-(6)JMXモニタリング
I.はじめに
Zabbixは、JMXモニタリングを提供し、それは、監視データを提供するために、JVM JMX APIを介して情報を取得します。この記事では、TomcatのJVM情報のJMX監視の使用を記載しています。
レディ
- ZABBIXサーバ4.4(IP:192.168.152.140)
- Javaアプリケーションを実行しているホストが以下サーバー-A(されているのZabbix監視)と呼ばれる(IP:192.168.152.142)
II。インストールのZabbix-Javaベースのゲートウェイ
ZabbixサーバのZabbix JavaのゲートウェイJMXは、監視データが収集し、あなたのZabbixサーバの構成を、ZABBIX-Javaベースのゲートウェイをインストールする修正する最初の必要性。
Zabbixの-Javaのゲートウェイをインストールします。
ここでしかのZabbixサーバのホスト上で展開のZabbix-Javaのゲートウェイで、Zabbixの-Javaベースのゲートウェイアドレスとポートを指定し、Zabbixのサーバの設定ファイルを変更する必要があり、他のホストのZabbix Javaのゲートウェイにインストールすることができます。
# yum install zabbix-java-gateway
ZABBIX-Javaのゲートウェイの構成
設定ファイルは、
/etc/zabbix/zabbix_java_gateway.conf
テキストは、構成アイテムの詳細は図を参照するかを参照することができ、デフォルトの設定を取る、ファイル公式のZabbix-javaのゲートウェイの設定項目。スタートのZabbix-Javaベースのゲートウェイ
# systemctl start zabbix-java-gateway
変更のZabbixサーバの設定
ZABBIX-javaのゲートウェイ構成でのZABBIXサーバの設定ファイルを増加させる必要性
# vim /etc/zabbix/zabbix_server.conf
設定情報を変更します
# zabbix-java-gateway地址 JavaGateway=192.168.152.140 # zabbix-java-gateway端口 JavaGatewayPort=10052 StartJavaPollers=5
Zabbixサーバの再起動
# systemctl restart zabbix-server
III。Javaアプリケーションの起動パラメータを変更します。
この資料では、この論文は、Tomcatの変更することですので、ドッキングウィンドウのデプロイのTomcatの使用であるcatalina.shのスクリプトを主にJVMを起動するには、次のパラメータを追加します
-Dcom.sun.management.jmxremote
# java应用ip地址(docker部署 使用宿主机ip)
-Djava.rmi.server.hostname=192.168.152.142
# jmx端口
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.rmi.port=12345
# 不开启认证
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Tomcatのcatalina.shにスクリプトファイルの前に追加することができます
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.152.142"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.rmi.port=12345"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
再起動容器Tomcatは、コンテナTomcatの最初の開始ここで、ホストDOを変更するための容器catalina.shドッカーCPをJMX 12345ポートを露出し、(主にcatalina.shの構成Tomcatの)データボリュームをマウント
# docker rm -f tomcat
# docker run --name tomcat -p 8080:8080 -p 12345:12345 -v /data/zabbix/catalina.sh:/usr/local/tomcat/bin/catalina.sh -dit tomcat:jdk8-adoptopenjdk-hotspot
jconsoleをツールを起動した後、コンテナのTomcat監視することができるものでテストすることができます
IV。ZabbixのJMXインタフェースの設定
サービスが開始した後、ホスト上のZABBIXサーバ-Aインタフェースを監視JMXを増やす必要があります。
クリックし、[設定] - [ホスト] - [サーバーの選択-A]
JMX設定を増やします
構成アイテム | 値 |
---|---|
IPアドレス | 192.168.152.142 |
ポート | 12345 |
監視テンプレートV.カスタムJMX
実際のZabbix 4.4は、2つのJMXテンプレートが付属していますテンプレートのApp Apache TomcatのJMXとテンプレートのApp一般的なJavaのJMX Tomcatアプリケーションを監視することができ、テンプレート、Javaアプリケーションは、一般的に監視することができます。読者は、直接、監視されるホストのための2つのテンプレートは、上記のリンクを増やすことができますすぐに監視することができます。
カスタムテンプレートJMX監視を作成するには、この論文では、道
注:JMXはZabbixのは必ずしもテンプレートのApp一般的なJavaのJMXテンプレートはパーマジェン世代永久監視項目を提供し、パーマ世代でJDK 8は、メタスペースエレメントスペースへの永続的な変更に置き換えられているなど、すべてのJDKのバージョンが適合しないテンプレートを提供し、監視エントリのテンプレート要素のスペースはありません
カスタムテンプレートを作成します。JMX
テンプレートのプロセスを作成し掲載されていない、と読者は記事と呼ばれる前からカスタムテンプレートを作成する方法がわからないカスタムテンプレートを作成する方法について。ここでは、グループの作成Javaのサーバーグループを、カスタムテンプレート、カスタムJMXテンプレート
監視項目を作成します。
項目監視JMX キーフォーマットを
jmx[object_name,attribute_name]
、OBJECT_NAMEでのMBeanのObjectNameでは、ATTRIBUTE_NAMEが読み出される属性値です。参照によって監視する必要のあるデータを判断する方法テキストの最後にJMXの問題を。キーの公式の説明:
読者は閲覧でき項目を監視し、公式ドキュメントJMXを
ヒープメモリの監視項目の中で
構成アイテム 値 *名前 ヒープメモリの監視項目の中で タイプ JMXエージェントエージェント *キー JMX [ "java.langで:タイプ=メモリ"、 "HeapMemoryUsage.used"] * JMXエンドポイント サービス:JMX:RMI:/// JNDI / RMI:// {HOST.CONN}:{HOST.PORT} / jmxrmi ユニット B その他の構成項目 設定 監視対象JVMスレッドの総数
構成アイテム 値 *名前 監視対象JVMスレッドの総数 タイプ JMXエージェントエージェント *キー JMX [ "れるjava.lang:タイプ=スレッド"、 "スレッドカウント"] * JMXエンドポイント サービス:JMX:RMI:/// JNDI / RMI:// {HOST.CONN}:{HOST.PORT} / jmxrmi その他の構成項目 設定 監視要求の合計数のTomcat
構成アイテム 値 *名前 監視要求の合計数のTomcat タイプ JMXエージェントエージェント *キー JMX [ "カタリナ:タイプ= GlobalRequestProcessor、名=" HTTP-NIO-8080 ""、requestCount] * JMXエンドポイント サービス:JMX:RMI:/// JNDI / RMI:// {HOST.CONN}:{HOST.PORT} / jmxrmi その他の構成項目 設定 どこに\「のhttp-NIO-8080 \ 」 あなたも対応する調整を行い、ここでポートを変更した場合、デフォルトのポート8080 Tomcatのです。このパラメータは、設定にテンプレートにテンプレートとして設定することができますカスタムマクロ、マクロ値は、ホストで変更することができます。
Tomcatをモニタリング1分あたりの要求
構成アイテム 値 *名前 Tomcatをモニタリング1分あたりの要求 タイプ JMXエージェントエージェント *キー change("jmx["Catalina:type=GlobalRequestProcessor,name=\"http-nio-8080\"",requestCount]") * JMX 端点 service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi 其他配置项 根据需要配置 JVM老年代已使用内存监控
配置项 值 * 名称 JVM老年代已使用内存监控 类型 JMX agent代理程序 * 键值 jmx["java.lang:type=MemoryPool,name=Tenured Gen", "Usage.used"] * JMX 端点 service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi 其他配置项 根据需要配置 JVM老年代总内存监控
配置项 值 * 名称 JVM老年代已使用内存监控 类型 JMX agent代理程序 * 键值 jmx["java.lang:type=MemoryPool,name=Tenured Gen", "Usage.committed"] * JMX 端点 service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi 其他配置项 根据需要配置 老年代内存使用比例监控
配置项 值 * 名称 JVM老年代已使用内存监控 类型 可计算的 * 键值 jmx.old * 公式 100 * (last("jmx[\"java.lang:type=MemoryPool,name=Tenured Gen\", \"Usage.used\"]"))
/
last("jmx[\"java.lang:type=MemoryPool,name=Tenured Gen\", \"Usage.committed\"]")* 信息类型 浮点数 单位 % 其他配置项 根据需要配置
六.DashBoard创建图形
创建图形的步骤本文就忽略了,添加图形步骤可以参考Zabbix-(三)监控主机CPU、磁盘、内存并创建监控图形
七.其他
如何确定JMX的object_name和attribute_name
jmx监控项格式: jmx[object_name,attribute_name]
使用jconsole连接到JVM,选择MBean
找到需要监控的MBean,查看Bean信息和它的属性信息
!
结合上面的步骤,那么zabbix监控项就可以填写为
jmx["java.lang:type=Memory","HeapMemoryUsage.used"]