LogicMonitor + Catchpoint: 自律型ITの新時代へ

さらに詳しく

LogicMonitor Data Publisherは、Collectorに統合されたサービスです。CollectorからリアルタイムのDataSourceメトリクスを抽出し、Kafkaレシーバー(サードパーティの送信先)に送信して、さらに詳細な分析を行うことができます。この機能により、CollectorはLogicMonitorポータルへのデータ送信と並行して、他のデータシンクにもメトリクスを送信できます。LogicMonitor Data Publisherは、Kafkaレシーバーにメトリクスを送信します。

Kafkaレシーバーがコレクターと統合されると、LogicMonitorデータパブリッシャーは自動的にメトリックを共有します。サービスワークフローの概要は以下のとおりです。

  1. Kafkaレシーバーを有効にして設定するには、 agent.conf 設定
  2. LogicMonitor Data Publisher サービスを開始するには、コレクターを再起動します。
  3. LogicMonitor データ パブリッシャーはメトリックを収集し、標準の OTLP 形式の JSON 文字列に変換します。
  4. LogicMonitor データ パブリッシャーは、フォーマットされたデータを Kafka レシーバーに送信します。

Kafka クラスター設定に関する考慮事項

Kafkaのクラスタ構成は、 大規模な AWS EC2 インスタンス。設定の詳細は次のとおりです。

ハードウェアの設定

 推奨値
CPUコア8
メモリ(RAM)32 GB

Kafka クラスター設定

Kafka クラスターの推奨値は次のとおりです。

 推奨値 詳細説明
クラスター内のブローカーの数3複数のブローカーは、1 つのブローカーがダウンし、クラスター内の他のブローカーがデータ損失を回避するのに役立つなどの状況で役立ちます。
複製係数3これはブローカー数に似ています。ここでは、すべてのブローカーで同じトピックが作成され、送信されたデータも保存されます。
保存期間6時間Kafkaブローカーにデータが保持される期間を示します。保持期間が過ぎるとデータは削除されます。コンシューマーによって異なりますが、メモリを効率的に使用するために、この設定を設定することをお勧めします。
ブローカーごとのパーティション制限 2000Kafkaトピックでは、データはパーティションに保存されます。これは各ブローカーの最大パーティション制限です。 

ネットワーク設定

  • スループット計算—Kafka クラスタの総スループットを見積もるには、データの生成と消費の速度を考慮します。これに基づいて、コレクターと Kafka クラスタ間のネットワーク帯域幅を決定します。
  • レプリケーション係数—推奨されるレプリケーション係数に基づいて、ネットワーク帯域幅がブローカー間のレプリケーション トラフィックに対応できることを確認します。
  • プロデューサーとコンシューマーの構成—ネットワークのオーバーヘッドを削減するには、Kafkaのプロデューサーとコンシューマーをバッチメッセージに調整します。詳細については、 Kafka プロパティ設定

セキュリティの設定

LogicMonitor Data Publisherは、プレーンテキスト(noAuth)モードとSSL(Auth)モードの両方をサポートしています。ただし、セキュリティを強化するために、SSL(Auth)モードを使用することをお勧めします。

推奨事項: 共有メトリックのセキュリティを確保するには、SSL (認証) モードを使用します。

セキュリティ設定に関連する構成プロパティは次のとおりです。

  • agent.publisher.enable.auth 
  • kafka.ssl.truststore.name
  • kafka.ssl.truststore.password
  • kafka.ssl.keystore.name
  • kafka.ssl.keystore.password
  • kafka.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.proto OTLP形式の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.nameKafkaのトラストストア名。特定の証明書を 発行者証明書 エージェントのルートディレクトリのフォルダ。このプロパティのデフォルト値は kafka.producer.truststore.jks
kafka.ssl.truststore.passwordトラストストアのパスワードは kafka.ssl.truststore.name プロパティ。この機密プロパティの値は、agent.conf 設定で暗号化されます。
kafka.ssl.keystore.nameKafkaキーストア名。特定の証明書を 発行者証明書 エージェントのルートディレクトリのフォルダ。このプロパティのデフォルト値は 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.msKafkaプロデューサーの同等性 プロデューサーConfig.LINGER_MS_CONFIG。 デフォルトでは、値は 5000 ミリ秒に設定されています。
kafka.batch.sizeKafkaプロデューサーの同等性 ProducerConfig.BATCH_SIZE_CONFIG。 デフォルトでは値は 50 KB に設定されています。
kafka.max.in.flight.requests.per.connectionKafkaプロデューサーの同等性 ProducerConfig.MAX_IN_FLIGHT_REQUESTS_PER_CONNECTION。 デフォルトでは、値は 1 に設定されています。 
kafka.enable.idempotenceKafkaプロデューサーの同等性 ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG です。 デフォルトでは、値は次のように設定されています。 true.
kafka.acksKafkaプロデューサーの同等性 プロデューサー構成.ACKS_CONFIG。 デフォルトでは、値は次のように設定されています。 all.
kafka.retriesKafkaプロデューサーの同等性 ProducerConfig.RETRIES_CONFIG。 デフォルトでは、値は次のように設定されています。 1.
kafka.max.block.msKafkaプロデューサーの同等性 プロデューサーConfig.LINGER_MS_CONFIG。 デフォルトでは、値は 3000 ミリ秒に設定されています。
kafka.compression.typeKafkaプロデューサーの同等性 ProducerConfig.COMPRESSION_TYPE_CONFIG。 デフォルトでは、値は次のように設定されています。 snappy.
enable.kafka.key.value.dataKafka 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 モードを有効にするには、以下の手順を実行してください。

  1. デフォルトを追加 kafka.producer.truststore.jks および kafka.producer.keystore.jks 証明書を 発行者証明書 Collectorがインストールされている場所のディレクトリ。デフォルトの証明書の代わりに、別の名前のトラストストア証明書とキーストア証明書を追加することもできます。
  2. LogicMonitorで、次の場所に移動します 設定 > コレクター.
  3. 下 コレクター タブで、構成する必要があるコレクターを選択します。  
  4. 選択する その他のオプション その他 次に選択します コレクター構成.
  5. agent.conf 設定で、次のプロパティの値を設定します。
    • agent.publisher.enable.auth
    • kafka.ssl.truststore.password
    • kafka.ssl.keystore.password
    • kafka.ssl.key.password
    • kafka.ssl.truststore.name
    • kafka.ssl.keystore.name

      お願い: 別の名前でトラストストア証明書とキーストア証明書を追加する場合は、 kafka.ssl.truststore.name および kafka.ssl.keystore.name agent.conf設定のプロパティ。詳細については、 Kafka プロパティ設定.  
  6. コレクターを再起動します。

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データが保持されるキューのサイズ。
KafkaRequestCountKafka リクエストの数。
CountofSuccessfulRequestsToKafkaKafka への成功したリクエストの数。
CountOfRequestsFailedDuetoAuthError認証が有効な場合、認証エラーのために失敗したリクエストの数。
CountOfRequestsFailedDuetoNetworkErrorsネットワーク エラーにより失敗したリクエストの数。
CountofRequestsfailedDueToKafkaErrorKafka エラーにより失敗したメッセージの数。
TimeTakenforDequeueAndConversionキューからデータをデキューし、それを OTLP 形式の JSON 文字列に変換する時間です。
SizeOfDataPublishedinBytesKafka レシーバーに公開されるデータ サイズ (バイト単位)。

注意: 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 minutes12500 KB
1 minute2500 KB
1第二41.67 KB

14日間フルアクセス LogicMonitor プラットフォーム