monitoring sun java system identity manager through jmx

36
JMX による Identity Manager システムの監視 岡崎 隆之 ソフトウエア・ビジネス統括本部 ソリューション・アーキテクト http://blogs.sun.com/okazaki

Upload: takayuki-okazaki

Post on 12-Nov-2014

4.083 views

Category:

Technology


7 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Monitoring Sun Java System Identity Manager through JMX

JMXによるIdentity Managerシステムの監視

岡崎 隆之ソフトウエア・ビジネス統括本部ソリューション・アーキテクトhttp://blogs.sun.com/okazaki

Page 2: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 2

本セッションの概要

Identity Manager 7.0から導入されたJMXによるシステム監視機能についてご紹介します

Page 3: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 3

本セッションがカバーしない範囲

• 監視の設計や実装について> どの項目を監視すべきか等

• JVMや AppServerの監視について

Page 4: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 4

ご紹介内容

• JMX とは ?• Identity Manager と JMX• 設定• デモ• TIPS

Page 5: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 5

JMXとは ?• アプリケーション、サービス、 JVMなどのリソースを監視するための標準 API> JSR 3: Java Management Extensions (JMX)

• リモートからの監視も可能> JSR 160: JMX Remote API

• JMXの用途> アプリケーション設定の参照と変更> アプリケーション動作に関する統計の蓄積と公開> 状態変更とエラー状況の通知

Page 6: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 6

JMXの利点• 軽量である• セキュリティも十分考慮されている• スケーラブルな管理アーキテクチャを構築可能• 既存の管理ソリューションとの組み合わせが容易> ただし現状で SNMPアダプタが利用できる範囲は限定的

(後述 )

Page 7: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 7

JMX仕様のカバーする範囲

Page 8: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 8

JMXで得られる情報• Java VMの情報> 環境変数、 JVMオプション、メモリの利用状況、スレッドの動作状況など

• Web コンテナ・アプリケーションサーバの情報> パーフォマンス情報、キャッシュやコネクションの状態、コネクションプールやスレッドプールの情報

• アプリケーションの情報> アプリケーションによって公開されたMBean(管理される情報オブジェクト )の情報

Page 9: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 9

JMXで得られる情報の例

メモリ

クラス

スレッド

CPU利用状況

Page 10: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 10

その他JMXで可能なこと• JMX クライアント (監視端末 )にイベントを通知> エラーや警告などの通知> 状態の変更や処理の完了を通知

• 公開されている操作の呼び出し> ガーベジコレクションの実行> テストコネクションの実行> 状態の更新など

• 応用例> Web コンテナの自己管理/セルフチューニング

GlassFish v2以降

Page 11: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 11

JMXRemoteとセキュリティ• ユーザ認証> MBeanサーバ側に用意されたユーザ認証を利用

• 通信経路の保護> TLS/SSLによる通信経路の保護

ユーザ名 /パスワードによる認証

Page 12: Monitoring Sun Java System Identity Manager through JMX

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の情報、メモリの情報、メモリプールの情報、ロギングの情報

Page 13: Monitoring Sun Java System Identity Manager through JMX

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, ...

Page 14: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 14

JConsole• グラフィカルな管理ツール、 JDK標準なのでお手軽• JConsole プラグインを開発すれば高度な監視も可能

• 監視対象 (サーバ ) と JConsole( クライアント )のJDKバージョンは別々でもよい

Page 15: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 15

Identity Managerと JMX• Identity Manager 7.0 より利用可能• クラスタ/サーバの状態、スケジューラの情報、リソースの情報、 ActiveSyncの状態を取得可能

Page 16: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 16

クラスタの情報

項目 説明

ActiveServers

KnownServers

NewlyFailedServers

Alive

PollingInterval

動作中のIDMサーバのリスト

既知のIDMサーバのリスト

最近障害が検出されたIDMサーバのリスト

ポーリングスレッドが動作しているか?

ポーリングの間隔(ミリ秒)

ObjectName=IDM:type=Cluster

Page 17: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 17

クラスタの情報(取得例 )ObjectName=IDM:type=Cluster

Page 18: Monitoring Sun Java System Identity Manager through JMX

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

Page 19: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 19

サーバの情報 (取得例 )

クラスタ中のすべてのサーバについて情報を得られる JMX接続している

サーバのみ

ObjectName=IDM:type=Cluster,service=Server,name=”<サーバ名 >”

ObjectName=IDM:type=Server

Page 20: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 20

リソースの情報

項目 説明

CreateDate リソースが作成された日時

Creator リソースを作成したユーザ名

Deleted

LastModificationDate 最終更新日時

MostRecentActivity このリソースに最後に行われたアクティビティ

このオブジェクトが削除されたか?

MostRecentActivityDateMostRecentActivityDateMS

このリソースに最後に行われたアクティビティの日時

ObjectName=IDM:type=Cluster,service=Resource,resType=”<リソースタイプ >”,name=”< リソース名 >”

リソースに対しては JMX経由でテスト接続が可能

Page 21: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 21

リソースの情報(取得例 )ObjectName=IDM:type=Cluster,service=Resource,resType=”<リソースタイプ >”,name=”< リソース名 >”

すべてのリソースタイプ/リソースについて情報を取得可能

Page 22: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 22

リソースへの接続テスト正常終了時 接続テストの実行

異常終了時

Page 23: Monitoring Sun Java System Identity Manager through JMX

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=ActiveSyncresType=”<リソースタイプ >”,name=”< リソース名 >”

Page 24: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 24

ActiveSync情報の取得ObjectName=IDM:type=Cluster,service=Synchronization,component=ActiveSyncresType=”<リソースタイプ >”,name=”< リソース名 >”

実行中、異常終了、スケジュールされた ActiveSyncのみ正常終了した ActiveSyncは表示されない

Page 25: Monitoring Sun Java System Identity Manager through JMX

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 SyncresType=”<リソースタイプ >”,name=”< リソース名 >”

Page 26: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 26

設定手順

• Identity Managerに対して設定• アプリケーションサーバに対して設定> ここでは Sun Java System Application Serverの場合> それ以外の AppServerはそれぞれのマニュアルをご覧ください

• JConsole で監視の確認

Page 27: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 27

Identity Managerに対する設定 (1)(1)設定

(2)サーバ

(3)JMXを有効化したいサーバを選択

Page 28: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 28

Identity Managerに対する設定 (2)

(1) JMXタブ

(2) デフォルトはオフなので、チェックをはずす

(3)ここにチェックが入ると有効化される

Page 29: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 29

Application Serverに対する設定

JConsoleを使う場合はSecurityをオフにしておく

設定は Admin Serviceから

ユーザ認証はこのレルムが使用される

ポート番号を控えておく

Page 30: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 30

JConsoleで接続 (1)

JDK 5の JConsole

JDK 6の JConsole

使うのはこちら

Page 31: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 31

JConsoleで接続 (2)

JMX URLservice:jmx:rmi:///jndi/rmi://<ホスト名 >:<port>/management/rmi-jmx-connector

ユーザ名とパスワード

Sun Java System App Serverのデフォルトはadmin-realmに設定されているので、 SJSASの管理ユーザを入力(デフォルトインストールでは” admin”)

Page 32: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 32

デモ

idm1

idmdb

idm2resource1

resource2

Solarisコンテナ

JConsole

Page 33: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 33

コマンドラインからの JMX• 多くの場合、監視ツールは導入済みでそれが JMX対応とは限らない

• 多くの監視ツールはコマンドの実行による管理が可能

• Java VM上でスクリプト言語を使った JMXの利用> JRuby, JavaScript, Groovy, Pnuts, ... etc> カスタマイズが柔軟

Page 34: Monitoring Sun Java System Identity Manager through JMX

Copyright © 2007 Sun Microsystems K.K. 34

JRubyの例#!/usr/bin/env jruby

include Javainclude_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].newcred[0], cred[1] = username, passwordenv = {'jmx.remote.credentials' => cred}conn = JMXConnectorFactory.connect(svcurl, env).getMBeanServerConnectionnames = conn.query_names(ObjectName.new('IDM:type=Cluster,service=Synchronization,component=ActiveSync,*'), nil)

names.each do |name|cname = name.get_canonical_nameif /name="(.+?)",resType="(.+?)"/ =~ cnameputs "Resource Type: #{$2}, Name: #{$1}, ”+ “Status: #{conn.get_attribute(name, 'StateString')}"

endend

Resource Type: FlatFileActiveSync, Name: My FlatFile, Status: downResource Type: LDAP, Name: SPE End-User Directory, Status: down

ActiveSyncのステータス取得

Page 35: Monitoring Sun Java System Identity Manager through JMX

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

Page 36: Monitoring Sun Java System Identity Manager through JMX

Takayuki [email protected]://blogs.sun.com/okazaki

JMXによるIdentity Managerシステムの監視