add oneshot コマンドを使ったファイルの取り込み方法

公開日
2019-08-29
最終更新日
2019-08-29
バージョン
Splunk Enterprise 7.2.5
概要
Splunk の add oneshot コマンドを使用することで、指定したファイルをインデックスに取り込むことが出来ます。
障害発生時や設定不備等により上手く取り込めなかったファイルを再取り込みしたり、検証用のサンプルログを取り込む際にご利用ください。
参考情報
内容

add oneshotとは

add oneshot はCLIから実行するSplunkのコマンドの一種で、指定したファイルをインデックスに取り込むために使用します。

このコマンドでのファイルの取り込みは、実行時に1度だけ行われます。

具体的には、以下のような状況で利用できます。

  • 設定の不備等により上手く取り込まれなかったファイルを再度取り込む
  • delete コマンドで削除したファイルのデータを再度取り込む
  • テスト用のファイルを試験的に取り込む

また、add oneshotコマンドを実行するSplunkのインスタンスによって動作が異なります。

  • インデクサー:コマンドを実行したインデクサーに取り込まれます。
  • ユニバーサルフォワーダー:転送先のインデクサーに取り込まれます。

add oneshotの構文

以下が add oneshot コマンドの構文です。

<構文>

$SPLUNK_HOME/bin/splunk add oneshot <取り込みファイルパス> [-オプション 値]

※$SPLUNK_HOMEはインストールディレクトリです。デフォルトでは以下になります。

Windows :

Splunk Enterprise : C:\Program Files\Splunk
Universal Forwarder : C:\Program Files\SplunkUniversalForwarder

Linux :

Splunk Enterprise : /opt/splunk
Universal Forwarder : /opt/splunkforwarder

以下は取り込みファイルパスと合わせて、インデックスとソースタイプ、認証用のオプションを追加して実行する際のコマンドの例となります。

<取り込み条件>
Splunk のインストールディレクトリ : /opt/splunk
取り込みファイルパス : /var/log/secure
取り込み先インデックス : security
取り込みログのソースタイプ : linux_secure
管理者ユーザー : admin
管理者パスワード : password

<実行例>

/opt/splunk/bin/splunk add oneshot /var/log/secure -index security
-sourcetype linux_secure -auth admin:password

※実際に実行する際は、オプション指定を含めて1行で入力してください。

各オプションの詳細については、下記「コマンドオプション」を参照ください。

注意事項

  • 取り込みファイルパス以外は任意のオプションとなりますが、意図しないインデックスやソースタイプで取り込まれるのを防ぐために、必ず指定するようにしてください。
  • 取り込みファイルパスには、取り込み対象のファイルをフルパスで指定してください。

コマンドオプション

  • -sourcetype <ログのソースタイプ>
    1. 取り込み時のソースタイプを指定する場合に使用します。指定しない場合には、取り込み時に自動認識されたソースタイプが設定されます。
  • -index <取り込み先インデックス>
    1. 取り込み先インデックスを指定する場合に使用します。指定しない場合には main インデックスに取り込まれます。
  • -hostname <ホスト名>または-host <ホスト名>
    1. 取り込み時のホスト名を指定する場合に使用します。指定しない場合にはサーバーのホスト名が設定されます。
  • -hostregex <正規表現>または-host_regex <正規表現>
    1. ファイルのフルパスの一部を、ホスト名として抽出する際に指定します。正規表現内の、最初の括弧()内にマッチした部分がホスト名となります。正規表現がファイルパスにマッチしない場合は、サーバーのホスト名が設定されます。
  • -hostsegmentnum <パス階層数>または-host_segment <パス階層数>
    1. ファイルのフルパスに含まれるディレクトリ名またはファイル名を、ホスト名として抽出する際に指定します。
      例えば以下のようにオプション指定をした場合、上位から3階層目のディレクトリ名である、"splunk-server" がホスト名として設定されます。

<Linuxでの例>

$SPLUNK_HOME/bin/splunk add oneshot
/var/log/splunk-server/messages.log -hostsegmentnum 3

<Windowsでの例>

$SPLUNK_HOME\bin\splunk add oneshot
C:\var\log\splunk-server\messages.log -hostsegmentnum 3

※Windows の場合はドライブ指定を除いた階層数の指定になります。

  • -rename-source <ソース>
    1. 取り込み時のソースの値を指定します。指定しない場合にはファイルのフルパスが設定されます。
  • -auth <ユーザー名>:<パスワード>
    1. 取り込み時のユーザー認証に利用するユーザー名とパスワードを指定します。指定していない場合には、コンソール上でユーザーとパスワードの入力を求められますので、Splunk の admin ユーザーで認証してください。

以上