Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Splunkのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Splunk
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:アプリケーション]] [[en:Splunk]] Splunk はプロプライエタリのデータマイニングソフトウェアです。[[wikipedia:Splunk|Wikipedia]] より: :Splunk はウェブインターフェイスからコンピュータが生成したデータを検索・監視・解析するためのソフトウェアです。大規模なアプリケーションやシステム、IT インフラで使われています。Splunk はリアルタイムのデータをリポジトリに収集し相互に関連付けて検索を可能にします。そこからグラフや帳票、ダッシュボード、ビジュアライゼーションを生成できます。 :Splunk は組織全体のマシンデータにアクセスできるようにしてデータパターンを識別します。指標を提示し、問題を分析することで企業活動を後押しする知性を得ることができます。Splunk はアプリケーションの管理やセキュリティ、コンプライアンスからビジネスやウェブの解析まで幅広く使うことができる水平技術です。 Splunk は1日に作成されるデータのインデックス量に応じてライセンスが変わります。フリーライセンスでは1日500 MB まで利用することができますが、アクセス制御やセキュリティアラート、PDF 生成などの機能は使えません。 Splunk には高水準のデータ検索インターフェイスが備わっています。(ビルトインの) 正規表現によって生データはフィールドに抽出されます。独自の構文を持つクエリ言語を使用しますが、SQL などの構造化データ取り合わせ言語に慣れているユーザーならすぐに理解することができるはずです。 Splunk のオンラインドキュメントは公開されており広範囲の事柄がわかります。検索や設定のリファレンスファイルについては、Unix ライクな man ページとして提供されています。この記事ではあまり知られていない機能やトラブルシューティング、Arch Linux で動作させる方法を集中して取り上げています。 ==インストール== {{AUR|splunk}} パッケージが [[AUR]] に存在します。インストールすると {{ic|splunk}} ユーザーとグループを作成し、Splunk と systemd のユニットファイルをインストールします。 Splunk Universal Forwarder をインストールするための {{AUR|splunkforwarder}} パッケージも存在します。 === 手動 === [http://www.splunk.com splunk.com] にログインして Splunk や Splunk Universal Forwarder のダウンロードリンクを取得して wget でダウンロードしてください: $ wget -O splunk.tgz <url goes here> tarball を展開: $ tar -xvf splunk.tgz 展開したディレクトリを {{ic|/opt/}} に移動してデプロイします。 Splunk のインストールディレクトリは {{ic|$SPLUNKHOME}} で指定します。{{ic|.bashrc}} で設定してパスを追加してください: export SPLUNK_HOME=/opt/splunk export PATH=$SPLUNK_HOME/bin:$PATH Splunk には強力な CLI インターフェイスが備わっており、全ての設定は {{ic|.ini}} 形式の設定ファイルに保存されます。 ==Splunk の起動== Splunk には2つのメインコンポーネントが存在します: {{ic|splunkd}} デーモンと {{ic|splunkweb}} サービス、{{ic|cherrypy}} ウェブアプリケーションです。 AUR パッケージを使用した場合、systemd の {{ic|splunk}} サービスを[[起動]]することで両方とも実行されます。 もしくは Splunk のバイナリで起動してください: # splunk start ==パフォーマンス== Splunk コミュニティでは Splunk のパフォーマンスは IO 性能に強く依存するというのが常識ですが、これは因習的な使い方をしているときの話です。シングルスレッドで特定の操作をした場合、シングルコアの占有に時間を大きく取られディスク使用量はほとんどないということもあります。 Splunk が何をしているのか確認するのは簡単です: $ iostat -d -x 5 $ top ほとんどディスクが使用されずにシングルコアの負担率が 100% に張り付き、ときどき他のコアで splunkd が活動しているような場合、ハードウェアではなく Splunk の実装が原因で発生しているボトルネックです。 Splunk がハードウェアを活用できていないような場合、以下のことを考慮してみてください: ===検索セマンティクス=== Splunk の検索機能はほとんど [[wikipedia:Mapreduce|MapReduce]] 実装によるものです。分散化された環境では強力かつ有用ですが、高水準な検索言語抽象化によってパイプラインの初期に {{ic|reduce}} 操作が行われて、Splunk の機能である操作の並列化が失われしまっている可能性があります。分散環境とシングルインスタンスどちらでも起こりえます。 (馬鹿正直な実装における) 経験則としてあらゆる「イベント」を確認しないとできない操作は並列化されません。このことは特に Splunk の最も便利な機能のひとつである [http://docs.splunk.com/Documentation/Splunk/latest/SearchReference/transaction transaction] コマンドに当てはまります。 ===分散環境=== Splunk は分散環境で動作するように設計されています。各インスタンスは個々のマシンで動作させるという想定ですが、多数の論理コアが存在し (ソリッドステートディスクなどを搭載した) ディスク性能が高いマシンでは Splunk のインスタンスを複数に設定することで性能を著しく向上させることができます。 シングルマシンで複数の Splunk インスタンスを実行する場合、以下の設定に注意する必要があります: * serverName - {{ic|server.conf}} の [general] スタンザ * splunkd と splunkweb の mgmthostport と httpport - {{ic|web.conf}} の [settings] スタンザ インデクサ (検索ピア) に検索を処理させる検索ヘッドとして3番目のインスタンスをセットアップしたり、両方のインデクサが各々を使うように設定することができます。 専用の検索ヘッドを使用する場合、インデクサのウェブインターフェイスを無効化すると良いでしょう: # splunk disable webserver # splunk restart ===インデックス=== インデクサが複数あるということはデータが分割されるということです。{{ic|inputs.conf}} を設定して別のサブセットのソースデータを監視したり、別の 'forwarder' インスタンスを使ってラウンドロビン形式で自動的にロードバランシングさせてください。 {{ic|indexes.conf}} の固定パスやシンボリックリンクを使って同じインデックスを読み取るようにインデクサを設定してはいけません。検索ヘッドが重複排除をしなければならなくなり作業を分散化させるメリットがなくなってしまいます。 ==デバッグと管理== Splunk の [http://docs.splunk.com/Documentation/Splunk/latest/Admin/Aboutthecli CLI] はあまり活用されていません。 設定ファイルをデバッグするときにとても有用です: # splunk btool props list あるいは {{ic|inputs.conf}} を設定してディレクトリを監視する代わりに、テスト用に一時的にファイルを追加するには: # splunk add oneshot <file> -sourcetype mysourcetype -host myhost -index myindex テストをするときは特殊なテストインデックスを使うようにしてください。データを追加してしまったら、一度完全に消去しないかぎり、インデックスからデータを消去するのは不可能になります。 ==カスタムコマンド== [http://docs.splunk.com/Documentation/Splunk/latest/Developer/SearchScripts こちら] にあるように、Splunk では検索パイプラインで任意の Python や Perl スクリプトを呼び出すことが可能です。Splunk のフレームワークの枠組みを越えて、外部のデータソースを読み込んだりすることができます。他の場所にデータを自動的にプッシュしたり、Splunk の外で任意のジョブを実行するマクロを作成するショートカットも存在します。 カスタムコマンドの使用については Splunk のドキュメントやインターフェイスで警告が出されており、検索パフォーマンスに深刻な影響を与えるとされています。実際には、検索コマンドで間抜けなことをやらないかぎり、カスタムコマンドによるリソース消費は非常に低く抑えられます。さらに、シングルコアしか使えない Splunk とは対照的に、別プロセスで実行されるため CPU やメモリ資源を活用することができます。Splunk は (コマンドが全てのデータセットを取得するような場合の {{ic|streaming = false}} でなければ) ひとまとまりのデータで繰り返しカスタムコマンドを実行し、外部スクリプトが結果を出力して終了するまで自分の作業を進めます。 Splunk には Python 2.7.2 バイナリが付属しており、システムにインストールされた Python ではコマンドが実行されません。そのため {{ic|pip}} や {{ic|easy_install}} でインストールしたパッケージを使ったり、独自のライブラリを使用するのが面倒です。 {{ic|fork}} や {{ic|execv}} などを使って制限を回避してシステムの Python をロードすることができます。もしくは、コンパイル済みのプログラムや PyPy などの高速な Python インタプリタを使って、高速な環境でデータを処理できます。 ===設定=== [http://docs.splunk.com/Documentation/Splunk/latest/Admin/commandsconf commands.conf] のガイドでは誤解を招くような表現が使われています。特に以下の部分: streaming = [true|false] * Specify whether the command is streamable. * Defaults to false. 'streaming' は単に (50K の範囲で) 任意のサイズのデータを使って Splunk で繰り返しコマンドを生成しても問題ないか決定するだけです。デフォルトの {{ic|splunk.Intersplunk}} ライブラリがデータのストリーミングインターフェイスを提供していることは触れられていません。 ===Library API=== 組み込まれているインタプリタで利用できる Splunk ライブラリのドキュメントは存在しません。直接モジュールを調べてみてください: $SPLUNK_HOME/bin/splunk cmd python #(in python interpreter) import splunk.Intersplunk help(splunk.Intersplunk) splunk.Intersplunk のソースではデータをコマンドに送る前にプロセスの標準入力から入力セット全体が解析されています。データセット全体を使う必要があるコマンドでなければ(そのような場合は稀です)、かなり効率が悪い方法です。 ライブラリは簡単に置き換えることができます。Splunk から渡されるデータには {{ic|key}}:{{ic|value}} ペアと改行、ヘッダ行とデータによって構成されるヘッダが含まれています。Python では、ヘッダ行を読み込んで保存または無視してから {{ic|csv.Reader}} や {{ic|csv.DictReader}} オブジェクトを使うことで一度にデータを処理することができます。{{ic|csv.Writer}} や {{ic|csv.DictWriter}} で結果の行を Splunk の検索パイプラインに戻してください。
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
Splunk
に戻る。
検索
検索
Splunkのソースを表示
話題を追加