Monitoring Sun Java System Identity Manager through JMX

2,609 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Monitoring Sun Java System Identity Manager through JMX

  1. 1. JMX による Identity Manager システムの監視 岡崎 隆之 ソフトウエア・ビジネス統括本部 ソリューション・アーキテクト http://blogs.sun.com/okazaki
  2. 2. Copyright © 2007 Sun Microsystems K.K. 2 本セッションの概要 Identity Manager 7.0 から導入された JMX によるシステム監視機能につい てご紹介します
  3. 3. Copyright © 2007 Sun Microsystems K.K. 3 本セッションがカバーしない範囲 • 監視の設計や実装について > どの項目を監視すべきか等 • JVM や AppServer の監視について
  4. 4. Copyright © 2007 Sun Microsystems K.K. 4 ご紹介内容 • JMX とは ? • Identity Manager と JMX • 設定 • デモ • TIPS
  5. 5. Copyright © 2007 Sun Microsystems K.K. 5 JMX とは ? • アプリケーション、サービス、 JVM などのリソースを 監視するための標準 API > JSR 3: Java Management Extensions (JMX) • リモートからの監視も可能 > JSR 160: JMX Remote API • JMX の用途 > アプリケーション設定の参照と変更 > アプリケーション動作に関する統計の蓄積と公開 > 状態変更とエラー状況の通知
  6. 6. Copyright © 2007 Sun Microsystems K.K. 6 JMX の利点 • 軽量である • セキュリティも十分考慮されている • スケーラブルな管理アーキテクチャを構築可能 • 既存の管理ソリューションとの組み合わせが容易 > ただし現状で SNMP アダプタが利用できる範囲は限定的 ( 後述 )
  7. 7. Copyright © 2007 Sun Microsystems K.K. 7 JMX 仕様のカバーする範囲
  8. 8. Copyright © 2007 Sun Microsystems K.K. 8 JMX で得られる情報 • Java VM の情報 > 環境変数、 JVM オプション、メモリの利用状況、スレッドの 動作状況など • Web コンテナ・アプリケーションサーバの情報 > パーフォマンス情報、キャッシュやコネクションの状態、コ ネクションプールやスレッドプールの情報 • アプリケーションの情報 > アプリケーションによって公開された MBean( 管理される 情報オブジェクト ) の情報
  9. 9. Copyright © 2007 Sun Microsystems K.K. 9 JMX で得られる情報の例 メモリ クラス スレッド CPU 利用状況
  10. 10. Copyright © 2007 Sun Microsystems K.K. 10 その他 JMX で可能なこと • JMX クライアント ( 監視端末 ) にイベントを通知 > エラーや警告などの通知 > 状態の変更や処理の完了を通知 • 公開されている操作の呼び出し > ガーベジコレクションの実行 > テストコネクションの実行 > 状態の更新など • 応用例 > Web コンテナの自己管理/セルフチューニング GlassFish v2 以降
  11. 11. Copyright © 2007 Sun Microsystems K.K. 11 JMX Remote とセキュリティ • ユーザ認証 > MBean サーバ側に用意されたユーザ認証を利用 • 通信経路の保護 > TLS/SSL による通信経路の保護 ユーザ名 / パスワードによる認証
  12. 12. Copyright © 2007 Sun Microsystems K.K. 12 SNMP と JMX • 設定により SNMP 経由で JMX にアクセスが可能 > 参照 http://java.sun.com/javase/ja/6/docs/ja/technotes/guides/ management/snmp.html • ただし現状 SNMP 経由でアクセスできる情報は限 定的 > OS に関する情報、クラスパス/起動オプション、 JIT に関 する情報、クラスローダの情報、スレッドの情報、 GC の情 報、メモリの情報、メモリプールの情報、ロギングの情報
  13. 13. Copyright © 2007 Sun Microsystems K.K. 13 JMX 対応監視ツール • JConsole > JDK 5 以降に付属 • MC4J (http://mc4j.org) > オープンソースの監視コンソール • Sun Java System Management Framework > Java ES 5 より付属 > オープンソース版は http://proctor.dev.java.net • Google サーチ結果 > HP Openview, AdventNet ManagemeEngine Applications Manager, ...
  14. 14. Copyright © 2007 Sun Microsystems K.K. 14 JConsole • グラフィカルな管理ツール、 JDK 標準なのでお手軽 • JConsole プラグインを開発すれば高度な監視も可 能 • 監視対象 ( サーバ ) と JConsole( クライアント ) の JDK バージョンは別々でもよい
  15. 15. Copyright © 2007 Sun Microsystems K.K. 15 Identity Manager と JMX • Identity Manager 7.0 より利用可能 • クラスタ/サーバの状態、スケジューラの情報、リ ソースの情報、 ActiveSync の状態を取得可能
  16. 16. Copyright © 2007 Sun Microsystems K.K. 16 クラスタの情報 項目 説明 ActiveServers KnownServers NewlyFailedServers Alive PollingInterval 動作中のIDMサーバのリスト 既知のIDMサーバのリスト 最近障害が検出されたIDMサーバのリスト ポーリングスレッドが動作しているか? ポーリングの間隔(ミリ秒) ObjectName=IDM:type=Cluster
  17. 17. Copyright © 2007 Sun Microsystems K.K. 17 クラスタの情報( 取得例 ) ObjectName=IDM:type=Cluster
  18. 18. Copyright © 2007 Sun Microsystems K.K. 18 サーバの情報 項目 説明 CreateDate サーバが作成された日時 Creator サーバを作成したユーザ名 Deleted 最後のハートビート時刻 このサーバの状態およびその文字列表現 このオブジェクトが削除されたか? Heartbeat・HeartbeatDate State・StateString ObjectName=IDM:type=Cluster,service=Server,name=”< サーバ名 >” ObjectName=IDM:type=Server 項目 説明 Name サーバ名称 状態を表す値およびその文字列表現Status・StatusDisplay
  19. 19. Copyright © 2007 Sun Microsystems K.K. 19 サーバの情報( 取得例 ) クラスタ中の すべてのサーバ について情報を 得られる JMX 接続している サーバのみ ObjectName=IDM:type=Cluster,service=Server,name=”< サーバ名 >” ObjectName=IDM:type=Server
  20. 20. Copyright © 2007 Sun Microsystems K.K. 20 リソースの情報 項目 説明 CreateDate リソースが作成された日時 Creator リソースを作成したユーザ名 Deleted LastModificationDate 最終更新日時 MostRecentActivity このリソースに最後に行われたアクティビティ このオブジェクトが削除されたか? MostRecentActivityDate MostRecentActivityDateMS このリソースに最後に行われた アクティビティの日時 ObjectName=IDM:type=Cluster,service=Resource,resType=”< リソースタイプ >”, name=”< リソース名 >” リソースに対しては JMX 経由でテスト接続が可能
  21. 21. Copyright © 2007 Sun Microsystems K.K. 21 リソースの情報( 取得例 ) ObjectName=IDM:type=Cluster,service=Resource,resType=”<リソースタイプ >”,name=”< リソース名 >” すべてのリソースタイプ/リソースについて情報を取得可能
  22. 22. Copyright © 2007 Sun Microsystems K.K. 22 リソースへの接続テスト 正常終了時 接続テストの実行 異常終了時
  23. 23. Copyright © 2007 Sun Microsystems K.K. 23 ActiveSync の情報 項目 説明 ProgressString 進捗状況を示す文字列 ErrorStatusString エラーを示す文字列 LastPollAttempt NextPollAttempt LastModNum 最終更新シーケンス番号 LastModDate 最終更新日時 LastKnownServer LastStartTime 最終実行日時 State, StateString 最後にActiveSyncが試みられた日時 次にActiveSyncが試みられる日時 最後にこのActiveSyncを開始したサーバ名 このActiveSyncの状態番号およびその文字列表現 ObjectName=IDM:type=Cluster,service=Synchronization,component=ActiveSync resType=”< リソースタイプ >”,name=”< リソース名 >”
  24. 24. Copyright © 2007 Sun Microsystems K.K. 24 ActiveSync 情報の取得 ObjectName=IDM:type=Cluster,service=Synchronization,component=ActiveSync resType=”< リソースタイプ >”,name=”< リソース名 >” 実行中、異常終了、スケジュールされた ActiveSync のみ 正常終了した ActiveSync は表示されない
  25. 25. Copyright © 2007 Sun Microsystems K.K. 25 SPE Sync の情報 項目 説明 ProgressString 進捗状況を示す文字列 ErrorStatusString エラーを示す文字列 LastPollAttempt NextPollAttempt LastModNum 最終更新シーケンス番号 LastModDate 最終更新日時 LastKnownServer LastStartTime 最終実行日時 State, StateString 最後にSPE Syncが試みられた日時 次にSPE Syncが試みられる日時 最後にこのSPE Syncを開始したサーバ名 このSPE Syncの状態番号およびその文字列表現 ObjectName=IDM:type=Cluster,service=Synchronization,component=SPE Sync resType=”< リソースタイプ >”,name=”< リソース名 >”
  26. 26. Copyright © 2007 Sun Microsystems K.K. 26 設定手順 • Identity Manager に対して設定 • アプリケーションサーバに対して設定 > ここでは Sun Java System Application Server の場合 > それ以外の AppServer はそれぞれのマニュアルをご覧く ださい • JConsole で監視の確認
  27. 27. Copyright © 2007 Sun Microsystems K.K. 27 Identity Manager に対する設定(1) (1) 設定 (2) サーバ (3)JMX を有効化したいサーバを選択
  28. 28. Copyright © 2007 Sun Microsystems K.K. 28 Identity Manager に対する設定(2) (1) JMX タブ (2) デフォルトはオフなので、 チェックをはずす (3) ここにチェックが入ると有効化される
  29. 29. Copyright © 2007 Sun Microsystems K.K. 29 Application Server に対する設定 JConsole を使う場合は Security をオフにしておく 設定は Admin Service から ユーザ認証はこの レルムが使用される ポート番号を控えておく
  30. 30. Copyright © 2007 Sun Microsystems K.K. 30 JConsole で接続 (1) JDK 5 の JConsole JDK 6 の JConsole 使うのはこちら
  31. 31. Copyright © 2007 Sun Microsystems K.K. 31 JConsole で接続 (2) JMX URL service:jmx:rmi:///jndi/rmi://< ホスト名 >:<port> /management/rmi-jmx-connector ユーザ名とパスワード Sun Java System App Server のデフォルトは admin-realm に設定されているので、 SJSAS の管理ユーザを入力 ( デフォルトインストールでは admin”)
  32. 32. Copyright © 2007 Sun Microsystems K.K. 32 デモ idm1 idmdb idm2 resource1 resource2 Solaris コンテナ JConsole
  33. 33. Copyright © 2007 Sun Microsystems K.K. 33 コマンドラインからの JMX • 多くの場合、監視ツールは導入済みでそれが JMX 対応とは限らない • 多くの監視ツールはコマンドの実行による管理が可 能 • Java VM 上でスクリプト言語を使った JMX の利用 > JRuby, JavaScript, Groovy, Pnuts, ... etc > カスタマイズが柔軟
  34. 34. Copyright © 2007 Sun Microsystems K.K. 34 JRuby の例 #!/usr/bin/env jruby include Java include_class 'javax.management.ObjectName' include_class 'javax.management.remote.JMXConnectorFactory' include_class 'javax.management.remote.JMXServiceURL' jmxurl = 'service:jmx:rmi:///jndi/rmi://idm1:8686/jmxrmi' username, password = 'admin', 'adminadmin' svcurl = JMXServiceURL.new(jmxurl) cred = java.lang.String[2].new cred[0], cred[1] = username, password env = {'jmx.remote.credentials' => cred} conn = JMXConnectorFactory.connect(svcurl, env).getMBeanServerConnection names = conn.query_names(ObjectName.new( 'IDM:type=Cluster,service=Synchronization,component=ActiveSync,*'), nil) names.each do |name| cname = name.get_canonical_name if /name="(.+?)",resType="(.+?)"/ =~ cname puts "Resource Type: #{$2}, Name: #{$1}, ” + “Status: #{conn.get_attribute(name, 'StateString')}" end end Resource Type: FlatFileActiveSync, Name: My FlatFile, Status: down Resource Type: LDAP, Name: SPE End-User Directory, Status: down ActiveSync のステータス取得
  35. 35. Copyright © 2007 Sun Microsystems K.K. 35 参考情報 • JRuby を使った JMX の利用方法 > http://blogs.sun.com/nishigaya/entry/custom_jmx_client_ using_jruby > http://blogs.sun.com/nishigaya/entry/custom_jmx_client_ using_jruby1
  36. 36. Takayuki Okazaki takayuki.okazaki@sun.com http://blogs.sun.com/okazaki JMX による Identity Manager システムの監視

×