11 ELKを使用したOracle NoSQL Databaseの監視

ELKは、Elasticsearch、LogstashおよびKibanaの3つのオープン・ソース・プロジェクトの略語です。

Elasticsearchは検索と分析のエンジンです。Logstashはサーバー側のデータ処理パイプラインとして、複数のソースからデータを同時に収集して変換し、Elasticsearchと同様、stashに送信します。Kibanaでは、ユーザーがElasticsearchでデータをチャートやグラフで可視化できます。ELKスタックは、Oracle NoSQL Databaseの監視に使用できます。

注意:

ストレージ・ノード・エージェント(SNA)が検出および監視されるためには、JMX用に構成する必要があります。デフォルトではJMXは無効となっています。show parametersコマンドを発行し、mgmtClassパラメータのレポート値をチェックすることで、デプロイ済のSNAでJMXが有効かどうかがわかります。この値がoracle.kv.impl.mgmt.jmx.JmxAgentでない場合、planコマンドのchange-parametersを発行してJMXを有効にする必要があります。

次に例を示します。

plan change-parameters -service sn1 -wait \
-params mgmtClass=oracle.kv.impl.mgmt.jmx.JmxAgent

詳細は、標準化されたインタフェース監視を参照してください。

コレクタ・サービスの有効化

Oracle NoSQL Databaseのコレクタ・サービスを有効にするには、次のステップを実行します。

  1. ストア全体でcollectorEnabledパラメータをtrueに設定します。

    plan change-parameter -global -params collectorEnabled=true -wait
  2. collectorIntervalに適切な値を設定します。間隔の値を低くすると、より詳細な情報が収集され、より多くの記憶域が必要になります。間隔の値を高くすると、比較的少ない詳細が収集され、必要な記憶域が少なくなります。

    plan change-parameter -global -params collectorInterval="30 s" -wait
  3. collectorStoragePerComponentに適切な記憶域サイズを指定します。各コンポーネント(各SNおよびRN)によって収集されたデータは、バッファに格納されます。このバッファ・サイズは、このパラメータを設定することによって変更できます。

    plan change-parameter -global -params collectorStoragePerComponent="50 MB" -wait 

Elasticsearchの設定

Elasticsearchを設定するには、次のステップを実行します。

  1. Elasticsearch-5.6.4をダウンロードし、解凍します。

  2. 構成に従って$ELASTICSEARCH/config/elasticsearch.ymlファイルを変更します。

    例: path.dataおよびpath.logsの値を設定して、データおよびログを指定した場所に格納します。

  3. Elasticsearchを起動します。

    $ cd $ELASTICSEARCH
    $ sudo sysctl -q -w vm.max_map_count=262144;
    $ nohup bin/elasticsearch &

詳細は、Elasticsearch Referenceガイドを参照してください。

Kibanaの設定

Kibanaを設定するには、次のステップを実行します。

  1. Kibana-5.6.4をダウンロードし、解凍します。

  2. 構成に従って$KIBANA/config/kibana.ymlファイルを変更します。

    例: ElasticsearchがKibanaと同じマシンにデプロイされていない場合は、行elasticsearch.url:”<your_es_hostname>:9200”を追加します。これにより、Kibanaが127.0.0.1:9200ではなく、指定されたElasticsearchアドレスに接続するように設定されます。

  3. Kibanaを起動します。

    $ cd $KIBANA
    $ nohup bin/kibana &

詳細は、Kibana Referenceガイドを参照してください。

Logstashの設定

Logstashを設定するには、次のステップを実行します。

  1. Logstash-5.6.4をダウンロードし、解凍します。

  2. Logstashの解凍先と同じディレクトリにlogstash.configファイルを配置します。構成に従ってlogstash.configファイルを変更します。

    例: ElasticsearchがLogstashと同じマシンにデプロイされていない場合は、Elasticsearchホストをlocalhost:9200から<your_es_hostname>:9200に変更します。

  3. Logstashの解凍先と同じディレクトリにテンプレート(kvevents.template、kvpingstats.template、kvrnenvstats.template、kvrnjvmstats.template、kvrnopstats.template)を配置します。構成に従ってテンプレートを変更します。

  4. $LOGSTASHディレクトリに切り替えます。ディレクトリに、Logstash設定ファイル、構成ファイルおよびすべてのテンプレートが含まれていることを確認します。次に、Logstashを起動します。

    $ cd $LOGSTASH
    $ logstash-5.6.4/bin/logstash -f logstash.config &

詳細は、Logstash Referenceガイドを参照してください。

各ストレージ・ノードでのFilebeatの設定

各ストレージ・ノードにFilebeatを設定するには、次のステップを実行します。

  1. Filebeat-5.6.4をダウンロードし、解凍します。

  2. 既存のfilebeat.ymlfilebeat.ymlに置き換えます。ファイルを編集して、出現するすべての/path/of/kvrootをこのSNの実際のKVROOTパスに置き換えます。また、LOGSTASH_HOSTをLogstashの実際のIPに置き換えます。

  3. Filebeatを起動します。

    $ cd $FILEBEAT
    $ ./filebeat &
  4. クラスタのすべてのストレージ・ノードで、前述のステップを繰り返します。

詳細は、Filebeat Referenceガイドを参照してください。

Kibanaを使用したOracle NoSQL Databaseの分析

この例では、Kibanaで索引を作成してデータを視覚化する方法について説明します。

索引パターンにより、探索するElasticsearch索引がKibanaに指示されます。索引パターンは、単一の索引の名前に一致させることも、複数の索引に一致するようにワイルドカード(*)を含めることもできます。

前述のテンプレート・ファイルを使用した場合は、次の索引を使用できます。

  1. kvrnjvmstats-*

  2. kvrnenvstats-*

  3. kvpingstats-*

  4. kvrnopstats-*

  5. kvrnopstats-* — イベントが発生しなかったためにストアが新しいものである場合、この索引は存在しないことがあります。

索引パターンの作成

Kibanaを使用する前に、索引パターンを構成する必要があります。Kibanaで前述の索引を作成します。

データの分析

この例では、索引kvpingstats-*を使用して可視化を作成し、クラスタ内で95thLatencyを検出します。

  1. 可視化タイプを選択します。この例では、Timelionを選択します。

  2. データを集約するTimelion式を入力します。この例では、次の式が使用されています。

    .es(index=kvrnopstats-*, timefield='@timestamp', metric='max:SingleKeyReadOperations_Interval_95th').label('read-single').legend("sw",2).title("95thLatency"),.es(index=kvrnopstats-*, timefield='@timestamp', metric='max:SingleKeyWriteOperations_Interval_95th').label('write-single').legend("sw",2).title("95thLatency")
  3. 可視化を保存し、任意のダッシュボードに追加します。