エンジニアリング

SplunkからElastic Stackへデータを移行する

Splunkは20年近く前にはじめてリリースされました。1日当たりのデータ投入量に基づく料金体系を採用し、数多くの組織が、Splunkのおかげでビジネスインサイトを獲得する上でログが持つパワーを実感してきました。この20年で、システムやユーザーが生成するデータの量、種類、速度は指数関数的に増えています。ビジネスと運用が抱えるニーズは、コンプライアンスや基本的なレポートの水準を急速に追い越しました。開発方法論や監視要件も急激な進化を遂げており、データのインサイトを提供する機械学習へのニーズの増大とともに、リアルタイムな検索機能が必要とされるようになりました。 

データ上限の壁

いま、企業ではペタバイト規模のデータをミリ秒で検索し、運用に関するリアルタイムなインサイトを獲得したり、機械学習システムを駆動させる、あるいはビジネスのスピードに応じてスケールさせる必要があります。同時に、投入データベースの料金体系を採用するSplunkの費用は法外なものとなりつつあります。技術のスケールに関する課題と併せて、多くの組織が“peak Splunk”とよばれる壁にぶつかるようになりました。つまり、システムにこれ以上データを投入する費用を捻出できないのです。こうした企業ではしばしば、セキュリティやオブザーバビリティのユースケースに使用する貴重なデータの一部を切り捨てています。さらに複雑なことに、Splunkのプレミアムアプリには複数の料金モデルがあり、一部は完全に異なるプラットフォームとアーキテクチャーに基づいて開発されています。このため、費用を事前に予測することが難しいだけでなく、異種のツールのためのインフラ管理も複雑です。最近Splunkが永続ライセンスの廃止を打ち出したことも、多数の企業が新しいソリューションを模索する動機となりました。

Elasticsearchは最初のユースケースを支えたときから検索のためのプロダクトであり、徹底してスピードとスケーラビリティのために開発されています。この“スピードとスケーラビリティ”からはソリューションファミリーも派生しており、すべて1つのスタックに搭載されています。フレキシブルなオープンソースライセンスモデルを採用し、リソースベースの公正な料金体系でプレミアムなサービスを提供するElasticのソリューションは、Splunkから移行する多くの企業の選択肢となっています。

Elasticの特徴であるオープンソースライセンスモデルでは、新規ユーザーが使いはじめる際にライセンスを購入する必要がありません。このライセンスは非常に寛容で、開発者が独自のサービスをElasticsearchに統合することも可能です。さらに機械学習やAPM、クラスター横断レプリケーション、エンドポイントセキュリティ、管理ツールなど、プレミアムサブスクリプションで提供される機能も活用したくなったら、ライセンスをアップグレードするだけのシンプルな手順でOK。新たにツールをデプロイしたり、アーキテクチャーを分離させるとか、ハードウェアを追加するといったことを行う必要はありません。オープンソースモデルは、複数の環境でデプロイからステージング、運用までのフェーズにおいて、コストと管理の関連性を保つ上でも役立ちます。

SplunkのデータをElastic Stackに移行する4つの手順

Splunkと比較して独自のメリットを持つElasticのサービスは、多くの組織に移行先として選ばれています。これまでにも多数の組織から、移行のベストプラクティスに関するお問い合わせをいただきました。データプラットフォームを移行する手順に“簡単”なものはありませんが、移行組織に役立ついくつかのテクニックをご紹介します。

フェーズ1:Splunkに投入されていないデータソースを特定する

最初の簡単な手順として、コスト(ライセンス)や技術的制限からSplunkに投入されていないデータソースを確認しましょう。一般的には、DNSやDHCP、エンドポイント、アプリケーションログといった大容量データソースが該当します。これまで利用されていないデータソースの投入を開始することで、組織は新しいユースケースを構築しながら、Elastic Stackを使いはじめることができます。Elastic Stackは、無料でダウンロードできるベーシックディストリビューションで開始することも、Elastic CloudのElasticsearch Serviceで無料のトライアルを利用してすばやくはじめることもできます。

フェーズ2:SplunkからElastic Stackに移行させるデータソースの棚下ろしをする

Elastic Stackへの移行を適切に計画するために、現在どのデータソースがSplunkに投入されているかについてリストを作成することが重要です。これを簡単に実施する方法の1つに、SPLクエリを使うやり方があります。

| eventcount summarize=false index=* index=_* 
| dedup index
| fields index
| map maxsearches=100 search="|metadata type=sourcetypes index=\"$index$\"
| eval index=\"$index$\""
| fields index sourcetype

Splunk Searchアプリケーションでクエリを実行したら、データソースのリストを様々な形式でエクスポートするオプションを使用することができます。

フェーズ3:SplunkからElastic Stackに既存のデータフローを移行する

Elasicが提供するデータシッパーファミリーのBeatsを使って、数千ものシステムからElastic Stackにデータを送ることができます。一方、多くのSplunkユーザーは、すでにSplunkのUniversal Forwarderをシステムにデプロイ済みです。移行開始にあたっては、Splunk Universal Forwarderを使ってElastic Stackへのデータを分岐させることもできます。残念ながら、SplunkはUniversal Forwarderを使ってサードパーティのシステムにデータを送信する方法に技術的制限と、ライセンス制限を課しています。ドキュメントとライセンスを読み、最善のメソッドを確認してください。フレキシビリティとセキュリティ、信頼性のため、徐々にUniversal ForwardersをBeatsモジュールに置き換えていく必要があります。また、Elasticのコンサルティングチームをご利用いただくことも可能です。コンサルティングチームは困難な、あるいはカスタマイズされたデータソースの作業に豊富な経験を持ち、移行プロセスのサポートにも対応しています。

フェーズ4:SplunkからElastic Stackに古いデータを移行する

大多数の組織はフレッシュなデータでElastic Stackを使いはじめていますが、Splunkにある古いデータを移行することが必要なユースケースも存在します。移行を実施するにあたっては、データ量に応じていくつかのメソッドが存在します。最も簡単な手法は、Splunkのドキュメントに従い、Splunkのインターフェースからデータをエクスポートするやり方です。 

CSVまたはJSONから小規模なデータセットをエクスポートし、Elasticsearchにインポートする

その他に、Splunk APIを使ってデータをエクスポートすることも、また、ODBCを経由して接続することも可能です。作業するユースケースやデータの量、データタイプに応じて最適なアプローチは異なります。

移行を成功させる

ここまでの4つの手順は、SplunkからElastic Stackにデータを移行する計画を立てる上で役立ちます。しかしこの他に、チームへの教育も必要です。Elasticが提供するトレーニングコース「Kibana for Splunk SPL Users training course(Splunk SPLユーザーのためのKibana)」は、移行チームをサポートする目的で開発されています。また、Elasticのコンサルティングサービスが提供する移行プロセスのサポートをご利用いただくこともできます。 SplunkからElastic Stackへ移行してROIの向上や、高速化、スケーラビリティの強化など、すぐれた成果を実現した導入事例もご覧ください。乗車シェアサービスのLyft(敬称略)の事例をご紹介しています。また、Splunk移行先に関するページでも詳しい内容をご確認いただけます。ご質問等はお気軽にお問い合わせください。