【Splunk】Cisco Networkの設定がうまくいかん

ダラダラとSplunkをいじっていたが, どうにもCisco Network Appの設定がうまくいかない。

ディレクトリ指定してログはとれるものの, Host表示がメチャメチャ。
デバイスが1台しか見えていないし, ホスト名もおかしい。
なんでだ。
怠けてなんも見てなかったが, しっかりとマニュアルに目を通すか・・・。

と思ってちょっとみたらただ単に必要な設定が入っていなかっただけだった。

ちゃんと表示されました

Setting »  Data inputs » Files & directories » /var/log/rsyslog/***.log

のHost Field Valueにちゃんと機器のHostameが入っていなかったようだ。
# 入れたつもりだったんだけど・・・」

1Device1Logの環境ではこれでいいけど, これじゃめんどくさいからディレクトリどかんと入れたいときは,ディレクトリ指定だな!なんて思っていたんだが今度はこっちがうまくいかん。

なんでだ・・・。

showコマンドのフィルタについて

いやーーー今更なんですが・・・。
ネットワークエンジニアとして十数年やってきていましたが, ほんと今更ですが, Cisco機器(というかIOS)においてshowコマンドのフィルタ条件が増えていることに今更ながら気が付きました。「

show run | inc
show run | exc

だけでなく

begin, sectionはたまた正規表現まで。

あとパイプのあとにパイプ入れるとOR条件となるとか。

いやーーーいつからよ?これ実装されたの。
昔なかったよな?

【Splunk】Ciscoのログ監視

オフィシャルのAppsからCiscoで検索するといくつか出てくる。
その中からベーシックっぽい「Cisco Networks」というものをDLする。

左から2番目からアプリを探せる
Ciscoで検索すると幾つか出てくる

WebUIのAppsからもインストールできるっぽいのだが,どうもエラーでインストールできない。
たぶん,ログインしているアカウントとSplunkに登録したアカウントとの整合性な気がしてならない。
調査に時間とれないから,Splunkの公式WebからDLしてきてブラウザ経由でインポートした。

AppファイルをDLしてきたら「Install app from file」をポチッとして
ファイルを選んで突っ込む
参照先のログの設定とかすませてしばらくするとこういったレポートが出る

なかなかおもろい。
ただ,今はACL程度しか吐き出してないので特にセキュリティイベントが出てくるわけもなく。
個人の環境では面白いものはなかなか見れないかもな。
ハニーポッド的なWEBサーバを立ててあえてInternetにさらして観察するってのも面白いかもしれない。

Splunkを入れてみる

さて,新しい職場にも慣れつつあるので久々に家の環境で遊んでみる。
Splunkに興味があったので入れてみることにした。

ここからDLする。自分はsplunk-6.2.2-255606-linux-2.6-x86_64.rpmをゲット。

インストールマニュアルも公式HPにあるので,参考にする。

デフォルトでは /opt/splunk にインストールされる。

終わったら

/opt/splunk/bin/splunk start

で起動。

http://IP Address:8000/

でアクセス可能。これだけか。簡単だなー。

初期パスワードを変えて
Login完了!

とりあえず家のL3SWとAPとZabbixあたりのログを吐き出して様子見てみるかね。

Add DataからサーバのSyslogディレクトリ選択してみると,なんとなくログが出た。
詳細はこれからいじってみてだな。

なんか出るが,所詮意味があるデータではまだない

外からownCloudへアクセスする

家の中ではアクセスできるようになったownCloud。
当然外からもアクセスしたい。そのためにDMZ帯にたてたのだし。

また, 外にさらすのでポート番号は変えたい。(例えば8080等)

ssl.conf  を編集。

/etc/httpd/conf.d/ssl.conf
・・・
Listen 8080
・・・
<VirtualHost _default_:8080>

※ 事前にブロードバンドルータ側でGlobal IP AddressとサーバのIP AddressのNAT設定はしておく

大雑把な構成はこんな

httpdを再起動してアクセスすると, ポート番号は変わったものの外からのアクセスができない。
できないというか, SSLの確立でダメになっているみたい。
パケットのアドレスは変換されるが, SSLのヘッダに組み込まれたアドレスが外のGlobal IP Addressになっていて, 宛先違うじゃないのーって感じでサーバ側から拒否られているんだろう。(多分・・・)

調べてみるとtrusted_domainという設定が効いているらしく, ここも手を加えないと外からアクセス出来ない。
/var/www/html/owncloud/config 配下にある config.php を編集する。

/var/www/html/owncloud/config/config.php
<?php
$CONFIG = array (
・・・
・・・
  ‘trusted_domains’ =>
  array (
    0 => ‘192.168.2.50’, ‘globalIPAddress’,   /**  これを追記 **/
  ),
  ‘datadirectory’ => ‘/home/owncloud’,
  ‘overwrite.cli.url’ => ‘http://192.168.30.10/owncloud’,
 ・・・
・・・
  ‘loglevel’ => 1,
);

ついでにユーザデータのディレクトリの指定もここで変えられるから変えた。
※ これはパーティションの都合・・・

ここを変えた後はもとのファイルの移行をやっておく。

cp -rfa   /var/www/html/owncloud/data/*  /home/owncloud 

で, 改めてhttpdを再起動して完了。

今度はうまく行った。

うまく行ったといっても, クライアント側でアカウントを外用/中用と2つ作ってイチイチ切り替えなくてはならない。
なんかいい方法あるのかな。まぁ, タダだし文句は言うまい。

ownCloudのスループットをなんとなく見てみる

入れてみたあと,どんだけ使えるのかがきになるところ。
140MBのファイルを共有フォルダへ入れて同期にどれだけ時間がかかるのか見てみた。
家の回線はau光1Gでブロードバンドスピード測定サイトで測ると大体上りで40~50Mbpsは出る。
対してLAN内は1Gの環境。サーバは古いPCを代用したしょぼいものでもそれなりに速度でるだろうとは思っていたけど, なかなかいい結果でした。
ownCloudのクライアントがホスト1つしか登録できないのでLAN内限定になってしまうが, スマホの写真をバカスカと外から共有かけるようなことはしないから, 今のところはいいか。
Dorpboxは帯域頭打ちとなった。
サービス側の帯域制御の関係かな。

LAN内なのでサクッと終わった。
家族でスマホの写真共有はこれで十分かもしれないね。

ownCloudを入れる

Dropboxの容量が足りないと(妻)が言ってきたので家にownCloudを立てて自前オンラインストレージ的に使えるようにしようと考えた。

で, 早速入れてみる。
(今の最新バージョンは8.0)

サーバはCentOS7なので手順にしたがって入れる。
ここに手順が公開されています。

# cd /etc/yum.repos.d/# wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-7/isv:ownCloud:community.repo# yum install owncloud

あとはSELinuxの設定も必要となるが, うちは無効化しているので飛ばす。

あとはブラウザで http://サーバのIPアドレス/owncloud/ へアクセスしてアカウントのセットアップをすればOK。

が, mariadbにownCloudのデータベースとユーザがなかったのでそれを事前に作っといた。

あとはクライアントアプリをインストールして完了。

HTTPS化はこちらこちらなどを参考に。


余談
こっちでHTTPS化するとZabbixも引きずられてHTTPS必須になった。

これは/etc/httpd/conf.d/zabbix.conff 内に SSLEngine off を記述すればOK。


余談2 (2015/02/25追記)
ownCloudのWebUIで「PHPのコードがUTF-8になってないよー」と警告が出ていたので /etc/php.ini を編集してhttpdを再起動。

/etc/php.ini 
; PHP’s default character set is set to empty.
; http://php.net/default-charset
default_charset = “UTF-8”  ; これをコメントアウト

息抜き

Rubyがなかなか進まないので息抜きがてらZabbix2.4をインストした。

ここにしたがってパッケージを追加してやる。

1) リポジトリ登録
# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-server-2.4.3-1.el7.x86_64.rpm
http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-server-2.4.3-1.el7.x86_64.rpm を取得中
警告: /var/tmp/rpm-tmp.VOoJhc: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 79ea5ed4: NOKEY
エラー: 依存性の欠如:
        OpenIPMI-libs >= 2.0.14 は zabbix-server-2.4.3-1.el7.x86_64 に必要とされています
        fping >= 3 は zabbix-server-2.4.3-1.el7.x86_64 に必要とされています
        iksemel は zabbix-server-2.4.3-1.el7.x86_64 に必要とされています
        net-snmp は zabbix-server-2.4.3-1.el7.x86_64 に必要とされています
        unixODBC は zabbix-server-2.4.3-1.el7.x86_64 に必要とされています
        zabbix は zabbix-server-2.4.3-1.el7.x86_64 に必要とされています
        zabbix-server-implementation = 2.4.3-1.el7 は zabbix-server-2.4.3-1.el7.x86_64 に必要とされています

色々足りない・・・。

足りないものを入れる。

その前にyumのプライオリティを設定できるようにyum-plugin-prioritiesを入れる。

fpingとiksemelは標準パッケージで提供されてないらしく, RPMfforgeリポジトリから入れるのがいいらしい。
(パッケージってすごく便利だけど, なんか色々と背景がめんどくさいね。いや, 自分でコンパイルして入れるよりも全然いいんだけどさ)

RPMforgeのリポジトリの設定の仕方はググる。
1) RPMforgeリポジトリ登録
2) priorityを設定(20にした) そしてzabbixのpriorotyはなんとなく10に・・・。
以上。
あとは再びfping/iksemelのインストール。
# yum –enablerepo=rpmforge -y install fping

iksemelのパッケージが見つからないのでzabbixのnonn-supportから直接インストールした。
# rpm -ivh http://repo.zabbix.com/non-supported/rhel/7/x86_64/iksemel-1.4-2.el7.centos.x86_64.rpm

んーこれだったらfpingも合わせておけばよかったかな。ま, いっか。

再びZabbixインストールへ戻る。

2) zabbixインストール
# yum –enablerepo=zabbix install zabbix-server-mysql zabbix-web-mysql
# yum –enablerepo=zabbix install zabbix-agent

3) Database作成
※事前にmariadb, mariadb-serverをインストールしておく

# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 11
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the current input statement.

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by ‘z@bbix’;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit;
Bye


# mysql -u root -p zabbix < ./schema.sql
Enter password:
# mysql -u root -p zabbix < ./images.sql
Enter password:
# mysql -u root -p zabbix < data.sql
Enter password:

完了。

4) zabbix_server.confの編集

# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=db-pass

5) PHPの設定
# vi /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone Asia/Tokyo

ここはタイムゾーンだけいじった。

6) zabbix起動

# systemctl enable zabbix-server
# systemctl start zabbix-server

ここまできたら http://zabbixのIP/zabbix/ にアクセスできるんだがFirewalldが効いていて弾かれる。
んーーーあっちゃこっちゃで制御するとめんどいし, うちはL3SWでACLかけるからサーバ側のFW系止めちゃうか。SELinuxも合わせて。

ってことで

# setenforcce 0
# systemctl stop firewalld
# systemctl disable firewalld

以上。

こっからはWebbUIにしたがって設定していく。

いやーやっぱ目に見える結果があるといいね。

rubyのバージョン管理

どうもRubyにおいてはバージョン管理がついてまわるそうな。
たぶん, 開発環境においては複数のバージョンでテストを行ったりするんだろう。

そういった意味では(今の)自分には不要なもの。
だけども, とりあえずこの手のものは一般的な環境に慣れておく必要があると思うので, rvmを入れておく。
rbenvというものもあるが, 最初に目に入ったのがrvmだからこっちにした。

Installは本家サイトにあるまんま。

# gpg –keyserver hkp://keys.gnupg.net –recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
# curl -sSL https://get.rvm.io | bash -s stable

rubyは2.2.0をインストール。
こんな感じでインストールされる。

# rvm install ruby-2.2.0
# rvm list

 rvm rubies

 =* ruby-2.2.0 [ x86_64 ]

 # => – current 
 # =* – current && default 
 # * – default 

ちなみにPathは

/usr/local/rvm/rubies/ruby-2.2.0/bin/ruby


とrvm配下にインストールされるのね。
いくつかのバージョンを入れて使い分ける場合は

# rvm use ruby-2.2.0



などして使うバージョンを指定する。
ま, 今んとこコレしか使わないからあんま関係ないか。

ちなみに, 自分は十数年前のSolaris7時台からUNIX系の時が止まっており, そのころからtcshユーザだったが, rvmはtcshには適用していない。(ただし, 色々設定すればできるそうな)

個人的にbashがどーも苦手なのでこの際高機能で崇められているzshへ切り替えた。