Splunk Remote Upgrader for Linux Universal Forwarders

Platform Piotr Lenarczyk

はじめに

Splunk Remote Upgrader (RU) for Linux Universal Forwardersは、Linux用のユニバーサルフォワーダー(UF)をリモートで一括アップグレードするためのSplunkbase Appです。事前定義済みのフォルダーに新しいユニバーサルフォワーダーパッケージが追加されたかどうかを監視し、追加されると、新しいパッケージを使ってアップグレードを実行します。

Upgraderとユニバーサルフォワーダーの配布では、デプロイサーバーを使用することも、手動の手順または既存の自動化方法を使ってパッケージを配布することもできます。また、アップグレードの対象として、UFのみ、RUのみ、UFとRUの両方のいずれかを選択できます。

RUのパフォーマンステストのベンチマークは次のとおりです:CPU使用率:1%未満メモリー使用量:3~4MB

Remote Upgrader for Linuxの概要

Remote Upgrader (RU) for Linuxは、LinuxマシンにインストールされたユニバーサルフォワーダーのソフトウェアバージョンをアップデートするためのAppです。その主な目的は、Splunk管理者がアップグレードに費やす時間を減らし(保守の改善)、アップデートの頻度を増やし(セキュリティの強化と脆弱性の低減)、新しいバージョンのユニバーサルフォワーダーで提供される新機能をすばやく利用できるようにすることです。RUは特に、中央エージェント管理サーバー(デプロイサーバー)を使ってデータ収集エージェントをアップグレードしているSplunk管理者に大きな価値をもたらします。

Remote Upgrader for Linuxのメリット

Remote Upgraderを使用することにはすでに多くのメリットがあり、今後さらに機能が強化される予定です。

さらに注目していただきたいのが、今後も、お客様からの改善に関する新たなアイデアに基づいて機能がさらに強化される点です。Splunkでは、こうした共同開発の取り組みを熱心に推進しています。お客様とSplunkチームがともに、最良のRemote Upgraderを作り上げるだけでなく、このツールと他の自動化ツール(Infrastructure as Code (IaC)アプリケーションなど)を統合して活用するためのベストプラクティスを確立すれば、最終的に、包括的で強力なソリューションを生み出すことができるでしょう。

Remote Upgraderの仕組み

Remote Upgrader (RU)は、ユニバーサルフォワーダー(UF)と同じLinuxインスタンス(マシン)にインストールします。RUは、事前定義済みフォルダーの/tmp/SPLUNK_UPDATER_MONITORED_DIRに新しいUFパッケージが追加されたかどうかを監視します。新しいUFパッケージが検出されると、自動的に、そのパッケージ使ってUFをアップグレードします。

UFのインストールパッケージは、配信用App (通常はスクリプトベースのSplunk App)内に組み込み、デプロイサーバーを通じてUFの$SPLUNK_HOME/etc/appsディレクトリに配信します。配信用Appは、UFで自動的に起動した後、UFインストールパッケージ(.tgzファイルとその署名の.sigファイルで構成)をRUの事前定義済みフォルダーの/tmp/SPLUNK_UPDATER_MONITORED_DIRにコピーします。

RUは、UFのAppフォルダーではなく、事前定義済みフォルダーを監視してインストールを開始するため、スクリプトベースのシンプルな配信用Appが必要になります。

デプロイサーバーを通じたUFのアップグレード 図:デプロイサーバーを通じたUFのアップグレード

オペレーティングシステムの制約により、RUは手動でインストールし、初回は管理権限(sudoまたはroot)で実行する必要があります。この変更により、UFを非rootアプリケーションとして実行し、セキュリティを強化しています。

インストールパッケージの構造

このソリューションには以下のパッケージが必要です。

インストールプロセスで必要になるのは、Remote Upgrader for Linuxと配信用Appのみで、UFインストールパッケージは配信用App内に組み込みます。Remote Upgrader for Linuxは、SplunkbaseからダウンロードしたAppに含まれます。配信用Appは、SplunkbaseからダウンロードしたAppと、splunk.comから取得したUFインストールパッケージを使って構成します。

Remote Upgrader for Linux:SplunkbaseからダウンロードしたRU Appは、通常のSplunk Appの完全なディレクトリ構造を持ち、RUパッケージが単一の.tgzファイル(初期バージョンのRUは「splunk-upgrader-100.tgz」)として組み込まれています。インストールする必要があるのはRUの.tgz形式のインストールファイルのみで、Appの完全なディレクトリ構造は後でUFをアップグレードするために使われることに注意してください。

配信用App:このAppは、通常のSplunk App構造を持ち、そこに配信用スクリプト(.shファイル)、UFインストールファイル(.tgzファイル)、UF署名ファイル(.sigファイル)などのコンポーネントが含まれています。UFのインストールファイルと署名ファイルはsplunk.comからダウンロードし、SplunkbaseからダウンロードしたRU Appに追加する必要があります。

UFインストールパッケージ:このパッケージは、UFインストールファイル(.tgzファイル)とUF署名ファイル(.sigファイル)で構成されます。これらはsplunk.comからダウンロードし、SplunkbaseからダウンロードしたRU Appに追加する必要があります。

次の図に、SplunkbaseからダウンロードしたRU for Linux App(バージョン1.0.0)の構造を示します。このAppには、UFインストールパッケージ9.4.0が同梱されています。

SplunkbaseからダウンロードしたRU for Linux Appの構造
図:SplunkbaseからダウンロードしたRU for Linux App (バージョン1.0.0)の構造(UF 9.4.0が同梱)

簡易版インストールマニュアル

デプロイサーバーを使ってRemote Upgraderパッケージを配布する方法と、同じ方法でユニバーサルフォワーダーをアップグレードする方法を説明したインストールマニュアルから、各プロセスの手順を抜粋して以下に示します。このセクションを読めば、配布とインストールプロセスの概要を掴むことができます。

デプロイサーバーを使ってRemote Upgraderパッケージを配布する手順

  1. SplunkbaseからSplunk Remote Upgrader for Linux Universal Forwardersをダウンロードします。
  2. ファイルを解凍し、ディレクトリ内にRUパッケージファイル、splunk-upgrader-{version}.tgzがあることを確認します。
  3. デプロイサーバーを使って、Remote Upgraderをインストールするユニバーサルフォワーダーにこのファイルを配布します。

    デプロイサーバーで、Appを
    $SPLUNK_HOME/etc/deployment-appsディレクトリに置きます。これにより、対象となるユニバーサルフォワーダーの
    $SPLUNK_HOME/etc/appsディレクトリにAppが配布されます。
  4. ユニバーサルフォワーダーに配布されたRemote Upgraderパッケージをそのフォワーダーのインストールディレクトリにコピーします。
    Remote Upgraderはユニバーサルフォワーダーのホームディレクトリと同じ階層で実行する必要があります。そのため、たとえば、
    SPLUNK_HOME = "/opt/splunkforwarderと設定されている場合は、Upgraderパッケージを/optにコピーします。
  5. パッケージを解凍します。
  6. インストールプロセスを開始します。
    sudo ./bin/install.sh --accept-license --create-user

デプロイサーバーとRemote Upgraderを使ってユニバーサルフォワーダーをアップグレードする手順

  1. splunk.comから9.0.0以降のユニバーサルフォワーダーインストールパッケージと、対応する.sigファイルをダウンロードします。
  2. ユニバーサルフォワーダーファイルと.sigファイルを、Splunkbaseからダウンロードして解凍したRemote Upgraderパッケージ内のsplunk_app_uf_remote_upgrade_linux/local/packagesディレクトリに置きます。
  3. これで、splunk_app_uf_remote_upgrade_linuxディレクトリをAppとして、対象のユニバーサルフォワーダーに配布できるようになります。このAppを、デプロイサーバーを使ってユニバーサルフォワーダーに配布してください。配布後、ユニバーサルフォワーダーのアップグレードが自動的に実行されます。

詳細なインストールガイドについては、次のSplunkドキュメントを参照してください。https://docs.splunk.com/Documentation/Forwarder/1.0.1/ForwarderRemoteUpgradeLinux/About

今後の計画:Remote Upgrader for Windows

Splunkは現在、Remote Upgrader for Linuxの効率性をモデルにしたRemote Upgrader for Windowsを開発中です。リリース予定はテストの完了後に正式に決まります。リリース後も、ソリューションの改善を続け、さらに強化していきます。ぜひ今後の最新ニュースをチェックしてください。

お客様からの提案やアイデアをお待ちしております。遠慮なくご意見をお寄せください。お客様とともに、この画期的なツールをさらに磨き上げ、アップグレードを効率的に管理するための統合的かつシームレスで汎用性と信頼性に優れたソリューションを実現できることを楽しみにしています。

このブログはこちらの英語ブログの翻訳、山村 悟史によるレビューです。

関連記事

SplunkをAzureに活用: Event Hubs
プラットフォーム
5 分程度

SplunkをAzureに活用: Event Hubs

Splunk Add-on for Microsoft Cloud Services、Microsoft Azure Add-on for SplunkなどのSplunkアドオンを使用すれば、Azure環境のあらゆるデータソースに接続してデータを取り込めます。
データ辞書:完全ガイド
プラットフォーム
8 分程度

データ辞書:完全ガイド

データ辞書は、あらゆるデータドリブンな組織にとって欠かせないツールですが、構築するのは複雑で手間のかかる作業のように思われがちです。
構造化データ、非構造化データ、半構造化データ
プラットフォーム
6 分程度

構造化データ、非構造化データ、半構造化データ

データ構造とは、効率よく迅速に有意義的な形でデータを保存、取得、処理できるようにデータを編成する方法です。データ構造の基礎、種類、相互作用やデータ構造が重要である理由について説明するとともに、いくつかの例とベストプラクティスをご紹介します。