Splunk Advent Calendar 2020 6日目の記事です。
Splunk で Windows のパフォーマンスモニタを取り込むには perfmon を使用しますが、日本語での情報があまりなく、また inputs.conf のデフォルト設定を変更することで、Splunk でログを取り込むのには必ず考えなければならないログ容量の削減ができたので紹介します。
環境
- Splunk 8.1.0
- Windows Server 2019
の環境でテストしましたが、バージョンが違ってもほぼ同じかと思います。
ログの取り込み設定の比較
デフォルト設定
まずは公式ドキュメントに書かれているものをほぼそのまま設定してみます。
[perfmon://PhysicalDisk]
interval = 60
object = PhysicalDisk
counters = Disk Bytes/sec; % Disk Read Time; % Disk Write Time; % Disk Time
instances = *
disabled = 0
- 60秒に一回
- 物理ディスクの
- Disk Bytes/sec; % Disk Read Time; % Disk Write Time; % Disk Time を
- 全てのディスクに対して取り込む
設定となります。
これを取り込むと下記になります。
テキストで記載すると下記の通り。
12/05/2020 22:15:17.928 +0900
collection=PhysicalDisk
object=PhysicalDisk
counter="% Disk Time"
instance=_Total
Value=0.374277675648681
このように、一個一個の測定値がそれぞれ別のイベントになります。
わかりやすいですが、容量面を考えるともう少し考えたいところです。
一つのイベントにまとめる multikv
公式ドキュメントを見ると、mode というのがあります。
ハイパフォーマンスと書かれているので一見関係ないように見えますが、
mode = multikv
のように設定すると、下記になります。
0_C: 3264449.2992193885 1.0517936574275712 0.3236895359068479 1.3754831933344192
一つにまとめられました。
生ログだけでは扱いは難しいですが、画面のように正しくフィールドも抽出できているので、サーチも問題ありません。
浮動小数点 formatString
カウンタの種類によっては、そこまでの精度が必要ないこともあると思います。
デフォルトでは、%.20g で20桁となりますので、
formatString = %.4g
のように設定すると、下記になります。
0_C: 4.972e+05 0.09209 0.4078 0.4998
今回は、単位が Bytes/sec のものと、%のものを同時に取り込みましたが、たとえば全て%であれば、小数第三位(0.1%)までといった設定を行うなど、最適なものを選択されてはと思います。
まとめ
Splunk の perfmon で Windows のパフォーマンスカウンタを取り込んでみました。
- multikv で一つにまとめ
- formatString で桁を削る
ことにより、Splunk で考えなければならないログ容量を削減できることを確認しました。