4. DATA GATHER

この章ではMaxGauge Repositoryでデータを保存するDG (Data Gatherer)について説明します。

4.1. DG アーキテクチャ

DGは、処理パフォーマンスの向上のために、Master/Slave構造を提供します。
例えば、30個のRTSが1個のDGに連結される場合、DGに対する負荷によってRepositoryで性能データを保存する作業に、
ボトルネック(bottleneck)が発生する可能性があります。 このような問題点を解決するために、Master/Slave構造を提供します。
すなわち、一つのMaster DGが多数のSlave DGを管理して、個別Slave DGがRTSとinterfaceをする方式です。

DGのMaster/Slaveアーキテクチャは次のとおりです。
../_images/mfo_dg1.png
  • Master DGの役割
    • Repositoryにテーブルおよびプロシージャ作成
    • テーブル パーテーションおよびスキーマ作成
    • テーブル パーテーションおよびスキーマ管理
    • Platform.JS Interface
  • Slave DGの役割
    • 一つ以上のRTSとinterfaceしながらRepositoryにデータを保存
    • 一定間隔に(1分、10分、1時間、1日) Summaryテーブルにデータを保存
    • Alarm設定内訳を利用してAlarm確認後Master DGにAlarm通信
    • SMS(short Message Service)システム連携のためのshell実行

4.2. DGの操作

Unix/Linuxサーバの場合、DGの起動停止コマンドをサービスとして登録して、DGを制御します。
Windowsサーバの場合、Windowsサービスに登録して、DGを制御します。

4.2.1. Unix/Linuxサーバ

登録したサービスを利用してDGを操作します。
DGサービス名は次のとおりです。
  • Master DG : mfo-dg-master
  • Slave DG : mfo-dg-slave(Seq#) デフォルト:mfo-dg-slave1
# Start
# RHEL6 系
[root]# service mfo-dg-master start
[root]# service mfo-dg-slave1 start

# RHEL7 系
[root]# systemctl start mfo-dg-master.service
[root]# systemctl start mfo-dg-slave1.service


# Stop
# RHEL6 系
[root]# service mfo-dg-master stop
[root]# service mfo-dg-slave1 stop

# RHEL7 系
[root]# systemctl stop mfo-dg-master.service
[root]# systemctl stop mfo-dg-slave1.service

注釈

Master DGインストール時、Master DG (DGServer_M)およびSlave DG#1(DGServer_S1)がサービスとして登録されます。 DGインストールおよびSlave DG追加に関しては、”インストールガイド”を参照してください。

4.2.2. Windowsサーバ

DGをセットアップすると、Local Serviceで自動登録されます。
DGサービス名は次のとおりです。
  • Master DG : DGServer_M
  • Slave DG : DGServer_S(Seq#)

4.3. DG実行フロー

DGの実行フローは次のとおりです。

../_images/mfo_dg2.png
  • F1. Data保存
    • RTSから受信した性能データを、Repositoryで保存します。
    • Data Gather異常回復後、SNDFから受信した性能データをRepositoryに保存します。
    • DGが自主的に収集する性能データを一定間隔に収集した後、Repositoryに保存します。
  • F2. Alarmチェックおよび通信
    DGは次のような方式でAlarmを処理します。
    1. 初期起動時に、Repositoryからalert情報(指標ごと閾値、repeat count)を抽出します。
    2. RTSから受信した性能データおよび自主的に収集する性能データがalarm発生条件に該当するのかチェックします。
    3. Alarm発生条件を満たした場合、該当情報をPlatform.JSに送信してRepositoryに保存します。

4.4. DG設定ファイル

DG設定は、DGServer.xmlファイルを使用します。 該当ファイル内のパラメータはほとんどのデフォルト設定値が使用できます。

4.4.1. Master DG用DGServer.xmlファイル

該当ファイルは、{Master DGセットアップディレクトリ}/DataGather_M/confディレクトリ内に存在します。
主なパラメータは次のとおりです。
  • 主なパラメータ
    パラメータ名 説明
    master DataGatherの役割を設定します。
    ● true : Master DG
    ● false : Slave DG
    gather_port Master DGで使用するポート番号(デフォルト:7000)
    slave_gather_list Slave DGリストを設定します。
    IP : PORT形式で構成されていて、Slave追加はカンマ’,’で追加します。
    例)127.0.0.1 : 7001,127.0.0.1 : 7002
    connection_pool_init_size DataGatherのPostgreSQL(リポジトリDB)に対するコネクションプールの初期値を設定します。(デフォルト:5/変更する場合はパラメータを明示する)
    ロギング実行以外のジョブ用コネクションプールです。
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    connection_pool_max_size DataGatherのPostgreSQL(リポジトリDB)に対するコネクションプールの最大値を設定します。(デフォルト:10/変更する場合はパラメータを明示する)
    ロギング実行以外のジョブ用コネクションプールです。
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    encrypt ● デフォルト設定値 : false
    ● 暗号化適用後 : true
    暗号化機能は、” 暗号化機能”セクション を参照してください。
    database_type Repositoryデータベース タイプを設定します。
    ● PostgreSQLの場合 : postgresql
    ● Oracleの場合 : oracle
    database_ip RepositoryデータベースIP Addressを設定します。(デフォルト:127.0.0.1)
    database_port Repositoryデータベースのポート番号を設定します。
    database_sid Repositoryデータベースの名前を設定します。
    ● PostgreSQLの場合 : データベース名
    ● Oracleの場合 : SID名
    database_user JDBCに連結するrepositoryデータベースのユーザ名を設定します。
    database_password JDBCに連結するrepositoryデータベースのユーザのパスワードを設定します。
  • その他パラメータ
    パラメータ名 説明
    RAC_DBPool use (Oracle Repository) Repository環境構成時、RACを使用する場合に設定します。(デフォルト:false)
    encrypt (Oracle Repository) RAC環境設定に対する暗号化の有無を設定します。
    load_balance (Oracle Repository) RAC環境でJDBC接続時、load balance設定を有効化する場合に設定します。
    (デフォルト:false)
    fail_over (Oracle Repository) RAC環境でJDBC接続時、fail over機能を有効化する場合に設定します。
    (デフォルト:false)
    user (Oracle Repository) RAC環境接続時のmaxgauge用のログインユーザを設定します。 (database_userと別に認識して処理)
    (デフォルト:maxgauge)
    Password (Oracle Repository) RAC環境接続時のログインユーザのパスワードを設定します。 (database_userと別に認識して処理)
    (デフォルト:maxgauge)
    global_name (Oracle Repository) RAC環境のglobal nameを設定します。
    (デフォルト:RACDB)
    node_address (Oracle Repository) RAC環境で構成されたノードのip addressおよびポート番号を設定します。
    client_pool_init_size DataGatherがMaxGaugeの他のコンポーネント(PostgreSQL以外)と通信する際に使用するコネクションプール初期値を設定します。(デフォルト:10)
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    client_pool_max_size DataGatherがMaxGaugeの他のコンポーネント(PostgreSQL以外)と通信する際に使用するコネクションプール最大値を設定します。(デフォルト:30)
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    pool_commit (PostgreSQL Repository) select作業が終わった後、Commitをするのかを設定します。
    (デフォルト:true)
    gather_vacuum PostgreSQL Repository環境でDataGatherによる手動Vacuum作業進行の有無を設定します。
    (デフォルト:true)
    vacuum_max_pool (PostgreSQL Repository) gatherによるVacuum命令実行時thread poolの最大個数を設定します。
    (デフォルト:3)
    tablespace (Oracle Repository)データ保存のためのtablespace名を設定します。
    (デフォルト:tablespace_name)
    index_tablespace (Oracle Repository) Repositoryテーブルにインデックスを生成するtablespace名を設定します。
    (デフォルト:tablespace_name)
    partition (Oracle Repository) Repository内テーブル生成時Partitionで生成するのか設定します。
    (デフォルト:true)
    compress_partition (Oracle Repository) Repository DB内Partitionテーブルに対する圧縮実行の有無を設定します。
    (デフォルト:true)
    domain_index (Oracle Repository) Repository内apm_sql_listテーブルのインデックスをドメイン インデックスで生成するのか設定します。
    (デフォルト:false)
    debug Data Gatherデバッグモード使用の有無を設定します。
    (デフォルト:false)
    trueに設定する場合:ログファイルに細部事項記録
    socket_timeout Data GatherとTCP通信連結時、TIMEOUT設定の有無を設定します。
    (デフォルト:60sec)
    0:TIMEOUT設定をしない。
    query_timeout パーテーション作業時、Create / Drop命令語に対するtimeoutを設定します。
    [単位:sec]
    (デフォルト:0)
    log_retention_days Master DataGatherが生成するログファイルの保存周期を設定します。
    [単位:日]
    (デフォルト:10)
    log_max_size Master DataGatherが生成するログファイルの全体のサイズを設定します。[単位:MB]
    (デフォルト:10)
    exa_use EXA環境に対する収集の有無を設定します。
    (デフォルト:false)
    モニタリング環境のうちEXA環境がある場合、trueに変更します。
    initialize_limit (PostgreSQL Repository) schema initialize作業時同時に遂行する個数を設定します。
    (デフォルト:1)
    2以上を設定すれば作業が同時に実行されるが、作業実行時間が長くなって速度には差はありません。
    partition_create_from Repository DB内パーテーションテーブル生成時間を設定します。
    (デフォルト:0時)
    partiotion_drop_from Repository DB内パーテーションテーブル削除時間を設定します。
    (デフォルト:3時)
    partition_drop_to パーテーションテーブル削除に失敗時やり直し制限時間を設定します。
    (デフォルト:8時)
    partition_query_timeout パーテーションテーブル生成/削除時クエリー待機制限時間を設定します。
    (デフォルト:0時)
    log_level DataGatherでプログラム動作時記録するログの量を設定します。
    (デフォルト:INFO)
    レベルによりDEBUG / INFO / WARN / ERROR行っていて、左側(DEBUG)で設定するほどログ量が増加します。
    use_unlogged_table (PostgreSQL Repository)テーブルをunlogged tableで生成するのか設定します。
    trueに設定する場合、バックアップをしなくてinsert時性能は向上するがサーバを再起動すれば内容が消えます。
    (デフォルト:false)

4.4.2. Slave DG用DGServer.xmlファイル

該当ファイルは{Slave DGセットアップディレクトリ}/DataGather_S1/confディレクトリ内に存在します。
主なパラメータは次のとおりです。
  • 主なパラメータ
    パラメータ名 説明
    master DataGatherの役割を設定します。
    ● true : Master DG
    ● false : Slave DG
    gather_port Slave DGで使用するポート番号(デフォルト:7001)
    slave_gather_list Slave DGリストを設定します。
    IP : PORT形式で構成されていて、Slave追加はカンマ’,’で追加します。
    例)127.0.0.1 : 7001,127.0.0.1 : 7002
    connection_pool_init_size DataGatherのPostgreSQL(リポジトリDB)に対するコネクションプールの初期値を設定します。(connection_pool_max_sizeと同様に設定することを推奨)(デフォルト:5)
    ロギング実行以外のジョブ用コネクションプールです。
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    connection_pool_max_size DataGatherのPostgreSQL(リポジトリDB)に対するコネクションプールの最大値を設定します。(デフォルト:10)
    ロギング実行以外のジョブ用コネクションプールです。
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    logging_pool_max_size DataGatherがロギング実行のために使用するPostgreSQL(リポジトリDB)に対するコネクションプールの最大値を設定します。(デフォルト:150)
    初期値は製品固定で「0」です。
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    encrypt ● デフォルト設定値 : false
    ● 暗号化適用後 : true
    暗号化機能は、” 暗号化機能”セクション を参照してください。
    database_type Repositoryデータベース タイプを設定します。
    ● PostgreSQLの場合 : postgresql
    ● Oracleの場合 : oracle
    database_ip RepositoryデータベースIP Addressを設定します。(デフォルト:127.0.0.1)
    database_port Repositoryデータベースのポート番号を設定します。
    ● PostgreSQLの場合 : 5432● Oracleの場合 : 1521
    database_sid Repositoryデータベースの名前を設定します。
    ● PostgreSQLの場合 : データベース名
    ● Oracleの場合 : SID名
    database_user JDBCに連結するrepositoryデータベースのユーザ名を設定します。(例:maxgauge)
    database_password JDBCに連結するrepositoryデータベースのユーザのパスワードを設定します。(例:maxgauge)
  • その他のパラメータ
    パラメータ名 説明
    client_pool_init_size DataGatherがMaxGaugeの他のコンポーネント(PostgreSQL以外)と通信する際に使用するコネクションプール初期値を設定します。(デフォルト:10)
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    client_pool_max_size DataGatherがMaxGaugeの他のコンポーネント(PostgreSQL以外)と通信する際に使用するコネクションプール最大値を設定します。(デフォルト:30)
    割り当てられたコネクションプールが10分間使用されない場合はコネクションプールを初期値まで減らします。
    RAC_DBPool use (Oracle Repository) Repository環境構成時、RACを使用する場合に設定します。(デフォルト:false)
    encrypt (Oracle Repository) RAC環境設定に対する暗号化の有無を設定します。
    load_balance (Oracle Repository) RAC環境でJDBC接続時、load balance設定を有効化する場合に設定します。
    (デフォルト:false)
    fail_over (Oracle Repository) RAC環境でJDBC接続時、fail over機能を有効化する場合に設定します。
    (デフォルト:false)
    user (Oracle Repository) RAC環境接続時のmaxgauge用のログインユーザを設定します。 (database_userと別に認識して処理)
    (デフォルト:maxgauge)
    Password (Oracle Repository) RAC環境接続時のログインユーザのパスワードを設定します。 (database_userと別に認識して処理)
    (デフォルト:maxgauge)
    global_name (Oracle Repository) RAC環境のglobal nameを設定します。
    (デフォルト:RACDB)
    node_address (Oracle Repository) RAC環境で構成されたノードのip addressおよびポート番号を設定します。
    pool_commit (PostgreSQL Repository) select作業が終わった後、Commitをするのかを設定します。
    (デフォルト:true)
    commit_write (Oracle Repository)セッションレベルのcommit_writeパラメータ値を設定します。
    statics_level (Oracle Repository)セッションレベルのstatics_levelパラメータ値を設定します。
    session_cached_cursors (Oracle Repository)セッションレベルのsession_cached_cursorsパラメータ値を設定します。(デフォルト:0)
    cache_preparestatement JDBCのpreparestatementを再使用するかどうかを設定します。(デフォルト:true)
    domain_index (Oracle Repository) Repository内apm_sql_listテーブルのインデックスをドメイン インデックスで生成するのか設定します。
    (デフォルト:false)
    debug Data Gatherデバッグモード使用の有無を設定します。
    (デフォルト:false)
    trueに設定する場合:ログファイルに細部事項記録
    socket_timeout Data GatherとTCP通信連結時、TIMEOUT設定の有無を設定します。
    (デフォルト:60sec)
    0:TIMEOUT設定をしない。
    query_timeout パーテーション作業時、Create / Drop命令語に対するtimeoutを設定します。
    [単位:sec]
    (デフォルト:0)
    warning_log_elapse ロギング時間が設定値を超えると、ログを保存するオプションで実行時間を設定します。(デフォルト:5)
    max_batch_count Batch作業時に一度に行う最大個数を設定します。(デフォルト:1000)
    log_retention_days Master DataGatherが生成するログファイルの保存周期を設定します。
    [単位:日]
    (デフォルト:10)
    log_max_size Master DataGatherが生成するログファイルの全体のサイズを設定します。[単位:MB]
    (デフォルト:10)
    log_max_size Master DataGatherが生成するログファイルの全体のサイズを設定します。[単位:MB]
    (デフォルト:10)
    target_connect_retry Target DBへの誤った設定情報入力による接続失敗時、何回まで接続を再トライするかを設定します。(デフォルト:10)
    db_stop_sms_repeat DB Stop アラームを繰り返し送信するための設定で、繰り返し回数を設定します。(デフォルト:1)
    db_stop_sms_interval DB Stop アラームを繰り返し送るための設定で、繰り返し周期を設定します。(デフォルト:1)
    exa_use EXA環境に対する収集の有無を設定します。
    (デフォルト:false)
    モニタリング環境のうちEXA環境がある場合、trueに変更します。
    log_level DataGatherでプログラム動作時記録するログの量を設定します。
    (デフォルト:INFO)
    レベルによりDEBUG / INFO / WARN / ERROR行っていて、左側(DEBUG)で設定するほどログ量が増加します。
    download_procedure_info dba_proceduresビューに対するデータ収集の有無を設定します。
    (デフォルト:false)
    download_objects dba_objectビューに対するデータ収集の有無を設定します。
    (デフォルト:false)
    alarm_only Repositoryにalarm情報のみ保存する場合に設定します。
    (デフォルト:false)
    sms_alertlog_length Oracle Alert Log発生時、SMSで送信するalert logの最大字数を設定します。
    (デフォルト:200字)
    0:alert logをSMSに伝送しない
    sms_alertlog_line alertlog発生時、ORAメッセージを基準に設定されたライン数ぐらい上下を切ってdescriptionで伝達するオプションで、ライン数を設定します。
    例) 3に設定された場合、ORA-メッセージ基準の上で3行、下へ3行合計7行発送されます。(デフォルト:3line)
    cont_alert_interval 同一Levelのアラームが持続的に発生する時、繰り返してアラームを送るために設定します。
    (デフォルト:60sec)
    rts_daemon_disconnect_repeat_count RTSと通信が切れた時、アラームを繰り返し送るための設定で繰り返す回数を設定します。(デフォルト:1回)
    use_alertlog_filter_for_line alertlogのフィルタリングを専門対象にするのかライン別に処理するのか設定します。
    (デフォルト:false)

4.5. SMS連携のための実行フロー

MaxGaugeはSMS(Short Message Service)システムとの連携機能を提供します。SMS連携の実行フローは下記のとおりです。

../_images/mfo_sms1.png
  • F1. SMS.jar呼び出し
    • 1.Slave DGは登録されたalert別でalarm発生の有無をチェックします。
    • 2.該当alarmがSMS連係対象ならSMS.jarを呼び出します。
  • F2. SMS.xml説明

    SMS.jarはSMS.xmlファイルに定義された内容により動作します。下記はSMS.xmlファイルの例です。

    <XmSMS>
            <SMS_DB encrypt="false">
                    <sms_database_type>oracle</sms_database_type>
                    <sms_database_ip>127.0.0.1</sms_database_ip>
                    <sms_database_port>1521</sms_database_port>
                    <sms_database_sid>orcl</sms_database_sid>
                    <sms_database_user>maxgauge</sms_database_user>
                    <sms_database_password>maxgauge</sms_database_password>
                    <bind_max_length>80</bind_max_length>
            </SMS_DB>
    
            <SMS_INSERT_QUERY>
                INSERT INTO sms_msg ( sms_time, sms_user, sms_phone_number, sms_message, sms_desc )
                    VALUES ( sysdate, ? , ? , ? , 'From Maxgauge' )
            </SMS_INSERT_QUERY>
    
            <SMS_SET_BIND_VALUE>
                    <b1>p$sms_user_name$</b1>
                    <b2>p$phone_number$</b2>
                    <b3>[MXG SMS] (p$string_level$:p$value$) p$tnsname$ p$description$ 'teqteqteqtqetq' </b3>
            </SMS_SET_BIND_VALUE>
    </XmSMS>
    

    注釈

    SMS.xmlファイルは{Slave DG設置ディレクトリ}svc配下に位置する。 SMS発送のためにはsample_sms.xml / sample_sms.jar名の「sample_」の除去が必要です。

    パラメータ名 説明
    SMS_DB encrypt SMS関連の主なパラメータに対する暗号化適用の有無を設定します。
    デフォルト値:false
    暗号化適用後:true

    暗号化機能は“暗号化機能” Sectionを参照してください。
    sms_database_type SMS SystemのDBMSの種類を設定します。
    サポートするDB:oracle / postgres / mssql
    sms_database_ip SMS System IP Addressを設定します。
    デフォルト値:localhost
    sms_database_port SMS SystemのDB portを設定します。
    デフォルト値:1521
    sms_database_sid SMS SystemのSIDを設定する。
    デフォルト値:orcl
    sms_database_user SMS System接続用DB user名を設定します。
    デフォルト値:oracle
    sms_database_password SMS System接続用DB passwordを設定します。
    デフォルト値:oracle
    sms_database_query_timeout SMS発送のためのクエリー実行時最大応答待ち時間を設定します。
    デフォルト値:0
    bind_max_length <SMS_SET_BIND_VALUE>内のbind値それぞれに対する最大の長さを設定する。
    デフォルト値:80
    level 設定したアラームレベルの時、該当フォーマットでSMSを発送します。
    デフォルト値:N

    設定可能なレベル:N / W / C

    levelをNに設定した場合、Normal Level以上のアラームが発生するとSMSを発送します。
    SMS_INSERT_QUERY SMS SystemにSMS情報を入力するためのINSERT文章を提供します。
    各パラメーターは“?”で表示して、該当内容は<SMS_SET_BIND_VALUE> Sectionで提供します。
    SMS_SET_BIND_VALUE INSERT構文内で使うbind値を設定します。

4.5.1. SMS_SET_BIND_VALUE

SMS発送のためにプログラムで基本的に提供されるパラメータリストは次のとおりです。
該当パラメータを使用して<SMS_SET_BIND_VALUE> Section内の<b1></b1>..... <bn></bn>を設定します。
パラメータ名 説明
p$sms_user_name$ SMSユーザ名
p$business_name$ Configurationウインドウを通じて、インスタンス情報入力時に設定したビジネス名
p$phone_number$ SMSユーザ情報に登録された電話番号
p$tnsname$ インスタンス名
p$alert_type$ Alert Type(DB Stat,DB Waitなど)
p$resource_name$ Alert指標名
p$value$ Alert Value
p$level$ Alert Level

0: Normal
1: Warning
C: Critical
p$string_level$ Alert Level (N, W, C)
p$description$ Alertに対する説明(TablespaceおよびDisk Alertに対する追加情報提供)

Tablespace Alert:Tablespace Name,Usage (%),Free Size (KB)提供
Disk Alert:File System Name,Mount Point,Usage (%),Total (MB),Free (MB)提供
p$server_time$ Alertが発生したSystem Time
p$current_time$ DGがAlert情報を受信した時間

注釈

Time Zoneが違うサーバ内に設置されたMaxGaugeに対するalert発生時間を簡単に認知することができるように p$server_time$ (該当サーバ)とp$current_time$ (Local Time)をそれぞれ提供します。

4.6. メール連携のための実行フロー

MaxGaugeはメールシステムとの連携機能を提供します。
メール連携の実行フローは下記のとおりです。
../_images/mfo_mail1.png
  • F1. mail.jar呼び出し
    • Slave DGは登録されたalert別でalarm発生の有無をチェックします。
    • 該当alarmがMail発送対象ならmail.jarを呼び出します。
  • F2. mail.xml説明

    Mail.jarはmail.xmlファイルに定義された内容により動作します。下記はmail.xmlファイルの例です。

    <XmMail>
            <SMTP encrypt="false">
                    <ssl>false</ssl>
                    <auth>false</auth>
                    <host>exemmain.ex-em.com</host>
                    <port>25</port>
                    <user></user>
                    <password></password>
            </SMTP>
    
    <DEFAULT level="N">
                    <SUBJECT>p$sms_user_name$様[XM-MXG]アラーム</SUBJECT>
                    <CONTENT>
                            [XM-MXG] TNS NAME : p$tnsname$,
                            TIME  : p$server_time$
                            ALERT : p$alert_type$:p$resource_name$
                            LEVEL : p$string_level$
                            VALUE : p$value$
                            DESC  : p$description$
                    </CONTENT>
            </DEFAULT>
    </XmMail>
    

    注釈

    mail.xmlファイルは{Slave DG設置ディレクトリ}svc配下に位置します。 Mail発送のためにはsample_mail.xml / sample_mail.jar名の「sample_」の除去が必要です。

    パラメータ名 説明
    SMTP encrypt SMS関連主なパラメーターに対する暗号化適用の有無を設定します。

    デフォルト値:false
    暗号化適用後:true

    暗号化機能は“4.8. 暗号化機能と適用について”を参照します。
    ssl メール発送のためのプロトコル設定でssl方式で発送するのか設定します。
    デフォルト値:true
    auth 検証された使用者で接近するのか設定します。
    デフォルト値:true
    host メール発送のためのサーバのhost情報を設定します。
    デフォルト値:smtp.example.com
    port メール発送のためのサーバのポート情報を設定します。
    デフォルト値:465
    user メール発送のための送信元メールアドレスを設定します。
    デフォルト値:example@example.com
    ※設定なしは不可でダミー値でも設定が必須
    password メール発送のための送信元メールアドレスのパスワードを設定します。
    デフォルト値:example
    ※設定なしでも可
    level 設定したアラームレベルの時、該当フォーマットでメール発送します。
    デフォルト値:N

    設定可能なレベル:N / W / C

    levelをNに設定すればNormal Level以上のアラームが発生する時メール発送します。
    subject アラーム発生時、発送されるメールの題名を設定します。
    content アラーム発生時発送されるメールの内容を設定します。

4.6.1. SMS_SET_BIND_VALUE

メール発送のためにプログラムで基本的に提供されるパラメータリストは次のとおりです。
該当パラメータを使用して<SMS_SET_BIND_VALUE> Section内の<b1></b1>..... <bn></bn>を設定します。
パラメータ名 説明
p$sms_user_name$ SMSユーザ名
p$business_name$ Configurationウインドウを通じて、インスタンス情報入力時に設定したビジネス名
p$phone_number$ SMSユーザ情報に登録された電話番号
p$tnsname$ インスタンス名
p$alert_type$ Alert Type(DB Stat,DB Waitなど)
p$resource_name$ Alert指標名
p$value$ Alert Value
p$level$ Alert Level

0: Normal
1: Warning
C: Critical
p$string_level$ Alert Level (N, W, C)
p$description$ Alertに対する説明(TablespaceおよびDisk Alertに対する追加情報提供)

Tablespace Alert:Tablespace Name,Usage (%),Free Size (KB)提供
Disk Alert:File System Name,Mount Point,Usage (%),Total (MB),Free (MB)提供
p$server_time$ Alertが発生したSystem Time
p$current_time$ DGがAlert情報を受信した時間

注釈

Time Zoneが違うサーバ内に設置されたMaxGaugeに対するalert発生時間を簡単に認知することができるように p$server_time$ (該当サーバ)とp$current_time$ (Local Time)をそれぞれ提供します。

4.7. API発送のための実行フロー

MaxGaugeはAPI連携機能を提供します。
API連携の実行フローは下記のとおりです。
../_images/mfo_api1.png
  • F1. api.jar呼び出し
    • Slave DGは登録されたalert別に、alarm発生の有無をチェックします。
    • 該当alarmがMail発送対象ならapi.jarを呼び出します。
  • F2. api.xml説明

    api.jarはapi.xmlファイルに定義された内容により動作します。下記はapi.xmlファイルの例です。

    <XmSMS>
            <SMS_API encrypt="false">
                    <sms_method>POST</sms_method>
    <sms_url>http://localhost:9110/TEST/home.jsp</sms_url>
                    <sms_msg_encode>UTF-8</sms_msg_encode>
                    <sms_content_type>x-www-form-urlencoded</sms_content_type>
                    <sms_tls_version>TLSv1.2</sms_tls_version>
                    <sms_timeout_conn>5</sms_timeout_conn>
                    <sms_timeout_read>5</sms_timeout_read>
                    <sms_max_length>80</sms_max_length>
                    <sms_header>
                    <h1>Authorization:KEY</h1>
                            </sms_header>
                    </sms_header>
    </SMS_API>
    
    <DEFAULT level="N">
                    <DATA>user_name=%s&phone_number=%s</DATA>
                    <PARAMETER>
                        <p1>p$sms_user_name$</p1>
                        <p2>p$phone_number$</p2>
    </PARAMETER>
    </DEFAULT>
    </XmSMS>
    

    注釈

    api.xmlファイルは{Slave DG設置ディレクトリ}svc配下に位置します。 api呼び出しのためにはsample_api.xml / sample_api.jar名の「sample_」の除去が必要です。

    パラメータ名 説明
    SMS_API encrypt SMS関連主なパラメーターに対する暗号化適用の有無を設定します。

    デフォルト値:false
    暗号化適用後:true

    暗号化機能は“暗号化機能” Sectionを参照します。
    sms_method Request方式を設定します。
    デフォルト値:POST
    sms_url RequestするURL住所を設定します。
    要請するURL住所の後に?を入力した後パラメーターを入力することができ、またパラメータは&記号に区分されます。
    例)http://[ip]:[port]/[page]?[parameter1]=[value]&[parameter2] =[value]
    sms_msg_encode パラメーターのEncodingタイプを設定します。
    デフォルト値:UTF-8
    sms_content_type SMSに送るデータのタイプを設定します。
    デフォルト値:x-www-form-urlencoded
    sms_tls_version HTTPS通信時使うTLSバージョン情報を設定します。
    デフォルト値:TLSv1.2
    sms_timeout_conn 接続がタイムアウトする時間を設定します。
    デフォルト値:5min
    sms_timeout_read 応答がタイムアウトする時間を設定します。
    デフォルト値:5min
    sms_max_length パラメータのBind値の長さを設定します。
    デフォルト値:80byte
    sms_header HTTPメッセージのヘッダに入る内容を設定します。
    デフォルト値:Authorization:KEY
    level 設定したアラームレベルの時、該当フォーマットでメール発送します。
    デフォルト値:N

    設定可能なレベル:N / W / C

    levelをNに設定すればNormal Level以上のアラームが発生する時メール発送します。
    Data api呼び出し時伝達するメッセージを設定します。

4.7.1. SMS_SET_BIND_VALUE

メール発送のためにプログラムで基本的に提供されるパラメータリストは次のとおりです。
該当パラメータを使用して<SMS_SET_BIND_VALUE> Section内の<b1></b1>..... <bn></bn>を設定します。
パラメータ名 説明
p$sms_user_name$ SMSユーザ名
p$business_name$ Configurationウインドウを通じて、インスタンス情報入力時に設定したビジネス名
p$phone_number$ SMSユーザ情報に登録された電話番号
p$tnsname$ インスタンス名
p$alert_type$ Alert Type(DB Stat,DB Waitなど)
p$resource_name$ Alert指標名
p$value$ Alert Value
p$level$ Alert Level

0: Normal
1: Warning
C: Critical
p$string_level$ Alert Level (N, W, C)
p$description$ Alertに対する説明(TablespaceおよびDisk Alertに対する追加情報提供)

Tablespace Alert:Tablespace Name,Usage (%),Free Size (KB)提供
Disk Alert:File System Name,Mount Point,Usage (%),Total (MB),Free (MB)提供
p$server_time$ Alertが発生したSystem Time
p$current_time$ DGがAlert情報を受信した時間

注釈

Time Zoneが違うサーバ内に設置されたMaxGaugeに対するalert発生時間を簡単に認知することができるように p$server_time$ (該当サーバ)とp$current_time$ (Local Time)をそれぞれ提供します。

4.8. 暗号化機能と適用について

4.8.1. 暗号化が可能なパラメータ

MaxGaugeはDGServer.xml、SMS.xml、mail.xmlファイル内の重要な情報に対して、暗号化機能を提供します。
暗号化が可能な項目は、下記のとおりです。
ファイル名 項目
DGServer.xml ・database_ip
・database_port
・database_sid
・database_user
・database_password
SMS.xml ・sms_database_ip
・sms_database_port
・sms_database_sid
・sms_database_user
・sms_database_password
mail.xml ・mail_smtp_host
・mail_smtp_port
・mail_smtp_user
・mail_smtp_password
api.xml ・sms_url

4.8.2. DGServer.xmlに暗号化を適用する方法

  1. {Master DGとSlave DGインストールディレクトリ} binディレクトリにあるDGServer.jarファイルを利用して暗号化を実行します。
C:\Users\seankim\Desktop\Maxgauge5.2_DG_150308.1\DGServer_S1\bin>java -jar DGServer.jar encrypt
Input:127.0.0.1 ← 暗号化したい値を入力
Encrypt:_sLugnyxb0CCeVTzI/wHTfW9+N0UxThuUVlfXFW9pqJhO8CGhhnHr ←暗号化された値

C:\Users\seankim\Desktop\Maxgauge5.2_DG_150308.1\DGServer_S1\bin>java -jar DGServer.jar encrypt
Input:5432 ← 暗号化したい値を入力
Encrypt:_ptptft0IZpbFmaS+LtevatehzL6FuOOFgbvlZ4RTqmbWKFk= ←暗号化された値

C:\Users\seankim\Desktop\Maxgauge5.2_DG_150308.1\DGServer_S1\bin>java -jar DGServer.jar encrypt
Input:pg_repo ← 暗号化したい値を入力
Encrypt:_u+vxZs9OGa9RgJkpcP8o2AEY7laBcQrhkGHd8AAsEG7y4Jw= ←暗号化された値

C:\Users\seankim\Desktop\Maxgauge5.2_DG_150308.1\DGServer_S1\bin>java -jar DGServer.jar encrypt
Input:maxgauge ← 暗号化したい値を入力
Encrypt:_7t10Gf4aA1lmMt5wCZKrxGvLtAm1AxhkOYzZn4EuZuRp9n7a5aKq ←暗号化された値

C:\Users\seankim\Desktop\Maxgauge5.2_DG_150308.1\DGServer_S1\bin>java -jar DGServer.jar encrypt
Input:maxgauge ← 暗号化したい値を入力
Encrypt:_irMPnosJd10+dCoIMppGw0npwCcHd+kysDI9fYz9sNdc+dd5nxid ←暗号化された値
  1. 暗号化された文字列をDGServer.xmlファイル内適用し、<encrypt>をtrueに変更します。
<DBPool>
        <encrypt>true</encrypt>
        <database_type>postgres</database_type>
        <database_ip>127.0.0.1</database_ip>
        <database_port>_ptptft0IZpbFmaS+LtevatehzL6FuOOFgbvlZ4RTqmbWKFk=</database_port>
        <database_sid>_u+vxZs9OGa9RgJkpcP8o2AEY7laBcQrhkGHd8AAsEG7y4Jw=</database_sid>
        <database_user>_7t10Gf4aA1lmMt5wCZKrxGvLtAm1AxhkOYzZn4EuZuRp9n7a5aKq</database_user>
        <database_password>_irMPnosJd10+dCoIMppGw0npwCcHd+kysDI9fYz9sNdc+dd5nxid</database_password>
</DBPool>

注釈

暗号化適用時、5つの主要なパラメータをすべて暗号化する必要があります。 設定ファイルの編集後は、反映するためにDataGatherを再起動します。

4.8.3. SMS.xmlに暗号化を適用する方法

  1. {Slave DGインストールディレクトリ} binディレクトリにあるSMS.jarファイルを利用して暗号化を実行します。
C:\EXEM\DGServer_S1\bin> java -jar sms.jar encrypt
Input:127.0.0.1
Encrypt:_sLugnyxb0CCeVTzI/wHTfW9+N0UxThuUVlfXFW9pqJhO8CGhhnHr

C:\EXEM\DGServer_S1\bin> java -jar sms.jar encrypt
Input:1521
Encrypt:_ptptft0IZpbFmaS+LtevatehzL6FuOOFgbvlZ4RTqmbWKFk=

C:\EXEM\DGServer_S1\bin> java -jar sms.jar encrypt
Input:orcl
Encrypt:_u+vxZs9OGa9RgJkpcP8o2AEY7laBcQrhkGHd8AAsEG7y4Jw=

C:\EXEM\DGServer_S1\bin> java -jar sms.jar encrypt
Input:maxgauge
Encrypt:_7t10Gf4aA1lmMt5wCZKrxGvLtAm1AxhkOYzZn4EuZuRp9n7a5aKq

C:\EXEM\DGServer_S1\bin> java -jar sms.jar encrypt
Input:maxgauge
Encrypt:_irMPnosJd10+dCoIMppGw0npwCcHd+kysDI9fYz9sNdc+dd5nxid
  1. 暗号化された文字列をSMS.xmlファイル内適用し、<SMS_DB encrypt>をtrueに変更します。
<SMS_DB encrypt="true">
<sms_database_type>oracle</sms_database_type>
<sms_database_ip> sLugnyxb0CCeVTzI/wHTfW9+N0UxThuUVlfXFW9pqJhO8CGhhnHr </sms_database_ip>
<sms_database_port> ptptft0IZpbFmaS+LtevatehzL6FuOOFgbvlZ4RTqmbWKFk=</sms_database_port>
<sms_database_sid> u+vxZs9OGa9RgJkpcP8o2AEY7laBcQrhkGHd8AAsEG7y4Jw=</sms_database_sid>
<sms_database_user>7t10Gf4aA1lmMt5wCZKrxGvLtAm1AxhkOYzZn4EuZuRp9n7a5aKq</sms_database_user>
<sms_database_password> irMPnosJd10+dCoIMppGw0npwCcHd+kysDI9fYz9sNdc+dd5nxid /sms_database_password>
<bind_max_length>80</bind_max_length>
</SMS_DB>

注釈

暗号化適用時、5つの主要なパラメータをすべて暗号化する必要があります。 設定ファイルの編集後は、反映するためにDataGatherを再起動します。 DGServer.jar / sms.jar / mail.jar / api.jarには同じ暗号化ロジックのため、区分なく使用可能です。

4.8.4. Mail.xmlに暗号化を適用する方法

  1. {Slave DGインストールディレクトリ} binディレクトリにあるMail.jarファイルを利用して暗号化を実行します。
C:\EXEM\DGServer_S1\bin>java -jar mail.jar encrypt
Input:127.0.0.1
Encrypt:_sLugnyxb0CCeVTzI/wHTfW9+N0UxThuUVlfXFW9pqJhO8CGhhnHr

C:\EXEM\DGServer_S1\bin>java -jar mail.jar encrypt
Input:25
Encrypt: _tAwHtktzTkGR+a8B9titWcawiPswV5UcOgPTTt8XvA==

C:\EXEM\DGServer_S1\bin>java -jar mail.jar encrypt
Input:maxgauge
Encrypt:_7t10Gf4aA1lmMt5wCZKrxGvLtAm1AxhkOYzZn4EuZuRp9n7a5aKq

C:\EXEM\DGServer_S1\bin>java -jar mail.jar encrypt
Input:maxgauge
Encrypt:_irMPnosJd10+dCoIMppGw0npwCcHd+kysDI9fYz9sNdc+dd5nxid
  1. 暗号化された文字列をmail.xmlファイル内適用し、<SMTP encrypt>をtrueに変更します。
<SMTP encrypt="true">
<ssl>false</ssl>
<auth>false</auth>
<host> _sLugnyxb0CCeVTzI/wHTfW9+N0UxThuUVlfXFW9pqJhO8CGhhnHr</host>
<port> </port>
<user_7t10Gf4aA1lmMt5wCZKrxGvLtAm1AxhkOYzZn4EuZuRp9n7a5aKq </user>
<password_irMPnosJd10+dCoIMppGw0npwCcHd+kysDI9fYz9sNdc+dd5nxid </password>
</SMTP>

注釈

暗号化適用時、4つの主要なパラメータをすべて暗号化する必要があります。 設定ファイルの編集後は、反映するためにDataGatherを再起動します。 DGServer.jar / sms.jar / mail.jar / api.jarには同じ暗号化ロジックのため、区分なく使用可能です。

4.8.5. API.xmlに暗号化を適用する方法

  1. {Slave DGインストールディレクトリ} binディレクトリにあるAPI.jarファイルを利用して暗号化を実行します。
C:\EXEM\DGServer_S1\bin>java -jar api.jar encrypt
Input: http://localhost:9110/TEST/home.jsp
Encrypt: _9JDaR+8xrADpw5IG4O3OzkSfbb1klA96gGSr+zm
  1. 暗号化された文字列をsms.xmlファイル内適用し、<SMS_DB encrypt>をtrueに変更します。
<SMS_API encrypt="true">
<sms_method>POST</sms_method>
<sms_url> _9JDaR+8xrADpw5IG4O3OzkSfbb1klA96gGSr+zm</sms_url>
<sms_msg_encode>UTF-8</sms_msg_encode>
....
</SMS_API>

注釈

暗号化適用時、1つの主要なパラメータをすべて暗号化する必要があります。 設定ファイルの編集後は、反映するためにDataGatherを再起動します。 DGServer.jar / sms.jar / mail.jar / api.jarには同じ暗号化ロジックのため、区分なく使用可能です。

4.8.6. 暗号化stringの確認方法

暗号化を実行したJARファイルを利用して暗号化stringの内容を確認できます。
たとえば、SMS.jarを利用して暗号化を実行した<sms_database_password>の内容を確認する方法は次のとおりです。
C:\Users\seankim\Desktop\Maxgauge5.2_DG_150308.1\DGServer_S1\bin>java -jar sms.jar decrypt
Input: _irMPnosJd10+dCoIMppGw0npwCcHd+kysDI9fYz9sNdc+dd5nxid

4.9. Alarm

4.9.1. Alarm発生関連パラメータ

DGは、次のようなパラメータ設定値を利用してalarm発生の有無を決定します。

パラメータ名 説明 設定方法 適用範囲
alert_interval DGが性能データに対するalarm発生の有無をチェックする間隔を設定 アラート管理管理画面のInterval(Sec) 個別Stat別
repeat_count 連続的にrepeat_countと設定回数以上alarm発生条件を満たした場合、alarmが発生 アラート管理管理画面のRepeat 個別Stat別
cont_alert_interval Alarm条件が持続する場合に、持続的にalarmを発生させる場合に使用する(デフォルト60秒) /opt/maxgauge/DGServer_S1/conf/DGServer.xml MaxGaugeサーバ単位
  • cont_alert_interval(sec)
    項目 説明
    Syntax cont_alert_interval=integer
    Option range 0 : 機能使用しない
    integer : 設定された間隔ごとにalarm発生
    Default value 0
    cont_alert_interval =60

4.9.2. Alarm発生例

Alarm発生例は次のとおりです。
alert_interval=1秒、repeat_count=3回である場合に、
cont_alert_intervalオプション設定にともなうalarm発生の例です。
Cell色が赤い色ならCritical alarm、黄色ならWarning alarmが発生します。
../_images/mfo_alarm1.PNG