忍者ブログ
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

今までTomcatを複数台用意して運用していましたが、はっきりいって管理が面倒でした。
そこで代替品を探していたら、Glassfishというフリーのアプリケーションサーバに出会いました。
こいつがまた、管理用Webから一元管理ができて、クラスターの拡張も簡単という、とてもイカす奴でした。

運用するからには監視が必要ということで、ZabbixでGlassfishクラスタの各インスタンスのリソース監視をするためのPythonスクリプトを作りました。

これ → zabbix_server.tgz

【環境】
 ・監視サーバ  Zabbix 1.8系
 ・監視対象  CentOS6 Python2.6系 Zabbix 1.8系(Zabbix-JP配布のRPM)

使用方法

■Glassfish管理ノード側作業
(1)pythonスクリプトをGlassfish管理ノードに配置する。
  配置先 /etc/zabbix/customscripts/glassfish_monitor.py
  実行権限をつけ忘れないように。
(2)pythonスクリプトの編集
  ・das_userにDASのログインユーザ、パスワードを記述する。
    デフォルトだと、admin:admin
  ・zabbix_serverにZabbixサーバのDNS名を記述する。
(3)userparameter_glassfish.confを/etc/zabbix/zabbix_agentd.dに配置し、zabbix_agenを再起動する。
■Zabbixサーバ側作業
(1)テンプレートをZabbixサーバにインポートする。
(2)監視したいインスタンス(Javaプロセスのこと)をZabbixサーバに登録する。
  登録する際、以下のように入力する。
   DNS名:Glassfish DASのサーバ名
   接続方法:DNS名
   マクロ:{$node} => インスタンス名 (クラスタに定義されているインスタンス名)

JDKのバージョンによって、GCの種類が変わってくるので、スクリプト中の以下の箇所を編集する必要があるかもしれません。

menu={"os":"/jvm/operating-system","compiler":"/jvm/compilation-system","runtime":"/jvm/runtime","thread":"/jvm/thread-system","memory":"/jvm/memory","majorgc":"/jvm/garbage-collectors/PS%20MarkSweep","minorgc":"/jvm/garbage-collectors/PS%20Scavenge","class":"/jvm/class-loading-system"}
GlassfishのRESTチャネルを使って値をとってきているので、https://hoge.glassfish.manage.server:4848/monitoring/domain/ にブラウザでアクセスすれば何に変更すればいいかわかると思います。
PR
ZABBIXサーバってエージェントに接続する度に、DNSに問い合わせを投げてるみたいです。
1年以上ZABBIXを運用していて、今まで気づかなかったのは恥ずかしい限りです。
障害対応の際にZABBIXサーバのプライマリDNSを切り替えた前後のトラフィックが、劇的に変化したので気づきました。
内部ホストのレコードなんてそうそう変わらないので、DNSキャッシュを立てたら帯域の節約になる、ってことでnscdを起動したら、こんなに変わりました。

Copyright (C) 2018 技ブロ All Rights Reserved.
Photo by 戦場に猫 Template Design by kaie
忍者ブログ [PR]