Zabbix-(6)JMXモニタリング

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ベースのゲートウェイをインストールする修正する最初の必要性。

  1. Zabbixの-Javaのゲートウェイをインストールします。

    ここでしかのZabbixサーバのホスト上で展開のZabbix-Javaのゲートウェイで、Zabbixの-Javaベースのゲートウェイアドレスとポートを指定し、Zabbixのサーバの設定ファイルを変更する必要があり、他のホストのZabbix Javaのゲートウェイにインストールすることができます。

    # yum install zabbix-java-gateway
  2. ZABBIX-Javaのゲートウェイの構成

    設定ファイルは、/etc/zabbix/zabbix_java_gateway.confテキストは、構成アイテムの詳細は図を参照するかを参照することができ、デフォルトの設定を取る、ファイル公式のZabbix-javaのゲートウェイの設定項目

  3. スタートのZabbix-Javaベースのゲートウェイ

    # systemctl start zabbix-java-gateway
  4. 変更の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のバージョンが適合しないテンプレートを提供し、監視エントリのテンプレート要素のスペースはありません


  1. カスタムテンプレートを作成します。JMX

    テンプレートのプロセスを作成し掲載されていない、と読者は記事と呼ばれる前からカスタムテンプレートを作成する方法がわからないカスタムテンプレートを作成する方法についてここでは、グループの作成Javaのサーバーグループを、カスタムテンプレート、カスタムJMXテンプレート

  2. 監視項目を作成します。

    項目監視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]

  1. 使用jconsole连接到JVM,选择MBean


  2. 找到需要监控的MBean,查看Bean信息和它的属性信息



    !


  3. 结合上面的步骤,那么zabbix监控项就可以填写为

    jmx["java.lang:type=Memory","HeapMemoryUsage.used"]

おすすめ

転載: www.cnblogs.com/Sherry-XRJ/p/11857632.html