StatsDとTelegrafでGoldenGateの可観測性を向上 (2024/05/01)

StatsDとTelegrafでGoldenGateの可観測性を向上 (2024/05/01)

https://blogs.oracle.com/dataintegration/post/goldengate-statsd-telegraf

投稿者: Alex Lima | Director of Product Management


TelegrafとのStatsD統合では、TelegrafをStatsDメトリックのアグリゲータおよびプロセッサとして使用してから、Autonomous Database、InfluxDBなどの時系列データベース、またはTelegrafでサポートされているその他の出力に転送します。


Oracle GoldenGate 23aiには、即時利用可能なStatsD形式のメトリックが含まれるようになりました。100以上のメトリックがあり、これはデプロイメントのインストール時またはAPIを介して後でアクティブ化できます。


OGGCA:




Rest API:

curl -svu username:password \
-X PATCH http://hostname:port/services/v2/deployments/deployment_name \
--data '{
       "metrics": 
           {
              "enabled":true, 
              "servers": 
                   [
                      {      
                         "type":"pmsrvr", 
                         "protocol":"uds"
                      }, 
                      {      
                         "type":"statsd", 
                         "host":"<statsd_host>"
                      }
                   ]
           } 
        }'



StatsDは、UDPまたはTCPを介して送信されるカウンタやタイマーなどの統計をリスニングし、集計を1つ以上のプラガブル・バックエンド・サービス(Autonomous Database、Graphite、InfluxDB、Prometheus、TimescaleDBなど)に送信するネットワーク・デーモンです。当初はEtsy社によって開発され、イベント、メトリックまたはステータス・データ・ポイントをリアルタイムで追跡するパフォーマンスを向上させるように設計されています。


一方、Telegrafは、様々なソースから時系列データベースへのメトリックの収集、処理、集計および書込み用に設計された、InfluxDataによって開発されたサーバーベースのエージェントです。これは、InfluxDataプラットフォームの一部であるオープン・ソース・ツールです。Telegrafは、多数のシステム、サービス、APIデータ形式と統合できるプラグイン駆動型アーキテクチャをサポートしています。


StatsDとTelegrafのGoldenGate 23ai統合は、StatsDプロトコルを使用して送信されるGoldenGate 23aiメトリックを受信するようにTelegrafを構成できることを意味します。GoldenGate 23aiは、Telegrafに軽量かつ非ブロッキングであるため、メトリックをUDP経由で送信し、その後、ストレージ・ロケーション(通常は永続ストレージの時系列データベース)に挿入します。


その後、時系列データベースからリアルタイムおよび履歴のメトリックを使用して、カスタマイズされたダッシュボードを構築できます。これにより、すべてのデプロイメントのメトリックを1つの画面で可視化できます。



この統合の仕組みについて詳しく説明します。


StatsDプロトコルのサポート:


  • StatsDは、UDPを介して送信されるカウンタやタイマーなどの統計をリスニングし、それらを1つ以上のプラガブル・バックエンド・サービス(時系列データベースなど)に送信するネットワーク・デーモンです。
  • Telegrafには、StatsD形式で送信されたメトリックを受信できる組込みのStatsDサーバーがあります。これは、StatsDリスナーとして機能します。


構成:


  • Telegraf構成ファイルで、StatsD入力プラグイン(https://github.com/influxdata/telegraf/blob/master/plugins/inputs/statsd/README.md)を有効にできます。これには、サービス・アドレス、メトリック収集間隔、およびメトリックのロギング、タグの設定、集計などの追加処理の定義などのその他のオプション・パラメータの指定が含まれます。
  • 構成スニペットの例:


[[inputs.statsd]]

interval             = "5s"


メトリック処理:


  • 有効にすると、TelegrafのStatsDプラグインは、指定されたポートでUDPパケットをリスニングします。これは、StatsDプロトコル(カウンタ、ゲージ、セットおよびタイマーの処理)に従ってデータを解析および集計します。
  • タグの追加、値の変換、メトリックの集計などの追加処理を経時的に実行してから出力に送信するようにTelegrafを構成できます。



出力:


  • 処理後、メトリックは、Telegrafでサポートされている様々な出力(InfluxDB、Prometheus、Kafkaなど)に転送できます。出力は、Telegraf構成ファイルでも構成されます。
  • これにより、Telegrafからの出力が非常に柔軟になるため、GoldenGateの顧客は、高度にカスタマイズ可能な監視ソリューションを構築できます。


利点:


  • TelegrafをStatsDとともに使用すると、Telegrafの豊富なプラグイン・セット(https://docs.influxdata.com/telegraf/v1/plugins/)を活用して、ストレージ前のさらなるデータ処理と拡張が可能になります。また、個別のStatsDサーバーの必要性を減らすことで、アーキテクチャを簡素化します。



StatsD/Telegraf統合のテスト環境の作成に使用したステップを次に示します。


簡単にするために、私は一連のコンテナで構築しました。サービスごとにコンテナを1つ作成しましたが、GoldenGateホストまたは他の場所にTelegrafをインストールできます。この場合、Telegrafの専用ホストを作成し、GoldenGateはそのホストにメトリックをプッシュします。



ノート: データベースのプッシュ・メトリックは、説明のみを目的としており、デモンストレーションの一部ではありません。



1- GitHubからGoldenGateスクリプトをクローニングし、GoldenGate 23aiコンテナ・イメージを作成します。

$cd to directory copied from GitHub
export ogg_release="XXXXXX"
docker build --tag=alexlima/goldengate234:${ogg_release}  --tag=alexlima/goldengate234:latest \
--build-arg INSTALLER=fbo_ggs_Linux_x64_Oracle_services_shiphome.zip .  2>&1 | tee build_${ogg_release}.log


2- 繰返し可能なデプロイメント用の他のすべてのイメージをダウンロードします。

docker pull alexlima/oracle-free:23.3-slim-ogg

docker pull influxdb:2.7-alpine 
docker image tag influxdb:2.7-alpine  alexlima/influxdb:2.7-alpine

docker pull telegraf
docker image tag telegraf:latest alexlima/telegraf:1.30.2 

docker pull grafana/grafana
docker image tag grafana/grafana:latest alexlima/grafana:10.4.2


3-    すべてのファイルをGitHubリポジトリからローカル・ディレクトリ(/u99/oggdemoなど)にダウンロードします。

https://github.com/alexlimahub/OGG_StatsD


4-    ディレクトリを/u99/oggdemoに変更します。

$cd /u99/oggdemo
$docker compose up -d
$docker compose logs -f


5-    すべてのコンテナが正常かどうかを確認します。

alexlima@alexlima-mac ~ % docker ps
CONTAINER ID   IMAGE                                COMMAND                  CREATED        STATUS                  PORTS                                                                     NAMES
ce26134db476   alexlima/grafana:10.4.2              "/run.sh"                26 hours ago   Up 26 hours             0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                 grafana-server
448b27e21d0c   alexlima/telegraf:1.30.2             "/entrypoint.sh tele…"   26 hours ago   Up 26 hours             8092/udp, 8125/udp, 8094/tcp, 0.0.0.0:8125->8125/tcp, :::8125->8125/tcp   telegraf
d5f50bd685d4   alexlima/oracle-free:23.3-slim-ogg   "/opt/oracle/run.sh"     26 hours ago   Up 26 hours             0.0.0.0:1524->1521/tcp, :::1524->1521/tcp                                 db233demoW
72a7fbc3e09b   alexlima/oracle-free:23.3-slim-ogg   "/opt/oracle/run.sh"     26 hours ago   Up 26 hours             0.0.0.0:1525->1521/tcp, :::1525->1521/tcp                                 db233demoE
d2c7fc3d4547   alexlima/goldengate234:latest        "/usr/local/bin/depl…"   26 hours ago   Up 26 hours (healthy)   22/tcp, 80/tcp, 0.0.0.0:281->443/tcp, :::281->443/tcp                     ogg234demo
0745051c0710   alexlima/influxdb:2.7-alpine         "./entrypoint.sh"        26 hours ago   Up 26 hours             0.0.0.0:8086->8086/tcp, :::8086->8086/tcp                                 influxdb


6- 双方向レプリケーションの作成

$./create_replication.sh


7- StatsDの有効化

$./enable_statsd.sh

ノート: 理解する必要があるその他の重要なファイルは、演習を構築するためにすべての環境変数を設定する.env、データベースを設定するentrypoint.shおよびtelegraf構成用のtelegraf.confです。

8- GoldenGateにログインします。

https://localhost:1055/

oggadmin / Welcome##123




9- 管理サービスに移動


Extractが2つ、Replicatが2つ表示されます。



ノート: 続行する前に、すべての抽出およびレプリカを停止して再起動してください。


10-     InfluxDBを見て、GoldenGateのメトリックがデータベースに移入されているかどうかを確認します。

http://localhost:8086/ 

admin / Welcome##123




この段階での手動ステップを回避するために、管理トークンとバケットがコンテナのビルド中に作成されました。.envファイルの"DOCKER_INFLUXDB_INIT_ADMIN_TOKEN"変数を調べます。GrafanaからInfluxDBへの接続を作成する必要があるため、その手間が省けます。



次に、バケットが作成されたかどうかを確認します。ファイルentrypoint.shファイルを調べて、バケットがどのように作成されたかを確認します。



バケットが正常に作成されたことがわかりました。次に、データが移入されているかどうかを確認します。データ・エクスプローラをクリックします。



これで、バケットに移入されているメトリックが表示され、スクリプト・エディタを使用してデータのビジュアル化を開始できます。


この時点で、メトリックをInfluxDBデータベースにプッシュするGoldenGateがあり、お気に入りのダッシュボード・ツールを接続してビジュアライゼーションを作成できるようになりました。


この例では、Grafanaをアタッチします。


11- Grafanaにログイン

https://localhost:3000 

admin / Welcome##123


12- 接続の追加


ハンバーガー・メニューから「Add New Connection」を選択します。




InfluxDBを選択します。



次の接続プロパティ・ウィンドウで、次を追加します。

Name: influxdb
Select Flux for Query Language
URL: http://influxdb:8086
Organization: OGG_DEMO
Token:  Get from the .env file
Default Bucket:  goldengate-bucket
Save & Test

 




13- ダッシュボード・テンプレートのインポート


概念を理解するためのテンプレートにすぎず、要件にあわせて新しいダッシュボードを変更および作成できます。


「ダッシュボード」に移動し、右上のコーネットで「新規」をクリックしてインポートします。




メインのDashboard-1714512160772.jsonファイルをアップロードし、ドロップダウンからデータベースを選択します。




「ダッシュボード」に戻り、「メイン・ダッシュボード」を選択します。



Grafanaでテンプレート・ダッシュボードを表示できるようになりました。




追加情報

GoldenGate Documentation

GoldenGate Home Page

Oracle GoldenGate YouTube Channel

コメント

このブログの人気の投稿

Oracle Database 19cサポート・タイムラインの重要な更新 (2024/11/20)

Oracle APEXのInteractive Gridで、Oracle Formsと比較して、重複行の検証を制御/通過させる方法 (2022/07/21)

Oracle APEX 24.1の一般提供の発表 (2024/06/17)