0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Splunk内部ログを用いたスケジュールサーチ実行状況確認

Posted at

はじめに

Splunk利用方法の一つとして、スケジュールサーチ(アラート)機能を利用して定期的にログを確認し、条件に合致した場合はアクション実行…といった使い方があります。
このスケジュールサーチですが、同時実行サーチ数の上限に到達する等の様々な要因により、サーチ実行に失敗したり、スキップされる場合があります。
スケジュールサーチの実行状況はMonitoring Console上で確認出来ますが、Splunk内部ログに対して任意のサーチを実行することでも確認することが出来ます。

注意事項

Splunk内部ログにおける詳細な出力条件や各フィールドの情報等に関する仕様等は、Splunk Documentation上では公開されておりません。
あくまで、筆者の経験値的なナレッジとしてのご紹介となります。

構成

  • Splunk Enterpriseバージョン
    • v8.2.2
  • Splunk構成
    • Standalone構成
    • 分散構成(Distributed Environment)
    • Search Head Cluster構成

Splunk内部ログを用いたスケジュールサーチ実行状況確認サーチ文

各サーチは、Splunk内部ログをサーチ可能なSplunkコンポーネント上にて実施します。

各スケジュールサーチにおけるスキップ発生確認

index=_internal sourcetype=scheduler app=(確認対象のスケジュールサーチ/アラートを設定したApp) status=skipped
| eval scheduled_time = strftime(scheduled_time,"%Y/%m/%d %H:%M:%S")
| table _time savedsearch_name scheduled_time status reason

上記サーチにより、実行がスキップされたスケジュールサーチ/アラートの名称(savedsearch_name)、実行予定時刻(scheduled_time)、実行ステータス(status)、スキップ理由(reason)を結果として得ることが出来ます。

各スケジュールサーチにおける失敗発生確認

index=_internal sourcetype=scheduler app=(確認対象のスケジュールサーチ/アラートを設定したApp) success=0
| eval scheduled_time = strftime(scheduled_time,"%Y/%m/%d %H:%M:%S")
| table _time savedsearch_name scheduled_time errmsg

上記サーチにより、実行が失敗したスケジュールサーチ/アラートの名称(savedsearch_name)、実行予定時刻(scheduled_time)、エラーメッセージ(errmsg)を結果として得ることが出来ます。

各スケジュールサーチ実行時における発生待ち時間確認

index=_internal sourcetype=scheduler app=(スケジュールサーチ/アラートを設定したApp) status=success
| eval wait_time=dispatch_time-scheduled_time
| search wait_time>=60
| eval scheduled_time = strftime(scheduled_time,"%Y-%m-%d %H:%M:%S")
| eval dispatch_time = strftime(dispatch_time,"%Y-%m-%d %H:%M:%S")
| table _time savedsearch_name scheduled_time dispatch_time wait_time

上記サーチにより、60秒以上の待ち時間が発生したスケジュールサーチ/アラートの名称(savedsearch_name)、実行予定時刻(scheduled_time)、実際に実行された時刻(dispatch_time)、発生した待ち時間(wait_time)を結果として得ることが出来ます。待ち時間の検索条件を変更したい場合は、3行目の条件式を変更します。

同時実行サーチ数上限到達事象の発生確認

index=_internal (sourcetype=splunkd OR sourcetype=scheduler) "The maximum number of concurrent"

上記サーチを実行して1件以上の結果が得られた場合、同時実行サーチ数の上限に抵触した状況が発生していたことになります。

各スケジュールサーチ実行におけるサーチ所要時間

index=_audit source=audittrail savedsearch_name=(調査対象のスケジュールサーチ名)
| stats values(user) as user max(total_run_time) as total_run_time by savedsearch_name exec_time
| eval exec_time = strftime(exec_time,"%Y/%m/%d %H:%M:%S")
| sort - total_run_time

上記サーチにより、スキップされたスケジュールサーチ/アラートの名称(savedsearch_name)、実行された時刻(exec_time)、サーチ所要時間(total_run_time)を、所要時間が長い順に結果として得ることが出来ます。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?