Splunkスクリプト入力。 または、スクリプトを使用してシステムの動作に関するデータを取得し、Splunkで分析する方法

以前にディレクトリからログをSplunkにアップロードする方法、またはsyslogを使用してログをアップロードする方法、標準のWindowsイベントとLinuxイベントを取得する方法について説明しましたが、システムの操作に関するより詳細な情報を取得する必要がある場合はどうでしょうか?
この場合、スクリプトが助けになります!



いつ、何を、どのようにSplunkのスクリプトを使用してデータを受信できますか?

典型的なユースケース


スクリプトは、次の場合によく使用されます。


スクリプトの場合、再生する間隔を設定し、データをSplunkに転送できます。

スクリプトとして、 シェルスクリプト、Pythonスクリプト、Windowsバッチファイル、PowerShell、またはデータを生成および送信できるその他のユーティリティを使用できます。


この記事では、スクリプトを使用してデータをロードする例を検討します。

何らかの理由でサイズを監視する必要があるファイルサーバーとディレクトリがあり、しきい値(45 mbのテスト用)を超えないようにしたいとします。 このディレクトリのサイズを30秒の間隔で計算し、しきい値を超えたときに通知するアラートを作成するスクリプトを作成しましょう。
フォルダーのサイズは、以下のスクリプトを使用して読み取られます。このスクリプトは、出力時に、タイムスタンプ、フォルダーへのパス、およびバイト単位のサイズを提供します。

import os import time from datetime import datetime dir_path="///for_script" def get_size(start_path = '.'): total_size = 0 for dirpath, dirnames, filenames in os.walk(start_path): for f in filenames: fp = os.path.join(dirpath, f) total_size += os.path.getsize(fp) return total_size time_of_event=datetime.strftime(datetime.now(), "%Y.%m.%d %H:%M:%S") print time_of_event, dir_path, get_size(dir_path) 

より詳細には、以前の記事( こちらこちら )でリモートソースからのデータの読み込みを分析しました。 したがって、これについて簡単に説明します。

必要なもの:

Splunk Universal Forwarderがインストールされているリモートマシン
•Splunk-indexer。インデクサー送信アプリケーションを作成し、それをdeployment-appsに 転送し、フォワーダー管理を構成します。

また、Splunkインデクサーにmonitor_scriptsアプリケーション作成し、 deployment-appsフォルダーに転送します。 アプリケーションで、 ローカルフォルダーを作成し、その中に次の内容のinputs.confファイルを作成します。

 [script://./bin/scripts/foldersize.py] disabled = false index = test_script interval = 30.0 sourcetype = test_script 

また、スクリプトを/ binディレクトリに追加します

展開サーバーの再起動
.../splunk/bin/splunk reload deploy-server

そして...データを取得します!

データ処理とアラート作成


Splunkはタイムスタンプを自動的に選択しましたが、残りの情報は未加工データの形式のままであったため、フィールドを選択する必要があります(これについては前の記事で書きました )。この場合、フォルダーパス(folder_path)とサイズ(サイズ)の2つのフィールドを選択しました

フォルダーのサイズはバイト単位です。この数値をMBに変換しましょう。 (これはスクリプトで行うことができますが、Splunkで行う方法を示します)

新しい計算フィールドを作成します(設定-フィールド-計算フィールド-新規)
データのソースタイプ、新しいフィールドの名前、計算式を示します。 これで、この計算フィールドは、指定されたソースタイプのデータに追加されます。



興味のあるすべてのフィールドを取得しました。フォルダーのサイズを変更するダイナミクスと、しきい値に達するかどうかを示すグラフ作成しましょう。



アラートを作成します。 フォルダーサイズが45 MBを超えると、Splunkからメールが送信されます。 メールアラートの送信方法については、 こちらとSlackで詳しく説明しました。

アラートは新しいリクエストに基づいているため、リクエストのフィールドをメッセージに挿入できます。



リクエストをアラートとして保存し、その条件を規定します:




そして、私たちは手紙を受け取ります:



アラートの設定では、フォルダーサイズが15分以内に減少しない場合、通知が再度送信されることがわかりました。

おわりに


この簡単な例では、スクリプトを介してデータをSplunkにロードする原理を示しました。 問題を解決するスクリプトを作成できます。必要な情報をSplunkにアップロードして、すぐに結果を取得します。

この情報がお役に立てば幸いです。

このトピックに関するすべての質問とコメントに回答させていただきます。 また、この分野、または一般的なマシンデータ分析の分野に特に興味がある場合は、特定のタスクのために既存のソリューションを完成させる準備ができています。 これを行うには、コメントにそれについて書くか、当社のウェブサイトのフォームからリクエストを送信してください。

Source: https://habr.com/ru/post/J353892/


All Articles