Splunk バージョンアップ についての確認点（Version : 7.3, 8.0）

どうも、おはこんばんは。

今回は、Splunk 7.3、8.0がEOLを迎えたので、バージョンアップの確認点をお話しちゃいます。

##EOLについて
2021年10月22日に以下のバージョンがEOLとなりました。
・Splunk Enterprise 7.3.x / 8.0.x
・Universal Forwarder 7.3.x
公式URL : [Splunk Support Policy](https://www.splunk.com/en_us/legal/splunk-software-support-policy.html)

##前置き
本記事はバージョンアップ計画に必要となる確認点とご認識ください。

##確認項目
 1. バージョンアップパス
 2. 新バージョンのEOL
 3. クラスタ機能の利用有無
 4. 自己証明書の利用有無
 5. 新バージョンの機能廃止状況
 6. Universal Forwarderとの互換性
 7. App / Add-onの互換性 / サポート状況
 8. Pythonの互換性
 9. その他
 
##1. バージョンアップパス
バージョンアップ先により制約がある為、気をつけなければいけません。
例えば、7.3から8.2　へバージョンアップをする場合は以下のパスとなります。

|稼働バージョン|中間バージョン|最終バージョン|
|:---|:---|:---|
|7.3.x|8.0.x OR 8.1.x|8.2.x|
*8.0 OR 8.1から8.2へのバージョンアップは中間バージョンは不要となります。

中間バージョンの要否によりスケジュールや工数が変わる為、パスを確認することがとても重要になります。

公式URL : [How to upgrade Splunk Enterprise](https://docs.splunk.com/Documentation/Splunk/8.2.2/Installation/HowtoupgradeSplunk)

##2. 新バージョンのEOL
よくある話ですが、Splunkのライフサイクルは2年周期の為、バージョンアップ後にEOLを迎えることもありえます。
その為、せっかく新バージョンにするのであれば、最遅のEOLを見据えたバージョンにすることでコストを抑えていきましょう。
ライフサイクルとコストを考慮してバージョンアップ計画をしましょう！
（ぶっちゃけ、SplunkのEOLって早すぎますよね…）

公式URL : [Splunk Support Policy](https://www.splunk.com/en_us/legal/splunk-software-support-policy.html)

##3. クラスタ機能の利用有無
Splunkのバージョンアップ作業に必要な日数ってどのくらいなのかをよく聞かれるます。
結論、環境次第であり、方法により半日〜数日に変動します。

大きな要因として、特にサーチヘッドクラスタ、もしくはインデクサクラスタ機能の使用有無により日数が変わります。（All-In-Oneだと楽なんですけどね）

クラスとの場合は、全停止の一括作業、または階層毎に作業をすることになります。
前者の全停止であれば、作業要員次第では早く終わります。
後者の階層毎となると字の如くマスタノード、サーチヘッド、インデクサ、フォワーダの順に作業をする為、それなりの要員と時間が必要となります。

クラスタの利用によっては、スケジュール、コスト、手順が大きく変わる為、計画時には必ず考慮しましょう。
*クラスタ間のバージョンにも制約がある為、公式ドキュメントをよく読んでください！

公式URL① : [Upgrade a search head cluster](https://docs.splunk.com/Documentation/Splunk/8.2.2/DistSearch/UpgradeaSHC)
公式URL② : [Upgrade an indexer cluster](https://docs.splunk.com/Documentation/Splunk/8.2.2/Indexer/Upgradeacluster)

##4. 自己証明書の利用有無
Splunk Webへのアクセス時やログの転送時にSSL通信を利用されているとは思いますが、その際にSplunkが発行する自己証明書を用いてる場合が多く見受けられます。
その証明書は初回起動時（インストール時）に自動的に作成をするのですが、バージョンアップ時の初回起動時には作成されません。（ほぼほぼ）
バージョンアップ後に初回起動をする場合は、既存の自己証明書が存在している為、Splunkが発行処理をスキップしています。
その為、バージョンアップ作業時に既存の自己証明書をリネーム、もしくは移動、コピー、削除をしてから起動をすることになります。（よく忘れられる為、覚えといて損はないです。）

ただし、各々で作成した証明書や証明書機関が発行した証明書は対象外となります。
あくまで、Splunkが自己署名した証明証となります（デフォルト）

##5. 新バージョンの機能廃止状況
Splunkは偶に機能やコマンド、スタンザを廃止します。
既存のサーチ文やスタンザが新バージョンでは使えないこともあり得るので、リリースノートをよく確認してからバージョンアップには望みましょう！（まじで絶対に確認してください）

公式URL : [Deprecated and removed in version 8.2](https://docs.splunk.com/Documentation/Splunk/8.2.2/ReleaseNotes/Deprecatedfeatures)

## 6. Universal Forwarderとの互換性
利用環境によってはUniversal Forwarder（UF）だけバージョンアップができない環境もあると思います。（過去にありましたので…）
万が一にもUFのバージョンが6系ですと互換性がサポートされない為、ログの転送が一切できなくなります。
（現在の7.x系と8.x系の組み合わせであれば、互換性はほぼ保証されます。）
又、今後もメジャー、マイナーの仕様によっては、互換性が変わりますので確認をするクセは大事になります。

公式URL : [Compatibility between forwarders and Splunk Enterprise indexers](https://docs.splunk.com/Documentation/VersionCompatibility/current/Matrix/Compatibilitybetweenforwardersandindexers)

##7. App / Add-onの互換性 / サポート状況
ほとんどの方がApp / Add-onを利用されていると思います。
もちろん、App / Add-onにもバージョンやサポート有無があります。
ものによっては、新バージョンに対応していないこともあり、既存のAppを利用せざるを得なくなる場合もある為、Splunkbaseかリリースノートを確認しましょう。

ちなみに極稀ではありますが、App / Add-on自体の廃止、もしくは移行がありますので、ご注意ください。
過去、Netflow用のAdd-onが廃止されて苦労しました（笑）

公式URL : [Splunkbase](https://splunkbase.splunk.com/)

## 8. Pythonの互換性
Python2系が2021/1/1にサポート終了したことでSplunkもPython3へ移行するように周知しています。
様々な人がこれの影響でスクリプトの修正をしたかとは思われますが、未だに移行されていない方はご注意を。
将来的にはSplunkからPython2.7のランタイムが削除される為、バージョンアップの機会に移行の計画をするのはどうでしょうか。

公式URL : [Python 3 migration with the Splunk platform](https://docs.splunk.com/Documentation/Splunk/8.0.0/Python3Migration/AboutMigration)

##9. その他
①推奨システム
偶にあるのですが、基盤は据え置きで、Splunkのみバージョンアップをしてほしいと要求があります。
一概に「OK！」とは言えません。
OSのバージョン次第では、Splunkのバージョンに対応していないこともある為、推奨システムをよく見ましょう。

公式URL : [System requirements for use of Splunk Enterprise on-premises](https://docs.splunk.com/Documentation/Splunk/8.2.2/Installation/Systemrequirements)

②Splunkのプロセス停止
バージョンアップ中はSplunkプロセスを全台の停止が必要なのかとよく聞かれます。
一時的な停止、再起動は必須ですが、必ずしも全停止が必要になる訳ではありません。
理想は全停止ですが、一部、または階層毎に作業をすることで時間、日単位の停止で計画ができます。

③バックアップ / リストア
Splunkに限らず厄介なやつですが、計画しましょう。
システムとしてSplunkのバックアップ / リストア手段が確立されていれば良いのですが、世の中うまくできていないのが現実なんですよね。
環境によっては、手段が確率されておらず、再インストールでのリストアを計画するしかありません。
その場合は、インデックスデータの扱いや既存設定を考慮してください。（これめっちゃ大事です。）

##おわりに
本当はもっと考慮すべき点はありますが、今回はここまで。

Splunkのバージョンアップは他製品と違い面倒な点が多いので、少しでも参考に幸いです。

PS.本題には一切関係ありませんが、みなさんはM1 ProのMacBook Pro買いますか？