ども!なのまるです!
「Splunk 6.1.4」出ましたね!
さすがに世にいるエンジニアの方は、効率化して複数サーバー展開されていることと思います!
僕も僕なりの解決方法を作ったので、これもひとつの例だと思ってやり方を公開して残しておきます!
もくじ
そもそもなんで、これやるの??
Splunkは基本的にメーカーのダウンロードページからバイナリをダウンロードしてきて、サーバーに展開するしかありません!でも、1度ダウンロードすれば展開しても問題ないと「チラッと」聞いたので、展開するために自作のパッケージリポジトリを作成しました!
全体像
以前作ったスライドに、全体像があるので掲示しておきます!前提条件
yumの場合
- RHEL系のLinux OS
- createrepo パッケージ
- python-hashlib パッケージ(RHEL5系の場合)
aptの場合
- Debian系のOS
- apt-utils パッケージ
作業の流れ
- Splunkからバイナリをダウンロード(本体とUniversal Forwarder)・確認
- ファイルの配置
- httpdの設定
- yumリポジトリの作成
- repoファイル作成
- aptリポジトリの作成
- apt sourcelistファイルの作成
- 更新
Splunkからバイナリをダウンロード(本体とUniversal Forwarder)・確認
Download Splunk Enterprise for free より、- Splunk Enterprise
- Splunk Universal Forwarder
MD5のチェックサムを忘れずに!
ファイルの配置
ディレクトリ構成例/opt/splunk-repo/ ├── bin (shellを格納する) ├── deb (debパッケージ置場) ├── i386 (32bit版の置き場) ├── repofile (apt,yum repoファイル置場) └── x86_64 (64bit版の置き場)上記構成で組む前提で進めます。
フォルダ作成
mkdir -p /opt/splunk-repo/{bin,deb,i386,repofile,x86_64}そして、それぞれの環境ごとフォルダににファイルを配置します。(これが面倒なんですが、あとからいい感じに効いてくるので頑張りますw)
httpdの設定
リポジトリ公開に、httpdを使うので何でもいいのでhttpdを設定します!(Apache,nginx)とりあえず使い慣れたApacheで(2.4の場合)
# # for Splunk Forwarder # なのまる Original repository # Alias /splunk-repo /opt/splunk-repo <Directory "/opt/splunk-repo"> Options Indexes AllowOverride None # for Under 2.2 # Order allow,deny # Allow from all # for Over 2.4 Require all granted </Directory>
yumリポジトリの作成(RedHat系のサーバーで)
コマンド忘れそうなので、単純にシェルスクリプトに入れました。#!/bin/bash sudo createrepo --database /opt/splunk-repo/x86_64 sudo createrepo --database /opt/splunk-repo/i386
repoファイル作成
「splunk.repo」などとして「/etc/yum.repos.d」に配置します![splunk-uf] name=Splunk Universal Forwarder baseurl=http://[サーバーのIP]/splunk-repo/$basearch/ gpgcheck=0 enabled=0
ここは、環境に応じて変更してください!
baseurl=http://[サーバーのIP]/splunk-repo/$basearch/
aptリポジトリの作成(Debian系のサーバーで)
こちらも、単純にシェルスクリプトに入れました。#!/bin/bash cd /opt/splunk-repo/deb sudo apt-ftparchive packages . | gzip > Packages.gz
今回署名は入れてないです。。。
apt sourcelistファイルの作成
「splunk.list」などとして「/etc/apt/sources.list.d」に配置します!deb http://[サーバーのIP]]/splunk-repo/deb ./
更新
早速更新です!yumだけ、オプションつけないとUpdate出来ない仕組みになっています!
「splunk.repo」の以下を「1」にすれば自動でアップデート適用出来ます。
enabled=0
yumの時
Splunk 本体sudo yum update --enablerepo=splunk-uf splunk
Splunk Universal Forwarder
sudo yum update --enablerepo=splunk-uf splunkforwarder
aptの時
Splunk 本体sudo apt-get update && sudo apt-get upgrade splunk
Splunk Universal Forwarder
sudo apt-get update && sudo apt-get upgrade splunkforwarder
起動確認
Splunk 本体sudo /opt/splunk/bin/splunk start --answer-yes --no-prompt --accept-license
Splunk Universal Forwarder
sudo /opt/splunkforwarder/bin/splunk start --answer-yes --no-prompt --accept-license
展開
各サーバーへの展開ですが、
capistrano
や、Jenkinsでシェルスクリプト作って実行させたりしまーす!トラブルシューティング
トラブルが起きたら、大抵の場合この手順だと
repo作るコマンドのパッケージが足りない
か
httpdの設定がおかしい
だと思うので、そのあたりを確認してみてください~まとめ
- この手順で、結構頻繁に更新されるSplunkアップデートに追随できるようになりました!
- 複数ディストリビューション・複数arch(i386,x86_64)に対応できるようになりました!
- 以前からブログに書く!って言っててやっと書けました!
結局独りよがりだったのかも~?
Splunk のyum repository を社内に作ったけど、「えっ!?」って反応されたw
だって、forwarderのアップデート展開すんの面倒だったんだもん。
CPU のarchも違うしさ~(。>д<)
— なのまる(ここでいうことでもないですが) (@snicker_jp) 2014, 7月 2