管理しているアプリで、恥ずかしながら「java.lang.OutOfMemoryError: Metaspace」を発生させてしまいました。
的確な対応かはわかりませんが、まずは Metaspace領域を増やしました。
これが再発防止になることを期待しています。
今回、このトラブルにより「ZabbixではMetaspace領域の監視ができるか?」という疑問がわきましたので、その結果を掲載しておきたいと思います。 (そもそも、Metaspace領域の監視の必要性があるかどうかは不明)
現状把握
まず、現在利用している「App Generic Java JMX」を確認したところ、Metaspaceの値は見つかりませんでした。
サイトで調べてみると、「App Generic Java JMX with MetaSpace」なるものがあり、こちらを使えばできるとのこと。
しかしながら、Zabbix4.0以上のVersionが必要とありました。
App Generic Java JMX with MetaSpace (Min Zabbix version: 4.0.x / Created: 2019-11-12)
さあ、テスト機で構築です!
せっかくなので最新Verの5.2.6で試してみます。
Zabbix構築
基本構築を行ってから、zabbix-java-gatewayを入れたら準備完了です。
# yum -y install zabbix-java-gateway # systemctl start zabbix-java-gateway # systemctl enable zabbix-java-gateway # vim /etc/zabbix/zabbix_server.conf JavaGateway=127.0.0.1 JavaGatewayPort=10052 StartJavaPollers=1 # systemctl restart zabbix-server.service
Zabbixテンプレートの取得
Zabbix Share - App Generic Java JMX with MetaSpace
まずは上記のサイトより、テンプレートファイルを取得しましょう。
Zabbixテンプレートのインポート
「設定」の「テンプレート」を選択して、右上の「インポート」ボタンをクリック!
先にダウンロードしたXMLファイルをインポートします。
Java監視設定
監視対象のホストの設定で、「App Generic Java JMX with MetaSpace」を追加します。
そうしますと、Metaspaceのアイテムが存在しているじゃありませんかぁ!
Metaspaceグラフ確認
監視を開始して、グラフを見てますと・・・
きちんとMetaspaceのメモリ状況が取れていることがわかります。
今後、こちらのテンプレートを使う必要があるかは、今のところわかりませんが、 こうした「選択肢を持っている!」というだけで、安心感を手に入れることができます。
この違いは大きい!!
今回は、Metaspaceの監視ができるよというお話でした。
すぐにやる場合、Zabbixのversionを上げる必要があるのですが・・・。