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でテンプレート・ダッシュボードを表示できるようになりました。
追加情報
コメント
コメントを投稿