Kafka レシーバー用 LogicMonitor データ パブリッシャー
最終更新日 - 01年2025月XNUMX日
LogicMonitor Data Publisherは、Collectorに統合されたサービスです。CollectorからリアルタイムのDataSourceメトリクスを抽出し、Kafkaレシーバー(サードパーティの送信先)に送信して、さらに詳細な分析を行うことができます。この機能により、CollectorはLogicMonitorポータルへのデータ送信と並行して、他のデータシンクにもメトリクスを送信できます。LogicMonitor Data Publisherは、Kafkaレシーバーにメトリクスを送信します。
Kafkaレシーバーがコレクターと統合されると、LogicMonitorデータパブリッシャーは自動的にメトリックを共有します。サービスワークフローの概要は以下のとおりです。
- Kafkaレシーバーを有効にして設定するには、
agent.conf設定. - LogicMonitor Data Publisher サービスを開始するには、コレクターを再起動します。
- LogicMonitor データ パブリッシャーはメトリックを収集し、標準の OTLP 形式の JSON 文字列に変換します。
- LogicMonitor データ パブリッシャーは、フォーマットされたデータを Kafka レシーバーに送信します。
Kafka クラスター設定に関する考慮事項
Kafkaのクラスタ構成は、 大規模な AWS EC2 インスタンス。設定の詳細は次のとおりです。
ハードウェアの設定
| 推奨値 | |
| CPUコア | 8 |
| メモリ(RAM) | 32 GB |
Kafka クラスター設定
Kafka クラスターの推奨値は次のとおりです。
| 推奨値 | 詳細説明 | |
| クラスター内のブローカーの数 | 3 | 複数のブローカーは、1 つのブローカーがダウンし、クラスター内の他のブローカーがデータ損失を回避するのに役立つなどの状況で役立ちます。 |
| 複製係数 | 3 | これはブローカー数に似ています。ここでは、すべてのブローカーで同じトピックが作成され、送信されたデータも保存されます。 |
| 保存期間 | 6時間 | Kafkaブローカーにデータが保持される期間を示します。保持期間が過ぎるとデータは削除されます。コンシューマーによって異なりますが、メモリを効率的に使用するために、この設定を設定することをお勧めします。 |
| ブローカーごとのパーティション制限 | 2000 | Kafkaトピックでは、データはパーティションに保存されます。これは各ブローカーの最大パーティション制限です。 |
ネットワーク設定
- スループット計算—Kafka クラスタの総スループットを見積もるには、データの生成と消費の速度を考慮します。これに基づいて、コレクターと Kafka クラスタ間のネットワーク帯域幅を決定します。
- レプリケーション係数—推奨されるレプリケーション係数に基づいて、ネットワーク帯域幅がブローカー間のレプリケーション トラフィックに対応できることを確認します。
- プロデューサーとコンシューマーの構成—ネットワークのオーバーヘッドを削減するには、Kafkaのプロデューサーとコンシューマーをバッチメッセージに調整します。詳細については、 Kafka プロパティ設定.
セキュリティの設定
LogicMonitor Data Publisherは、プレーンテキスト(noAuth)モードとSSL(Auth)モードの両方をサポートしています。ただし、セキュリティを強化するために、SSL(Auth)モードを使用することをお勧めします。
推奨事項: 共有メトリックのセキュリティを確保するには、SSL (認証) モードを使用します。
セキュリティ設定に関連する構成プロパティは次のとおりです。
agent.publisher.enable.authkafka.ssl.truststore.namekafka.ssl.truststore.passwordkafka.ssl.keystore.namekafka.ssl.keystore.passwordkafka.ssl.key.password
詳細については、を参照してください。 Kafka プロパティ設定.
Kafka レシーバー用 LogicMonitor データ パブリッシャーの使用要件
Kafka レシーバー用の LogicMonitor Data Publisher を使用するには、次のものが必要です。
- Kafka クライアント バージョン 3.8.1 以降をサポートします。
- EA Collector 37.300 以降がマシンにインストールされています。
- LogicMonitor Data Publisher サービスが有効 (
enable.collector.publisher=true) agent.config 設定で。 - Collector と Kafka 間の強力なネットワーク接続。
- Kafka ブローカーがホストする URL
- Kafkaトピック名
- 民衆史博物館は、本助成金を活用してマンチェスターのサフラジェット・バナー
metrics.protoOTLP形式のJSON文字列のメトリクスを読み取り、変換するためのバージョンv1.0.0。詳細については、 メトリクス.proto GitHubから。
Kafka プロパティ設定
agent.conf 設定で、次のプロパティを構成します。
| プロパティ | 詳細説明 |
enable.collector.publisher | (必須のLogicMonitorデータパブリッシャーサービスを有効にするには、値を次のように設定します。 trueデフォルトでは、値は false. |
kafka.broker.server.urls | (必須の) Kafka クラスターとの初期接続を確立するための、ホスト:ポートのペアのコンマ区切りリスト。 例:host1:port1、host2:port2 など。 |
kafka.topic.name | (必須の) データが公開される Kafka トピック名。 |
agent.publisher.enable.auth | デフォルトでは、LogicMonitor Data PublisherはデータをnoAuthモード(つまりプレーンテキスト)で送信します。Authモードを有効にするには、プロパティを true有効にすると、LogicMonitor Data Publisher は SSL モードに切り替わります。 |
kafka.ssl.truststore.name | Kafkaのトラストストア名。特定の証明書を 発行者証明書 エージェントのルートディレクトリのフォルダ。このプロパティのデフォルト値は kafka.producer.truststore.jks |
kafka.ssl.truststore.password | トラストストアのパスワードは kafka.ssl.truststore.name プロパティ。この機密プロパティの値は、agent.conf 設定で暗号化されます。 |
kafka.ssl.keystore.name | Kafkaキーストア名。特定の証明書を 発行者証明書 エージェントのルートディレクトリのフォルダ。このプロパティのデフォルト値は kafka.producer.keystore.jks. |
kafka.ssl.keystore.password | キーストアのパスワード kafka.ssl.keystore.name プロパティ。この機密プロパティの値は、agent.conf 設定で暗号化されます。 |
kafka.ssl.key.password | カフカ ssl.key.passwordこの機密プロパティの値は、agent.conf 設定で暗号化されます。 |
kafka.linger.ms | Kafkaプロデューサーの同等性 プロデューサーConfig.LINGER_MS_CONFIG。 デフォルトでは、値は 5000 ミリ秒に設定されています。 |
kafka.batch.size | Kafkaプロデューサーの同等性 ProducerConfig.BATCH_SIZE_CONFIG。 デフォルトでは値は 50 KB に設定されています。 |
kafka.max.in.flight.requests.per.connection | Kafkaプロデューサーの同等性 ProducerConfig.MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION。 デフォルトでは、値は 1 に設定されています。 |
kafka.enable.idempotence | Kafkaプロデューサーの同等性 ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG です。 デフォルトでは、値は次のように設定されています。 true. |
kafka.acks | Kafkaプロデューサーの同等性 プロデューサー構成.ACKS_CONFIG。 デフォルトでは、値は次のように設定されています。 all. |
kafka.retries | Kafkaプロデューサーの同等性 ProducerConfig.RETRIES_CONFIG。 デフォルトでは、値は次のように設定されています。 1. |
kafka.max.block.ms | Kafkaプロデューサーの同等性 プロデューサーConfig.LINGER_MS_CONFIG。 デフォルトでは、値は 3000 ミリ秒に設定されています。 |
kafka.compression.type | Kafkaプロデューサーの同等性 ProducerConfig.COMPRESSION_TYPE_CONFIG。 デフォルトでは、値は次のように設定されています。 snappy. |
enable.kafka.key.value.data | Kafka Producerは、キーと値の形式でデータを送信する機能を提供します。Kafkaブローカーのディスク使用量を制限するため、Kafkaはキーを除いたメッセージのみを送信します。キーと値の形式でデータを送信するには、プロパティを true.お願い: キーは文字列形式で利用できます HostName$DataSourceName$InstanceName |
kafka.send.data.in.String | 文字列シリアル形式でデータを送信するには、プロパティを次のように設定します。 trueデフォルトでは、データは ByteArray 形式で送信されます。 |
collector.publisher.device.props | このプロパティにより、データパブリッシャーは「resource" メトリックのセクション。 snmp.community および wmi.pass 送信されません。デフォルトでは5つのデバイスプロパティがサポートされ、最大10個のデバイスプロパティまでサポートされます。 |
Kafka レシーバーの認証
デフォルトでは、LogicMonitor Data Publisher は noAuth モードでデータを送信します。Auth モードを有効にするには、以下の手順を実行してください。
- デフォルトを追加
kafka.producer.truststore.jksおよびkafka.producer.keystore.jks証明書を 発行者証明書 Collectorがインストールされている場所のディレクトリ。デフォルトの証明書の代わりに、別の名前のトラストストア証明書とキーストア証明書を追加することもできます。 - LogicMonitorで、次の場所に移動します 設定 > コレクター.
- 下 コレクター タブで、構成する必要があるコレクターを選択します。
- 選択する
その他 次に選択します コレクター構成. - agent.conf 設定で、次のプロパティの値を設定します。
agent.publisher.enable.authkafka.ssl.truststore.passwordkafka.ssl.keystore.passwordkafka.ssl.key.passwordkafka.ssl.truststore.namekafka.ssl.keystore.name
お願い: 別の名前でトラストストア証明書とキーストア証明書を追加する場合は、kafka.ssl.truststore.nameおよびkafka.ssl.keystore.nameagent.conf設定のプロパティ。詳細については、 Kafka プロパティ設定.
- コレクターを再起動します。
LogicMonitor Data Publisher は認証モードに切り替わります。
LogicMonitor データ パブリッシャー コレクションと Kafka レシーバーの変換
LogicMonitor Data Publisher はメトリックを収集し、OTLP 形式の JSON 文字列に変換されるメタデータの詳細を追加します。
Kafka レシーバーデータモデル
LogicMonitor Data Publisherは、メトリックをOTLP形式のJSON文字列に変換します。OTLPは、可観測性および監視システムでテレメトリデータを送信するための標準プロトコルです。OTLPコンバーターは、LogicMonitor Data PublisherのgRPCサービスであり、protobuf( metrics.protoコレクターメトリクスをOTLP形式のJSON文字列に変換するには、バージョン1.0.0以降が必要です。OTLPのメトリクスはXNUMXつ以上の時系列で構成され、各時系列は時間の経過に伴う一連の関連データポイントを表します。
以下はJSON形式のOTLP形式のメトリクスの例です。 ロジックモニター_コレクター_スレッドCPU使用率 SNMP インスタンスのデータ ソース。
{
"resourceMetrics": [
{
"resource": {
"attributes": [
{
"key": "hostName",
"value": {
"stringValue": "127.0.0.1"
}
},
{
"key": "hostId",
"value": {
"stringValue": "1017594"
}
},
{
"key": "devicePropKey",
"value": {
"stringValue": "devicePropValue"
}
}
]
},
"scopeMetrics": [
{
"scope": {
"name": "LogicMonitor_Collector_ThreadCPUUsage",
"attributes": [
{
"key": "collector",
"value": {
"stringValue": "jmx"
}
},
{
"key": "epoch",
"value": {
"stringValue": "1715263558360"
}
},
{
"key": "datasourceId",
"value": {
"stringValue": "128265135"
}
},
{
"key": "datasourceInstanceId",
"value": {
"stringValue": "367542931"
}
}
]
},
"metrics": [
{
"name": "CpuUsage",
"sum": {
"dataPoints": [
{
"startTimeUnixNano": "1715263558360000000",
"timeUnixNano": "1715263558360000000",
"asDouble": 0,
"attributes": [
{
"key": "dataSourceInstanceName",
"value": {
"stringValue": "LogicMonitor_Collector_ThreadCPUUsage-netscan-propsdetection"
}
},
{
"key": "datapointid",
"value": {
"stringValue": "197642"
}
},
{
"key": "wildValue",
"value": {
"stringValue": "netscan-propsdetection"
}
},
{
"key": "wildAlias",
"value": {
"stringValue": "netscan-propsdetection"
}
}
]
}
],
"aggregationTemporality": "AGGREGATION_TEMPORALITY_DELTA",
"isMonotonic": true
}
},
{
"name": "ProcessorCount",
"gauge": {
"dataPoints": [
{
"startTimeUnixNano": "1715263558360000000",
"timeUnixNano": "1715263558360000000",
"asDouble": 10,
"attributes": [
{
"key": "dataSourceInstanceName",
"value": {
"stringValue": "LogicMonitor_Collector_ThreadCPUUsage-netscan-propsdetection"
}
},
{
"key": "datapointid",
"value": {
"stringValue": "197643"
}
},
{
"key": "wildValue",
"value": {
"stringValue": "netscan-propsdetection"
}
},
{
"key": "wildAlias",
"value": {
"stringValue": "netscan-propsdetection"
}
}
]
}
]
}
},
{
"name": "RunnableThreadCnt",
"gauge": {
"dataPoints": [
{
"startTimeUnixNano": "1715263558360000000",
"timeUnixNano": "1715263558360000000",
"asDouble": 0,
"attributes": [
{
"key": "dataSourceInstanceName",
"value": {
"stringValue": "LogicMonitor_Collector_ThreadCPUUsage-netscan-propsdetection"
}
},
{
"key": "datapointid",
"value": {
"stringValue": "197644"
}
},
{
"key": "wildValue",
"value": {
"stringValue": "netscan-propsdetection"
}
},
{
"key": "wildAlias",
"value": {
"stringValue": "netscan-propsdetection"
}
}
]
}
]
}
},
{
"name": "ThreadCnt",
"gauge": {
"dataPoints": [
{
"startTimeUnixNano": "1715263558360000000",
"timeUnixNano": "1715263558360000000",
"asDouble": 0,
"attributes": [
{
"key": "dataSourceInstanceName",
"value": {
"stringValue": "LogicMonitor_Collector_ThreadCPUUsage-netscan-propsdetection"
}
},
{
"key": "datapointid",
"value": {
"stringValue": "197645"
}
},
{
"key": "wildValue",
"value": {
"stringValue": "netscan-propsdetection"
}
},
{
"key": "wildAlias",
"value": {
"stringValue": "netscan-propsdetection"
}
}
]
}
]
}
}
]
}
]
}
]
}resourceMetrics は次のものから構成されます。
- 事業紹介—メトリックが収集されるデバイスのメタデータ。
- スコープメトリクス—スコープとメトリックが含まれます。
- 対象領域— メトリックが収集されるデータソースとインスタンスのメタデータ。
- メトリック—デバイスから取得された DataSource インスタンスの実際のデータポイント。
注意: 生データには、通常データと複合データの2種類のデータポイントがあります。LogicMonitor Data Publisherは、メトリックデータで通常データポイントのみを送信できます。
Kafka レシーバーのメタデータの詳細
OTLP 形式の JSON 文字列には、1 回のポーリングで収集されたデータと次のメタデータが含まれます。
- ホスト名またはデバイス名
- データソース名
- インスタンス名
- ポーリング間隔
- エポックの詳細
- データポイント名
Kafka レシーバーのパフォーマンス監視のための LogicMonitor データ パブリッシャー
LogicMonitor Data Publisher データソースは、リアルタイムのパフォーマンス メトリックを監視および提供し、次のデータポイントを追跡します。
| データポイント | 詳細説明 |
CountOfDataEnqueued | 公開のためにキューに入れられたデータの数。 |
CountOfDataDequeued | 公開のためにキューから取り出されたデータの数。 |
SizeOfBigQueue | データが保持されるキューのサイズ。 |
KafkaRequestCount | Kafka リクエストの数。 |
CountofSuccessfulRequestsToKafka | Kafka への成功したリクエストの数。 |
CountOfRequestsFailedDuetoAuthError | 認証が有効な場合、認証エラーのために失敗したリクエストの数。 |
CountOfRequestsFailedDuetoNetworkErrors | ネットワーク エラーにより失敗したリクエストの数。 |
CountofRequestsfailedDueToKafkaError | Kafka エラーにより失敗したメッセージの数。 |
TimeTakenforDequeueAndConversion | キューからデータをデキューし、それを OTLP 形式の JSON 文字列に変換する時間です。 |
SizeOfDataPublishedinBytes | Kafka レシーバーに公開されるデータ サイズ (バイト単位)。 |
注意: Kafka ブローカーとの接続が失敗した場合、LogicMonitor Data Publisher はデータを 30 分間保存できます。
Kafka レシーバーのデータ量推定
平均して、1レコードあたり約25KBです。送信されるデータ量は、以下の4つの要素に基づいて計算されます。
- LogicMonitor Data Publisher サービスが有効になっているコレクターの数
- デバイスの数
- データソースインスタンスの数
- ポーリング期間
Kafka レシーバーに公開されるデータの推定例
コレクターに次の監視設定があると仮定します。
| 要因 | 想定値 |
| 単一レコードサイズ | 25 KB |
| デバイスの数 | 10 |
| データソースの数 | 10 |
| デバイスあたりのデータソースインスタンスの数(データソースあたり 5 つのインスタンスを想定) | 5 インスタンス x 10 データソース = 50 データソースインスタンス |
| 合計10台のデバイスインスタンス | 50 個の DataSource インスタンス x 10 個のデバイス = 500 個のインスタンス |
| 平均ポーリング間隔 | $5 |
各インスタンスが 1 つのレコードを表す場合、ポーリング間隔ごとに平均して公開されるデータのサイズは次のように計算されます。
500 インスタンス × 25 KB/インスタンス = 12500 KB/5 分
したがって、LogicMonitor Data Publisher は、次のように監視設定で DataSource インスタンスを公開します。
| ポーリング間隔 | 公開されたデータソースインスタンス |
| 5 minutes | 12500 KB |
| 1 minute | 2500 KB |
| 1第二 | 41.67 KB |