update.はじめに検証時に各サーバーのリソース状態を取得してリアルタイムで見たいなと思って、fluentd、influxDB、Grafanaという構成でいいかなと思い調べた。リソース情報はdstatで取得した。2.1.3Installdstat、fluentdについては以下でインストール出来る。InfluxDBとの連携でインストール出来る・・・はず。dstatについてdstatは、systemの統計情報を取得するツールで、cpu/memory/disk/network/割り込み情報を取得できる。実行すると以下のように出力される。今回利用するfluentdのプラグインは以下でインストールする。fluent-plugin-flatten-hashそれぞれのプラグインの役割は以下。階層化されているJSONをフラットなJSONに変換してくれるプラグインfluent-plugin-dstatinputプラグインを利用してfluent-plugin-dstatを標準出力してみる。stdout</match>上記ファイルではdstatにオプションとして-cdgnyを指定してやり3秒毎に実行する設定となっている。上記ファイルでfluentdを実行してやると以下のように出力される。上記を見てやるとわかるように、JSONが階層化されていて、値が文字列となっていることがわかる。InfluxDBにデータを投入するために利用するfluent-plugin-influxdbではフラットなJSONでしか投入出来ないので、fluent-plugin-flatten-hashでフラットなJSONに変更する。InfluxDBで数値として扱いたいのでfluent-plugin-typecastで変換してやる。fluent-plugin-flatten-hashフラットなJSONで文字列を数値に変換してやるfluentdの設定ファイルは以下。flatten_hashで階層構造のJSONの結合文字列を何するかを設定する。ここでは__を指定する。次にrecord_transformerでデータにkeyを追加している。InfluxDBで解析する際に/があるとパースに失敗したので変換している。typecastでstringをfloatに変換しています。record_transformerでkeyに/があるものを削除している。typecast時にorginalのkeyがないとエラーになったのでこういう書き方にしている。stdout</match>出力は以下となる。{"hostname":"influxdb.cs1aidcfcloud.internal","dstat__total_cpu_usage__usr":0.0,"dstat__total_cpu_usage__sys":0.0,"dstat__total_cpu_usage__idl":100.0,"dstat__total_cpu_usage__wai":0.0,"dstat__total_cpu_usage__hiq":0.0,"dstat__total_cpu_usage__siq":0.0,"dstat__paging__in":0.0,"dstat__paging__out":0.0,"dstat__system__int":55.333,"dstat__system__csw":111.333,"dstat__net_total__send":215.333,"dstat__dsk_total__read":0.0,"dstat__dsk_total__writ":2730.667,"dstat__net_total__recv":88.0}$最後にinfluxDBに入れるプラグインの設定を組み込んだ設定は以下。s</match>InfluxDBの設定InfluxDBではDBを用意するだけ。以下のコマンドでfluentdを起動すればInfluxDBにデータが入る。InfluxDBとの連携に記載されているようにDatasourceとDashboardを作成してやる。Datasourcesの設定は以下の感じ。Metricsの書き方は以下。ここではネットワークトラヒック量を表示。あとはいくつかのグラフをダッシュボードに追加すると以下のように表示される。ある程度見れるようになってきましたね。おわりにあとはtagの値でグルーピングしてやって重ねてグラフを表示させられればモニタリングツールとしてある程度使えそうです。