Contenu connexe
Similaire à Monitoring Sun Java System Identity Manager through JMX
Similaire à Monitoring Sun Java System Identity Manager through JMX (20)
Monitoring Sun Java System Identity Manager through JMX
- 2. Copyright © 2007 Sun Microsystems K.K. 2
本セッションの概要
Identity Manager 7.0 から導入された
JMX によるシステム監視機能につい
てご紹介します
- 3. Copyright © 2007 Sun Microsystems K.K. 3
本セッションがカバーしない範囲
• 監視の設計や実装について
> どの項目を監視すべきか等
• JVM や AppServer の監視について
- 4. Copyright © 2007 Sun Microsystems K.K. 4
ご紹介内容
• JMX とは ?
• Identity Manager と JMX
• 設定
• デモ
• TIPS
- 5. Copyright © 2007 Sun Microsystems K.K. 5
JMX とは ?
• アプリケーション、サービス、 JVM などのリソースを
監視するための標準 API
> JSR 3: Java Management Extensions (JMX)
• リモートからの監視も可能
> JSR 160: JMX Remote API
• JMX の用途
> アプリケーション設定の参照と変更
> アプリケーション動作に関する統計の蓄積と公開
> 状態変更とエラー状況の通知
- 6. Copyright © 2007 Sun Microsystems K.K. 6
JMX の利点
• 軽量である
• セキュリティも十分考慮されている
• スケーラブルな管理アーキテクチャを構築可能
• 既存の管理ソリューションとの組み合わせが容易
> ただし現状で SNMP アダプタが利用できる範囲は限定的
( 後述 )
- 8. Copyright © 2007 Sun Microsystems K.K. 8
JMX で得られる情報
• Java VM の情報
> 環境変数、 JVM オプション、メモリの利用状況、スレッドの
動作状況など
• Web コンテナ・アプリケーションサーバの情報
> パーフォマンス情報、キャッシュやコネクションの状態、コ
ネクションプールやスレッドプールの情報
• アプリケーションの情報
> アプリケーションによって公開された MBean( 管理される
情報オブジェクト ) の情報
- 10. Copyright © 2007 Sun Microsystems K.K. 10
その他 JMX で可能なこと
• JMX クライアント ( 監視端末 ) にイベントを通知
> エラーや警告などの通知
> 状態の変更や処理の完了を通知
• 公開されている操作の呼び出し
> ガーベジコレクションの実行
> テストコネクションの実行
> 状態の更新など
• 応用例
> Web コンテナの自己管理/セルフチューニング
GlassFish v2 以降
- 11. Copyright © 2007 Sun Microsystems K.K. 11
JMX Remote とセキュリティ
• ユーザ認証
> MBean サーバ側に用意されたユーザ認証を利用
• 通信経路の保護
> TLS/SSL による通信経路の保護
ユーザ名 / パスワードによる認証
- 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. 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. Copyright © 2007 Sun Microsystems K.K. 14
JConsole
• グラフィカルな管理ツール、 JDK 標準なのでお手軽
• JConsole プラグインを開発すれば高度な監視も可
能
• 監視対象 ( サーバ ) と JConsole( クライアント ) の
JDK バージョンは別々でもよい
- 15. Copyright © 2007 Sun Microsystems K.K. 15
Identity Manager と JMX
• Identity Manager 7.0 より利用可能
• クラスタ/サーバの状態、スケジューラの情報、リ
ソースの情報、 ActiveSync の状態を取得可能
- 16. Copyright © 2007 Sun Microsystems K.K. 16
クラスタの情報
項目 説明
ActiveServers
KnownServers
NewlyFailedServers
Alive
PollingInterval
動作中のIDMサーバのリスト
既知のIDMサーバのリスト
最近障害が検出されたIDMサーバのリスト
ポーリングスレッドが動作しているか?
ポーリングの間隔(ミリ秒)
ObjectName=IDM:type=Cluster
- 17. Copyright © 2007 Sun Microsystems K.K. 17
クラスタの情報( 取得例 )
ObjectName=IDM:type=Cluster
- 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. Copyright © 2007 Sun Microsystems K.K. 19
サーバの情報( 取得例 )
クラスタ中の
すべてのサーバ
について情報を
得られる JMX 接続している
サーバのみ
ObjectName=IDM:type=Cluster,service=Server,name=”< サーバ名 >”
ObjectName=IDM:type=Server
- 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. Copyright © 2007 Sun Microsystems K.K. 21
リソースの情報( 取得例 )
ObjectName=IDM:type=Cluster,service=Resource,resType=”<リソースタイプ >”,name=”< リソース名 >”
すべてのリソースタイプ/リソースについて情報を取得可能
- 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. Copyright © 2007 Sun Microsystems K.K. 24
ActiveSync 情報の取得
ObjectName=IDM:type=Cluster,service=Synchronization,component=ActiveSync
resType=”< リソースタイプ >”,name=”< リソース名 >”
実行中、異常終了、スケジュールされた ActiveSync のみ
正常終了した ActiveSync は表示されない
- 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. Copyright © 2007 Sun Microsystems K.K. 26
設定手順
• Identity Manager に対して設定
• アプリケーションサーバに対して設定
> ここでは Sun Java System Application Server の場合
> それ以外の AppServer はそれぞれのマニュアルをご覧く
ださい
• JConsole で監視の確認
- 27. Copyright © 2007 Sun Microsystems K.K. 27
Identity Manager に対する設定(1)
(1) 設定
(2) サーバ
(3)JMX を有効化したいサーバを選択
- 28. Copyright © 2007 Sun Microsystems K.K. 28
Identity Manager に対する設定(2)
(1) JMX タブ
(2) デフォルトはオフなので、
チェックをはずす
(3) ここにチェックが入ると有効化される
- 29. Copyright © 2007 Sun Microsystems K.K. 29
Application Server に対する設定
JConsole を使う場合は
Security をオフにしておく
設定は Admin Service から
ユーザ認証はこの
レルムが使用される
ポート番号を控えておく
- 30. Copyright © 2007 Sun Microsystems K.K. 30
JConsole で接続 (1)
JDK 5 の JConsole
JDK 6 の JConsole
使うのはこちら
- 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. Copyright © 2007 Sun Microsystems K.K. 32
デモ
idm1
idmdb
idm2
resource1
resource2
Solaris コンテナ
JConsole
- 33. Copyright © 2007 Sun Microsystems K.K. 33
コマンドラインからの JMX
• 多くの場合、監視ツールは導入済みでそれが JMX
対応とは限らない
• 多くの監視ツールはコマンドの実行による管理が可
能
• Java VM 上でスクリプト言語を使った JMX の利用
> JRuby, JavaScript, Groovy, Pnuts, ... etc
> カスタマイズが柔軟
- 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. 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