こんにちは、torippy1024です。
今日は、以前記事にしたDeployment Serverを使ったApp配布について、CLIでなくGUIでApp配布を行う手順や概要について書きたいと思います。
以前書いた記事はこちらです。
https://qiita.com/torippy1024/items/fec7d22d7b6b593ea92a
ちなみに、Splunk 10より、Deployment ServerはAgent Management(エージェント管理)という名前に変わったそうです。それに伴いDeployment Clientも、Agentという呼び名に変わったそうです。
https://help.splunk.com/en/splunk-enterprise/administer/update-your-deployment/10.0/agent-management/about-agent-management
本記事では、なるべく新しい呼び方に慣れるようにするため、Agent Management(Deployment Server)/Agent(Deployment Client)という書き方をします。
(タイトルはデプロイメントサーバーのまんまですが・・・)
(1)サーバークラスとは
Agent Management(Deployment Server)を使ってAgent(Deployment Client)の管理をする上で、重要な概念にサーバークラスがあります。
これは、Appを配信するサーバーとAppをマッピングしたものです。
概念としては以下となります。
配布先サーバーの一覧は、正規表現などを使って一括指定することが可能です。
またサーバーもAppも、複数のサーバークラスに所属することが可能です。
このためサーバークラスは柔軟に定義することが可能です。
まず全体のサーバーをグループ化し、そのサーバーグループに対してAppを割り当てる考えでもよいし、逆にAppを配布するグループを作成し、それらAppにサーバーを割り当てる考えでもよいです。それらを混在させることもできます。
ただ、混在させてしまうと管理が煩雑になるため、基本はサーバークラスという名前の通りサーバーをグループ化し、そのグループに沿って配布するAppを定義してあげる方針にしたほうが管理しやすいのではないかと個人的には考えています。(あくまで個人の考えで、好みによるところが多いと思いますが)
(2)サーバークラスの作成と設定手順
では実際に、Splunk Web上でサーバークラスを作成したり設定する手順を試してみます。
今回は、Splunk Add-on for Unix and Linuxと、Splunk Add-on for Microsoft Windowsを、それぞれ事前にエージェントとして登録したLinuxサーバーとWindowsサーバーに対して配信する設定を行ってみます。
事前の環境構築については、上記で紹介した以前の記事を参考にしてください。
まず、Agent Management(Deployment Server)のSplunk Webにログインします。
その後、「設定」-「エージェント管理」を選択します。
エージェント管理画面では、登録済みのAgent(Deployment Client)が表示されます。この画面に表示されていないAgentは、まだAgentとしてのAgent Managementと通信ができていないということになります。
今回は、Linuxサーバー(ip-172-31-34-226)とWindowsサーバー(EC2AMAZ-2A9E33R)が登録されていることがわかります。
サーバークラスを作成するためには、「サーバークラス」のタブを選択し、「新しいサーバークラス」を選択します。
サーバークラスの名前を指定するウインドウが開かれるので、「sc_windows」を指定して保存すれば、サーバークラスが作成できます。
次に、「フォワーダーの編集」を選択します。
「フォワーダーの編集」画面では、サーバークラスに所属するForwarderを指定します。
あんまり綺麗な日本語訳ではないですが「*含める(必須)」の場所でForwarderを指定します。
クライアント名、ホスト名、IPアドレス、DNS名など、結構幅広く正規表現で指定できるようです。
誤って想定と異なるサーバーを指定してしまわないように、入力後は「プレビュー」を選択しましょう。「プレビュー」を選択すると、指定した正規表現に該当するサーバーのみ、画面下にグリーンチェックが表示されます。
確認が終わったら「保存」を選択すればForwarderの指定は完了です。
次に、「アプリケーション」タブを選択し、「アプリケーションの編集」を選択します。
「アプリケーションの編集」画面では、サーバークラスに所属するアプリケーションを指定します。
画面左の一覧をチェックして「>」マークを選択し、割り当てるアプリケーションを右側に移動させて保存します。
「アプリケーションの編集」画面では、もう一つ行うべきことがあります。
所属させたアプリケーションの右側の縦三つの点(ハンバーガーマーク)を選択し、「詳細を表示」を選択します。
アプリケーション画面の「配信後」欄が重要です。ここで二つの設定があります。
- (1)アプリケーションを有効にする/アプリケーションを無効にする/何もしない
- (2)エージェントを再起動(オン/オフ)
(1)については、基本は「アプリケーションを有効にする」でよいと思います。他の選択肢を選択するケースは少数派でしょう。
(2)については少し考慮が必要です。このトグルを有効にすると、App配信後、splunkdプロセスが再起動します。配布したAppを確実に有効化するためにはそのほうがいいのですが、再起動中ログの配信が停止しますし、サーバーにも負荷がかかることには注意しておく必要があります。
(ただsplunkの役目はログ転送なので、仮に停止しても業務に影響を与える可能性は少ない場合が多いいということを踏まえると、そこまで気にしなくともいいかもしれません。splunkdプロセスの監視などには注意が必要です)
無事に設定が完了したら、左上の「アプリケーション」リンクなどをクリックしてAgent Management画面に戻ります。
しばらく(デフォルトだと60秒)経つと、AgentからAgenet Managementへのポーリングが行われ、Appが配信されたことが確認できます。
ちなみに、上記のようにSplunk Web上で実施した結果をCLIで実施しようとする場合は、以下のようにserverclass.confを作成すればOKです。
sudo cat /opt/splunk/etc/system/local/serverclass.conf
[global]
stateOnClient = enabled
restartSplunkd = False
[serverClass:sc_windows]
whitelist.0 = EC2AMAZ-2A9E33R
[serverClass:sc_windows:app:Splunk_TA_windows]
restartSplunkd = true
stateOnClient = enabled
[serverClass:sc_linux]
whitelist.0 = ip-172-31-34-226
[serverClass:sc_linux:app:Splunk_TA_nix]
restartSplunkd = true
stateOnClient = enabled
終わりに
Agent Management(Deployment Server)は、Splunk Cloudを使う上で、Heavy Forwarderを除くとオンプレ上に残る唯一のSplunk専用サーバーと考えられます。
ただ、App配布をするだけであれば他の構成管理ツールでも代用できるため、他に手段があるのであれば導入をしないパターンもある悲しい機能一つでもあります。
名前が「Agent Managemet」に名称変更し、これからForwarder管理に関する機能が増えていくと予想されるので、今後の機能拡張に期待したいと思います。
参考資料
About agent management
https://help.splunk.com/en/splunk-enterprise/administer/update-your-deployment/10.0/agent-management/about-agent-management
新規または既存のSplunk Cloud (またはSplunk Enterprise)環境にデプロイメントサーバーを追加してフォワーダーを管理する(画面は最新版にしていますが、本記事ではほとんどこの記事と同じことをやっています)
https://www.splunk.com/ja_jp/blog/platform/adding-a-deployment-server-forwarder-management-to-a-new-or-existing-splunk-cloud-or-splunk-enterprise-deployment.html