https://www.splunk.com
  • Splunkサイト
    • Splunk Answers
    • ブログ
    • Community
    • .conf
    • Developers
    • Documentation
    • Splunk.com
    • Splunkbase
    • サポート
    • トレーニング
    • User Groups
    • ビデオ
https://www.splunk.com
  • ブログ
  • カテゴリー
    カテゴリー
    • .conf & SplunkLive!
    • DevOps
    • 業種・業界
    • IT
    • 経営陣
    • Learn
    • パートナー
    • データプラットフォーム
    • セキュリティ
    • Splunk Life
    • Tips
    Category Spot Image
    電子書籍
    外形監視のベストプラクティス Synthetic Monitoringの紹介

    Webサイトのパフォーマンスが広告収入、ユーザーエンゲージメント、SEOランキングに与える影響、外形監視を使ったソリューションを紹介

    詳細はこちら
  • ライター
    ライター
    • Splunk
    • Guest
    • 江藤 愛
    • 大谷 和紀
    • 甲斐 逸郎
    • 加藤 教克
    • 塚本 政彦
    • 仲間 力
    • 野村 健
    • 村田 達宣
    • 矢崎 誠二
    • 山内 一洋
    • 山村 悟史
    • 横田 聡
    • Gary Steele
    • Spiros Xanthos
    • Garth Fort
    • Simon Davies
    • Ryan Kovar
    • Jane Wong
    • ライター一覧
    Author Spot Image
    電子書籍
    SIEM導入ガイド

    適切なSIEMソリューションがどのように役立つかを解説した最新版

    電子書籍を読む
  • メール配信
  • 無料トライアル
https://www.splunk.com 無料トライアル
ブログ
カテゴリー
  • .conf & SplunkLive!
  • DevOps
  • 業種・業界
  • IT
  • 経営陣
  • Learn
  • パートナー
  • データプラットフォーム
  • セキュリティ
  • Splunk Life
  • Tips
ライター
  • Splunk
  • Guest
  • 江藤 愛
  • 大谷 和紀
  • 甲斐 逸郎
  • 加藤 教克
  • 塚本 政彦
  • 仲間 力
  • 野村 健
  • 村田 達宣
  • 矢崎 誠二
  • 山内 一洋
  • 山村 悟史
  • 横田 聡
  • Gary Steele
  • Spiros Xanthos
  • Garth Fort
  • Simon Davies
  • Ryan Kovar
  • Jane Wong
  • ライター一覧
メール配信
Splunkサイト
  • Splunk Answers
  • ブログ
  • Community
  • .conf
  • Developers
  • Documentation
  • Splunk.com
  • Splunkbase
  • サポート
  • トレーニング
  • User Groups
  • ビデオ
TIPS & TRICKS

ホストからSplunkにログが送信されていないことをすばやく検出する方法

Share:

私がSplunkに来てからまだ8カ月しか経っていませんが、その短い間によく尋ねられた質問の1つが「Splunkにログが送信されていないことを知らせるアラートを受け取るにはどうすればよいか?」というものです。実際、この質問を受けるたびに5セントもらっていたら、今頃25セント貯まっていたでしょう。  

SPL驚くべきことに、これほどよく質問されるにもかかわらず、Splunkのネイティブ機能を使ってこの問題を解決する方法を記したドキュメントはほとんど見つかりませんでした。このブログでは、SplunkのSPL (サーチ処理言語)を使ってこの問題を解決する方法について説明します。

背景

本題に入る前に少し寄り道をして、これから説明するSPLを支える技法を紹介しましょう。それがわかれば、問題の解決策だけでなく、その解決策の仕組みとその解決策が有効である理由も理解できるでしょう。

まず申し上げておきたいのは、Splunkでこの問題を解決する方法は1つではないということです。メタデータを使ってアクティブでないホストを監視する方法を紹介するブログ記事もあります。実際、私が最初に考えた方法は今とはまったく違い、非効率的でした。そこで何人かの同僚に相談した結果、もっと高速なサーチで同じ結果を得られることがわかりました。その主役となるのがtstatsです!

ちなみに、tstatsの優れた解説(およびSplunk内のデータにすばやくアクセスする方法)については、.conf16のすばらしいプレゼンテーション「How to Scale: From _raw to tstats (and beyond!)」(規模を拡大する方法:_rawからtstatsへ(そしてさらにその先へ!))をご覧ください。

前提条件

これから説明する方法を正しく機能させるには、いくつかのコンポーネントのデータが適切に設定されている必要があります。具体的には以下のとおりです。

  • Splunkの時刻が正しく設定されている
  • イベントのタイムスタンプが、Splunkがそのイベントを受信およびインデックスする時刻と近い時刻にマッピングされている
  • サーチ対象の期間内に、Splunkが目的のインデックス、ホスト、ソース、またはソースタイプのデータを受信する
     

今回の方法では、イベントを適切な時間内に受信したかどうかを判断するための相対的な時間範囲との比較にイベントのタイムスタンプを使用するため、2番目の条件が最も重要です。この方法は、Splunkがsyslogサーバーのようなデータソースから頻繁にデータを受信する場合やHTTPイベントコレクタ経由でプッシュログを受信する場合など、リアルタイムに近い環境に適用できます。

デフォルトでインデックスされるフィールド

各イベントの一部としてSplunkでインデックスされるデフォルトのフィールドには以下のものがあります。

  1. ホスト
  2. ソース
  3. ソースタイプ
  4. 時刻(_time)
     

特筆すべきは、これらの情報さえあれば、一定期間以降にSplunkがイベントを受信しなかったことを判断できる点です。これらの情報を使って以下のことを行います。

  • Splunkが受信するホスト、ソース、またはソースタイプに基づいて各イベントのタイムスタンプを調べる
  • ログを適切な時間内に受信したかを判断するための相対的なタイムスタンプを計算する
  • 各イベントのタイムスタンプが相対的なタイムスタンプの範囲内にあるかどうかを確認する
     

これらの点を理解したところで、Splunkがイベントを受信しなかったことを検出してアラートを生成するサーチを作成します。

ホストからデータが送信されていないときにアラートで通知する

いずれかのホストからイベントが送信されていないときにアラートを受け取りたい場合は、ホストから送られるイベントのタイムスタンプと相対的な時間範囲を比較するサーチを作成します。

| tstats latest(_time) as latest where index=* earliest=-24h by host
| eval recent = if(latest > relative_time(now(),"-5m"),1,0), realLatest = strftime(latest,"%c")
| where recent=0

過去5分間に新しいイベントを送信しなかったホストを表示しているSplunk画面
図1.過去5分間に新しいイベントを送信しなかったホストを表示しているSplunk画面

このサーチで何をしているか、SPLを1行ずつ見ていきましょう。

| tstats latest(_time) as latest where index=* earliest=-24h by host

tstatsサーチを実行して、ユーザーがアクセスできる任意のインデックスで最も新しいイベントの「_time」フィールドを抽出します。取得するイベントは過去24時間以内のものに絞り、結果をホスト名でグループ化します。

| eval recent = if(latest > relative_time(now(),"-5m"),1,0), realLatest = strftime(latest,"%c")

「recent」という名前の新しいフィールドを作成します。このフィールドの値を決めるために、最も新しいイベントの時刻が現在時刻の5分前より大きい(過去5分以内である)かどうかを調べるための条件付きチェックを実行します。過去5分以内であればrecentの値を1に、そうでなければ0に設定します。また、strftime関数を使って、最も新しいイベントの時刻をエポック形式から人間が読める形式に変換します。

| where recent=0

recentフラグが0に設定された場合のすべての結果を返します(フラグが1以上の場合は時間内にイベントを受信しているためです)。

このサーチでは、Splunkがデータを受信すると想定される時間内にホストがイベントを送信したかどうかを判断するために、そのホストから受信した最も新しいログのタイムスタンプを使用しています。このSPLステートメントは、少し変更するだけでソースやソースタイプにも適用できます。

簡単に言えば、tstatsコマンド(非常に高速)を使ってすべてのホストを監視し、過去5分間にデータを送信しなかったホストを検出しているだけです。このクエリーでは、上記のコマンドで取得したホストから、サーチ対象の期間内にデータを受信したことを前提としている点に注意してください。

このサーチは、サーチ対象の期間内(この例では過去24時間以内)にすでに存在しているホストに対して有効です。  Splunkで検出されないホストやサーチ対象の期間内に存在していないホストに対して、ルックアップファイルを使って受信状況をチェックする方法については、別の機会にブログで紹介したいと思います。

インデックスにデータが送信されていないときにアラートで通知する

特定のインデックスから一定期間データを受信していないときにアラート受け取りたい場合は、上記のクエリーの「host」を「index」に置き換えて、次のように指定します。

| tstats latest(_time) as latest where index=* earliest=-24h by index
| eval recent = if(latest > relative_time(now(),"-5m"),1,0), realLatest = strftime(latest,"%c")
| where recent=0

過去5分間に新しいイベントを受信しなかったインデックスを表示しているSplunk画面
図2.過去5分間に新しいイベントを受信しなかったインデックスを表示しているSplunk画面

最後に

このSPLクエリーを使用してSplunkで管理する資産がデータを送信していないことを検出すれば、アラート、レポート、ダッシュボードに反映することができ、デバイスがオフラインになっていたり、障害が発生してデバイスからのデータ送信が停止していた場合でも、監視によってプロアクティブに対応できます。このブログでは具体的な方法は説明しませんが、豊富な情報が揃ったSplunkのドキュメントサイトを参照すれば良い方法が見つかるでしょう。

このブログで紹介した方法をどうぞお役立てください!

----------------------------------------------------
お読みいただきありがとうございました
Jonathan Torian

このブログはこちらの英語ブログの翻訳、横田 聡によるレビューです。

October 07, 2022
Splunk
Posted by

Splunk

TAGS
Tips & Tricks Infrastructure Monitoring
Show All Tags
Show Less Tags

Related Posts

SPLUNK ON TWITTER
  • @Splunk
  • @splunkanswers
  • @SplunkforGood
  • @SplunkDocs
  • @splunkdev
  • @splunkgov
SPLUNK ON FACEBOOK
  • @Facebook
SPLUNK ON INSTAGRAM
  • Follow us on Instagram
SPLUNK ON LINKEDIN
  • Follow us on LinkedIn
SPLUNK ON YOUTUBE
  • Subscribe to our Channel
SPLUNK ON SLIDESHARE
  • Follow us on SlideShare
Splunk製品
  • Splunk Cloud Platform
  • Splunk Enterprise
  • Splunk IT Service Intelligence
  • Splunk On-Call
  • Splunk Enterprise Security
  • Splunk SOAR
  • Splunk Infrastructure Monitoring
  • Splunk APM
ソリューション
  • オブザーバビリティ
  • セキュリティ
  • プラットフォーム
お客様事例
リソース
  • 電子書籍
  • アナリストレポート
  • ホワイトペーパー
  • ウェビナー
  • ビデオ
お問い合わせ
  • サポート
  • 営業へのお問い合わせ
Splunk Sites
  • Splunk Answers
  • 日本語ブログ
  • Community
  • .conf
  • Developers
  • Documentation
  • Splunkbase
  • SplunkLive!
  • T-shirt Store
  • トレーニング
  • User Groups
Splunk
Sitemap | Privacy
© 2005-2023 Splunk Inc. All rights reserved.
Splunk、Splunk>およびTurn Data Into Doingは、米国およびその他の国におけるSplunk Inc.の商標または登録商標です。他のすべてのブランド名、製品名、または商標は、それぞれの所有者に帰属します。