スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Splunk その2

前回で Splunk のインストールが完了していると思いますので、今回はその他 OS 周りの設定から。

9. iptables の設定

iptables が動作している環境に Splunk をインストールする場合、Splunk サーバの管理画面へのクライアントからの接続要求や、分散検索などで発生する Splunk サーバ同士の通信、あるいはログの送信元デバイスからの syslog や FTP などの通信を許可するよう、ルールの追加が必要になります。

また、Free ライセンスで運用する場合には、管理画面を開く際のログイン認証が無くなってしまうため、iptables で接続元を制限しておいた方がよいでしょう。

CentOS 5.5 の初期状態のルールは以下のようになっていました。

[root@localhost ~]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 74 4888 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 102 packets, 13800 bytes)
num pkts bytes target prot opt in out source destination

Chain RH-Firewall-1-INPUT (2 references)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0
4 0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 74 4888 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited


設定ファイルはこんな感じです。

[root@localhost ~]# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT


それでは、Splunk のプロセスが使用するポート(8000/tcp, 8089/tcp)を許可していきましょう。

[root@localhost ~]# iptables -I RH-Firewall-1-INPUT 11 -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
[root@localhost ~]# iptables -I RH-Firewall-1-INPUT 12 -m state --state NEW -m tcp -p tcp --dport 8089 -j ACCEPT
[root@localhost ~]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 354 26348 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 330 packets, 37132 bytes)
num pkts bytes target prot opt in out source destination

Chain RH-Firewall-1-INPUT (2 references)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0
4 0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0
5 0 0 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 354 26348 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8000
11 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8089

12 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited


また、追加で標準の syslog ポート(514/udp)と Forwarder で使用する任意の TCP ポート(今回は 9997/tcp を使用)の許可設定も追加しておきます。この辺は環境に応じて適切なルールを設定しましょう。

[root@localhost ~]# iptables -I RH-Firewall-1-INPUT 13 -m state --state NEW -m tcp -p tcp --dport 9997 -j ACCEPT
[root@localhost ~]# iptables -I RH-Firewall-1-INPUT 14 -m udp -p udp --dport 514 -j ACCEPT
[root@localhost ~]# iptables -nvL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 1059 82838 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 RH-Firewall-1-INPUT all -- * * 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 972 packets, 106K bytes)
num pkts bytes target prot opt in out source destination

Chain RH-Firewall-1-INPUT (2 references)
num pkts bytes target prot opt in out source destination
1 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
2 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmp type 255
3 0 0 ACCEPT esp -- * * 0.0.0.0/0 0.0.0.0/0
4 0 0 ACCEPT ah -- * * 0.0.0.0/0 0.0.0.0/0
5 1 69 ACCEPT udp -- * * 0.0.0.0/0 224.0.0.251 udp dpt:5353
6 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631
7 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
8 1057 82540 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
10 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8000
11 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:8089
12 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:9997
13 0 0 ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:514

14 1 229 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited


最終的な設定ファイルはこんな感じです。

[root@splunk ~]# service iptables save
ファイアウォールのルールを /etc/sysconfig/iptables に保存中[ OK ]
[root@splunk ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Mon Jan 10 16:05:17 2011
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [59481:53861677]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p esp -j ACCEPT
-A RH-Firewall-1-INPUT -p ah -j ACCEPT
-A RH-Firewall-1-INPUT -d 224.0.0.251 -p udp -m udp --dport 5353 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8000 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 8089 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 9997 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 514 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Mon Jan 10 16:05:17 2011


今回は検証ということで、特にアドレスでの制限はかけていませんが、実環境では -s オプションで信頼できる送信元セグメントを指定しておきましょう。

ちなみに今回の場合、許可すべきセグメントとポート番号の対応は以下のようになります。

8000/tcp: Web GUI のクライアント
8089/tcp: 他の Splunk サーバ
9997/tcp: Forwarder/Light Weight Forwarder
514/udp: syslog の送信元デバイス


10. syslog-ng

syslog については標準の syslogd をそのまま使ってもいいのですが、facility や severity でフィルタをかけるためにマクロを使いたいので、rsyslog に入れ換えます。

※ syslog-ng は以前に使ったことがあるので、今回は勉強がてら rsyslog を使うことにしました。

ちなみに CentOS の yum で入る rsyslog のバージョンは 2011/01/10 現在 3.22.1 (v3 の最新は 3.22.3)のようです。公式ホームページを見るとサポートの終了しているバージョンみたいですが、v5 は CentOS 5 環境へのインストールが面倒そうですし、検証だからまあいいかということで yum で入れてしまいます。

[root@splunk rpm]# service syslog stop
カーネルロガーを停止中: [ OK ]
システムロガーを停止中: [ OK ]
[root@splunk rpm]# chkconfig syslog off
[root@splunk rpm]# chkconfig --list syslog
syslog 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@splunk rpm]# yum install rsyslog
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* addons: www.ftp.ne.jp
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
addons | 951 B 00:00
base | 2.1 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package rsyslog.x86_64 0:3.22.1-3.el5_5.1 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

==========================================================================================
Package Arch Version Repository Size
==========================================================================================
Installing:
rsyslog x86_64 3.22.1-3.el5_5.1 updates 380 k

Transaction Summary
==========================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)

Total download size: 380 k
Is this ok [y/N]: y
Downloading Packages:
rsyslog-3.22.1-3.el5_5.1.x86_64.rpm | 380 kB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : rsyslog 1/1

Installed:
rsyslog.x86_64 0:3.22.1-3.el5_5.1

Complete!


設定ファイルを修正して、rsyslog.conf で v3 ネイティブの書式を使うようにします。

[root@splunk rpm]# cat /etc/sysconfig/rsyslog
# Options to syslogd
# -m 0 disables 'MARK' messages.
# -rPortNumber Enables logging from remote machines. The listener will listen to the specified port.
# -x disables DNS lookups on messages recieved with -r
# See syslogd(8) for more details
SYSLOGD_OPTIONS="-c3"
# Options to klogd
# -2 prints all kernel oops messages twice; once for klogd to decode, and
# once for processing with 'ksymoops'
# -x disables all klogd processing of oops messages entirely
# See klogd(8) for more details
KLOGD_OPTIONS="-x"


514/udp でリモートからのロギングを許可するよう、rsyslog.conf を修正します。

[root@splunk rpm]# cat /etc/rsyslog.conf
# Use traditional timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Provides kernel logging support (previously done by rklogd)
$ModLoad imklog
# Provides support for local system logging (e.g. via logger command)
$ModLoad imuxsock
# Provides support for remote system logging (via 514/udp)
$ModLoad imudp
$UDPServerRun 514


# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none /var/log/messages

# The authpriv file has restricted access.
authpriv.* /var/log/secure

# Log all the mail messages in one place.
mail.* -/var/log/maillog


# Log cron stuff
cron.* /var/log/cron

# Everybody gets emergency messages
*.emerg *

# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler

# Save boot messages also to boot.log
local7.* /var/log/boot.log


設定が完了したら、rsyslogd を起動します。

[root@splunk rpm]# service rsyslog start
システムロガーを起動中: [ OK ]
[root@splunk rpm]# chkconfig rsyslog on
[root@splunk rpm]# chkconfig --list rsyslog
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@splunk rpm]# netstat -na | grep 514
udp 0 0 0.0.0.0:514 0.0.0.0:*
udp 0 0 :::514 :::*
[root@splunk rpm]# tail /var/log/messages
Jan 10 19:50:50 splunk kernel: imklog 3.22.1, log source = /proc/kmsg started.
Jan 10 19:50:50 splunk rsyslogd: [origin software="rsyslogd" swVersion="3.22.1" x-pid="26600" x-info="http://www.rsyslog.com"] (re)start


あとは logger コマンドで実際にログを出してみて、問題なければ次に進みましょう。

マクロ等の細かい設定は App の設定と一緒に後ほど追加していきます。

11. Web GUI へのログインと基本設定

以下の URL にアクセスし、デフォルトの管理者ID: admin、パスワード: changeme でログインします。

http://<サーバの IP アドレス>:8000/


ログイン画面はこんな感じ。

splunk_setup_01.png

ログイン後には、ランチャー画面が表示されます(ユーザの設定で変更可能)。

splunk_setup_02.png

Splunk サーバの設定を行うには、右上の「管理」をクリックします。

設定メニューの一覧が表示されるので、まずは「システム設定」をクリックしてみましょう。

splunk_setup_03.png

「一般設定」をクリックします。

splunk_setup_05.png

Splunk が使用するホスト名やポート番号を指定するための設定画面が表示されるので、必要に応じて修正してください。

ちなみに今回は、インデックス設定のデフォルトホスト名が FQDN (splunk.example.jp)になっていたところをホスト名(splunk)に変更しています。単一ドメインのシステムを管理する想定のためですが、複数ドメインにまたがるシステムを管理する場合には、FQDN のままにしておいたほうがよいでしょう。

splunk_setup_06.png

※1 ポート番号を変更する場合は、iptables の設定もあわせて変更してください。
※2 HTTPS を有効化する手順については別の回で詳しく解説する予定です。

ちなみに、この Web GUI 全体のことを Splunk Web、設定画面を Splunk Manager と呼びますが、Splunk の設定変更を行う手段としては、他に splunk コマンドの実行や設定ファイルの編集があります。設定項目にもよりますが、Splunk Manager で設定できることはある程度限られており、詳細な設定を行うには設定ファイルの直接編集が必要になるケースが多々あるということは覚えておいてください。

また、Splunk Manager からシステム全体にかかわる設定を行った場合、通常は「$SPLUNK_HOME/etc/system/local」の下にあるファイルに設定が追加されます。

システム関連の設定ファイルのディレクトリ構成は以下のようになっていますので、デフォルトの値を確認したい場合や、ファイルを直接編集して設定を行う場合には、ここにあるファイルを参照・編集してください。

$SPLUNK_HOME/etc/system/default
デフォルトの設定値が記載された設定ファイルが格納されているディレクトリ。
通常、このディレクトにあるファイルは直接編集しません。

$SPLUNK_HOME/etc/system/local
デフォルトから変更したい設定値を記載したファイルを格納するディレクトリ。
ここでの設定は、default ディレクトリにある同名のファイルの設定値を上書きします。

$SPLUNK_HOME/etc/system/README
設定ファイルに記載できるパラメータの詳細や設定例を記述したファイルが格納されているディレクトリ。
※ 残念ながら英語のみです。


12. ユーザの新規作成・設定変更(オプション)

すぐに Free ライセンスに切り換える予定の方は、認証機能が無くなるためユーザ設定を行う必要はありませんが、少なくともしばらくは Enterprise ライセンスで使用する場合は、admin ユーザのパスワードを変更しておきましょう。

ユーザ設定を行うには、管理メニューの「アクセス制御」をクリックします。

splunk_setup_03.png

「ユーザー」をクリックします。

splunk_setup_08.png

「admin」をクリックします。

splunk_setup_11.png

アラートで使用するメールアドレス(要 Enterprise ライセンス)やログイン時に表示する App を選択し、デフォルトパスワードを変更して、「保存」ボタンをクリックします。

splunk_setup_12.png

新規にユーザを作成する場合は、一つ前の画面で「新規」ボタンをクリックして同様の情報を入力します。

ちなみに、管理メニューの中に「ユーザーオプション」という項目がありますが、これはログインしたユーザが自分のアカウント情報を変更するためのものです。権限以外は「アクセス制御 >> ユーザー」と同様の項目が設定できるので、自アカウントの設定を変えるだけなら通常はこちらを使えばよいでしょう。

13. Free ライセンスへの切り替え(オプション)

Splunk はインストールから 60 日間は評価版の Enterprise ライセンスで動作します。

現在の有効なライセンスや利用状況は管理メニューの「ライセンス」から確認できます。

splunk_setup_07.png

評価期間中はそのまま Enterprise ライセンスで使用してもよいのですが、もともと Free ライセンスでの利用を想定している個人ユーザの方などは、いつでもライセンスを切り替えることができます。

…できるはずなのですが、現在のバージョン(4.1.6)では Weg GUI のライセンス管理画面に、切り替えのためのリンクが表示されません。messages.po を覗いてみると「Finally ~」以下の一文が翻訳から抜け落ちているのが原因のようです(原文では「switch to a free license」の部分がリンクになっています)。

原文:

This is a Splunk Enterprise Trial license. It gives you access, for a limited time, to all the features of Splunk. While you're using this trial, be sure to try our advanced alerting and user customization before your trial expires. If you would like to extend your Trial or get a quote we would be happy to assist you. Finally, you may switch to a free license at any time.


翻訳文:

これはSplunkのエンタープライズライセンスです。期間限定でSplunkのすべての機能が利用できます。評価期間の有効期限が切れる前に、設定のカスタムや応用的なアラート機能などを十分にお試しください。 もし評価ライセンスの再入手もしくはお見積りをご希望される場合、遠慮くなくご相談ください。


まあ、単なる翻訳漏れで製品の機能自体が変わっているわけではないようなので、以下の URL を直接参照すればライセンスの切り替え画面を表示させることができます。

http://<サーバ IP アドレス>:8000/ja-JP/licensing/


この画面で Continue ボタンをクリックし、Splunk の再起動を行うと Free ライセンスへの切り換えが完了します。

splunk_setup_22.png

切換え完了後は、ライセンス画面の表示を確認しておきましょう。

splunk_setup_10.png



それでは、今回はここまで。
次回はデータ入力についての解説と、簡単な App の作成くらいまでいきたいと思います。
関連記事

テーマ : おすすめソフトウェア
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

米麹

筆者: 米麹
某社に勤務する SE です。
ここでは本職とは関係のない趣味的な検証情報などを書いていきます。

注意事項とお願い
記事の内容は掲載時点のもので、現在は異なる可能性があります。情報に誤りや不適切な事項があった場合には、コメントやメールフォームでご指摘下さい。
また、本サイトの情報を利用することによって生じたいかなる損害についても、筆者は責任を負いかねますのでご了承下さい。
カレンダー
04 | 2018/05 | 06
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
最新記事
月別アーカイブ
カテゴリ
全記事表示リンク

全ての記事を表示する

検索フォーム
メールフォーム

名前:
メール:
件名:
本文:

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。