この場合、スクリプトが助けになります!
いつ、何を、どのようにSplunkのスクリプトを使用してデータを受信できますか?
典型的なユースケース
スクリプトは、次の場合によく使用されます。
- ログに書き込まれていない情報にアクセスする必要があります 。
- たとえば、vmstatまたはiostatを使用して、コマンドラインから生成されたデータが必要です。
- データベース、Webサービス、またはAPIの特定のデータまたは結果が必要です。
- イベントとフィールドの解析を容易にするために、データには前処理が必要です。
- 低速でリソースを大量に消費する起動手順を持つデータソースが使用されます。
- その他
スクリプトの場合、再生する間隔を設定し、データを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にアップロードして、すぐに結果を取得します。
この情報がお役に立てば幸いです。
このトピックに関するすべての質問とコメントに回答させていただきます。 また、この分野、または一般的なマシンデータ分析の分野に特に興味がある場合は、特定のタスクのために既存のソリューションを完成させる準備ができています。 これを行うには、コメントにそれについて書くか、当社のウェブサイトのフォームからリクエストを送信してください。