Telegraf を使用したメトリクスの収集
Telegraf とは、メトリクスを収集してレポートするためのプラグイン駆動型のサーバ エージェントです。CollectD、Logstash、FluentD の場合と同じように、入力 -> 出力のフローに従います。さまざまなシステムからメトリクスを読み取る多数の入力プラグインとデータの送信先となる多数の出力プラグインで構成されます。Sumo Logic は現在のところ出力プラグインがありませんが、データを Sumo Logic に配信するために使用できる既存のプラグインは複数あります。
Graphite 出力の使用
Telegraf には、メトリクスを Sumo Logic に配信できる Graphite 出力プラグインがあります。インストール済みコレクタと Graphite ソースを使用して、データを Sumo Logic の Graphite ソースにデータを送信するように Telegraf を設定できます。フローは次のようになります。
- インストール済みコレクタとストリーミング メトリクス ソースをセットアップします。
- データをそのストリーミング メトリクス ソースに出力するように Telegraf をセットアップします。
次に、Graphite 出力プラグインを使用する Telegraf エージェントの設定例を示します。
[[outputs.graphite]] servers = ["localhost:2003"] data_format = "graphite"
上記の設定で、入力プラグインから Telegraf に取り込まれるデータはすべて Sumo Logic に送信できます。この例で、servers
プロパティはインストール済みコレクタへの URL です。この例では、Telegraf エージェントと Sumo コレクタが同じボックスにあることを前提としていますが、同じボックスにある必要はありません。インストール済みコレクタが正しく Telegraf からデータを取り込めるように、data_format
を graphite
に送信する必要があります。その他の設定可能なパラメータについては、「Graphite Output plugin (Graphite 出力プラグイン)」を参照してください。
Windows での Graphite 出力に関する問題
Syslog データでキャリッジ リターンまたは改行文字 (CR LF または \r \n) が欠落している場合、次のメッセージがコレクタの log
ディレクトリにある collector.log
ファイルに書き込まれます。
2018-12-18 03:22:52,091 -0500 [Thread-737420] ERROR com.sumologic.scala.collector.input.syslog.EventInput - Received event: Exception. server com.sumologic.scala.collector.input.syslog.TCPSyslogServer@5725403c, socketAddress /10.48.0.14:63557
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
このメッセージは、コレクタへの接続が行末文字の待機中にタイムアウトになった場合に生成されます。この問題は、Syslog データにキャリッジ リターンまたは改行文字を含めることで解決できます。
この問題は、Graphite 出力プラグインの既知の問題に関連しています。
HTTP 出力の使用
Telegraf には、メトリクスを Sumo Logic に配信できる HTTP 出力プラグインがあります。ホスト型コレクタと HTTP ソースを使用して、データを Sumo Logic の HTTP ソースにデータを送信するように Telegraf を設定できます。フローは次のようになります。
次に、HTTP 出力プラグインを使用する Telegraf エージェントの設定例を示します。
[[outputs.http]] url = "https://collectors.sumologic.com/receiver/v1/http/XXXXXXXXXX" data_format = "graphite" [outputs.http.headers] Content-Type = "application/vnd.sumologic.graphite" X-Sumo-Category = “prod/someapp/metrics”
上記の設定で、入力プラグインから Telegraf に取り込まれるデータはすべて Sumo Logic に送信できます。この例で、url
プロパティは HTTP ソースへの URL です。インストール済みコレクタが正しく Telegraf からデータを取り込めるように、data_format
を graphite
に送信する必要があります。追加のヘッダーも設定します。Content-Type
ヘッダーは、Sumo Logic HTTP ソースに Graphite データを受信していることを伝えるために必要です。Sumo Logic メタデータを制御するために追加のヘッダーも設定できます。この例では、X-Sumo-Category
フィールドを prod/someapp/metrics
に設定するため、Sumo Logic で_sourceCategory=prod/someapp/metrics
を使用してこれらのメトリクスを見つけることができます。