はじめに
本記事では、IBM API Connect V10 の分析サブシステムにおいて、分析データをサード・パーティー・システムにオフロードする場合等に対応しているプラグインの確認方法を備忘します。
確認環境
以下の IBM API Connect V10 for Containers on OpenShift Container Platform 版で動作確認をしています。
|コンポーネント|バージョン|
|:--|--:|:--:|
|OpenShift Container Platform|4.6.16|
|IBM API Connect|10.0.1.2-ifix2-100-eus|
分析サブシステムについて
- API Connect の分析サブシステムである
Analytics
は、以下のようなマイクロ・サービス Pod から構成されています。
# oc get po -l app.kubernetes.io/instance=analytics
NAME READY STATUS RESTARTS AGE
analytics-cj-retention-1630287000-c2p9x 0/1 Completed 0 108m
analytics-cj-rollover-1630293300-p2lvs 0/1 Completed 0 3m51s
analytics-client-77c79c4dd9-n7vbx 1/1 Running 0 68d
analytics-ingestion-6c657f847d-92649 1/1 Running 0 68d
analytics-mtls-gw-6889cbdcb9-jtvph 1/1 Running 0 68d
analytics-storage-coord-7466458c88-xhgtv 1/1 Running 0 68d
analytics-storage-data-0 1/1 Running 0 68d
analytics-storage-master-0 1/1 Running 0 68d
-
ゲートウェイ・サブシステム
Gateway
上で呼び出された API のレコードが Analytics に Push されると、Analytics はそれを分析データ
として加工し、以下のいずれか、または両方の方法で参照することができます。- Analytics の DB に分析データをストアし、Management サブシステム
API Manager
またはポータル・サブシステムPortal
から分析画面を介して参照 - サード・パーティー・システムに分析データをオフロードし、サード・パーティー・システムから参照
- Analytics の DB に分析データをストアし、Management サブシステム
-
オフロード先のサード・パーティー・システムは、執筆時点で公式には以下の4種類がサポートされています。
- HTTP(s) endpoints
- Elastic Elasticsearch v6, v7
- Apache Kafka v1.0.0
- Syslog servers
-
分析データのオフロードは、内部的に
Elastic Logstash
の技術が使われています。
Logstash プラグインの確認方法
Analytics のマイクロ・サービス Pod analytics-ingestion
のシェルを実行して、使用可能なプラグインを参照します。
analytics-ingestion pod のシェル実行
# oc exec -it analytics-ingestion-6c657f847d-92649 bash
bash-4.4$
使用可能な Logstash プラグインのリスト参照
bash-4.4$ /usr/share/logstash/bin/logstash-plugin list --verbose
実行結果例
logstash-codec-avro (3.2.4)
logstash-codec-cef (6.1.1)
logstash-codec-collectd (3.0.8)
logstash-codec-dots (3.0.6)
logstash-codec-edn (3.0.6)
logstash-codec-edn_lines (3.0.6)
logstash-codec-es_bulk (3.0.8)
logstash-codec-fluent (3.3.0)
logstash-codec-graphite (3.0.5)
logstash-codec-json (3.0.5)
logstash-codec-json_lines (3.0.6)
logstash-codec-line (3.0.8)
logstash-codec-msgpack (3.0.7)
logstash-codec-multiline (3.0.10)
logstash-codec-netflow (4.2.1)
logstash-codec-plain (3.0.6)
logstash-codec-rubydebug (3.1.0)
logstash-filter-aggregate (2.9.1)
logstash-filter-anonymize (3.0.6)
logstash-filter-apic (2.15.0)
logstash-filter-cidr (3.1.3)
logstash-filter-clone (4.0.0)
logstash-filter-csv (3.0.10)
logstash-filter-date (3.1.9)
logstash-filter-de_dot (1.0.4)
logstash-filter-dissect (1.2.0)
logstash-filter-dns (3.1.4)
logstash-filter-drop (3.0.5)
logstash-filter-elasticsearch (3.9.0)
logstash-filter-fingerprint (3.2.2)
logstash-filter-geoip (6.0.3)
logstash-filter-grok (4.3.0)
logstash-filter-http (1.0.2)
logstash-filter-json (3.1.0)
logstash-filter-kv (4.4.1)
logstash-filter-memcached (1.1.0)
logstash-filter-metrics (4.0.6)
logstash-filter-mutate (3.5.0)
logstash-filter-prune (3.0.4)
logstash-filter-ruby (3.1.5)
logstash-filter-sleep (3.0.7)
logstash-filter-split (3.1.8)
logstash-filter-syslog_pri (3.0.5)
logstash-filter-throttle (4.0.4)
logstash-filter-translate (3.2.3)
logstash-filter-truncate (1.0.4)
logstash-filter-urldecode (3.0.6)
logstash-filter-useragent (3.2.4)
logstash-filter-uuid (3.0.5)
logstash-filter-xml (4.1.1)
logstash-input-azure_event_hubs (1.2.2)
logstash-input-beats (6.0.11)
logstash-input-couchdb_changes (3.1.6)
logstash-input-dead_letter_queue (1.1.5)
logstash-input-elasticsearch (4.7.1)
logstash-input-exec (3.3.3)
logstash-input-file (4.2.2)
logstash-input-ganglia (3.1.4)
logstash-input-gelf (3.3.0)
logstash-input-generator (3.0.6)
logstash-input-graphite (3.0.6)
logstash-input-heartbeat (3.0.7)
logstash-input-http (3.3.5)
logstash-input-http_poller (5.0.2)
logstash-input-imap (3.1.0)
logstash-input-jms (3.1.2)
logstash-input-kafka (9.1.1)
logstash-input-pipe (3.0.7)
logstash-input-redis (3.5.1)
logstash-input-s3 (3.5.0)
logstash-input-snmp (1.2.7)
logstash-input-snmptrap (3.0.6)
logstash-input-sqs (3.1.2)
logstash-input-stdin (3.2.6)
logstash-input-syslog (3.4.4)
logstash-input-tcp (6.0.6)
logstash-input-twitter (4.0.3)
logstash-input-udp (3.3.4)
logstash-input-unix (3.0.7)
logstash-integration-jdbc (5.0.6)
├── logstash-input-jdbc
├── logstash-filter-jdbc_streaming
└── logstash-filter-jdbc_static
logstash-integration-rabbitmq (7.1.1)
├── logstash-input-rabbitmq
└── logstash-output-rabbitmq
logstash-output-cloudwatch (3.0.8)
logstash-output-csv (3.0.8)
logstash-output-elastic_app_search (1.1.1)
logstash-output-elasticsearch (10.6.2)
logstash-output-email (4.1.1)
logstash-output-file (4.3.0)
logstash-output-gelf (3.1.7)
logstash-output-graphite (3.1.6)
logstash-output-http (5.2.4)
logstash-output-kafka (8.1.1)
logstash-output-lumberjack (3.1.7)
logstash-output-nagios (3.0.6)
logstash-output-null (3.0.5)
logstash-output-pipe (3.0.6)
logstash-output-redis (5.0.0)
logstash-output-s3 (4.3.2)
logstash-output-sns (4.0.7)
logstash-output-sqs (6.0.0)
logstash-output-stdout (3.1.4)
logstash-output-syslog (3.0.5)
logstash-output-tcp (6.0.0)
logstash-output-udp (3.1.0)
logstash-output-webhdfs (3.0.6)
logstash-patterns-core (4.1.2)
実行結果から、例えばlogstash-codec-*
ではオフロードで使用可能な codec の一覧を、logstash-output-*
ではオフロードで使用可能なプロトコルの一覧を参照することができます。
おわりに
以上、分析データに使用可能なプラグイン一覧を参照する方法について記載しました。
様々なプラグインに対応していることがわかりましたが、現時点ではあくまでも前述した4種類のサード・パーティー・システムのみが公式にサポートされますので十分にご留意ください。
機会があれば、サポートされるサード・パーティー・システムへの分析データのオフロード方法について記載したいと思います。
参照
Planning to offload data to a third-party system
API Connect components - API Analytics