Solr6.1.0+Banana+Fluentdの設定例としてvmstatの情報を取得するところまで書きます。
ソフトウェア構成
利用したソフトウェアのバージョンは以下の通り。
S/W | Version |
---|---|
solr | 6.1.0 |
banana | 1.6.0 |
td-agent | 2.3.2 |
Solrインストール
こちらの手順で実施。6.1.0をインストール。コア作る前まで実施します。
Bananaインストール
次にダッシュボードなどフロントエンドで動くBananaインストールします。
Bananaをダウンロードします。
$ git clone https://github.com/lucidworks/banana.git
WARファイルのビルドのためにant入ってなければ入れておきます。
# yum -y install ant
先ほどダウンロードしたbananaディレクトリい入りantでWARファイルをビルドします。
$ cd banana/ $ ant Buildfile: /home/solr/banana/build.xml build-war: [war] Building war: /home/solr/banana/build/banana-1.6.0.war BUILD SUCCESSFUL Total time: 1 second
warファイルを インストール済みのSolrに組み込まれているJettyのWebappフォルダに配置します。
# cp ~/banana/build/banana-1.6.0.war /opt/solr/server/solr-webapp/webapp/banana.war
warファイルを利用できるようにjettyの設定を行います。
# vi /opt/solr/server/contexts/banana-context.xml
<?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd"> <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="contextPath"><Property name="hostContext" default="/banana"/></Set> <Set name="war"><Property name="jetty.base"/>/solr-webapp/webapp/banana.war</Set> <Set name="defaultsDescriptor"><Property name="jetty.base"/>/etc/webdefault.xml</Set> <Set name="extractWAR">false</Set> </Configure>
Solrを再起動します。
/etc/init.d/solr restart
ブラウザから繋ぐと以下のような画面が表示されるはずです。
http://hostname:8983/banana
この時点では以下のようなメッセージが表示されていると思いますが一旦無視します。
Error Collection not found at /solr/collection1. Please check your configuration or create the collection. If you're using a proxy ensure it is configured correctly.
Solr コア作成
vmstat用のコアを作成していきます。
$ su - solr $ /opt/solr/bin/solr create_core -c vmstats Copying configuration to new core instance directory: /var/solr/data/vmstats Creating new core 'vmstats' using command: http://localhost:8983/solr/admin/cores?action=CREATE&name=vmstats&instanceDir=vmstats { "responseHeader":{ "status":0, "QTime":731}, "core":"vmstats"}
コアが作成されました。
設定ファイルsolrconfig.xmlが生成されているので以下のように設定追加しておきます。
vi /var/solr/data/vmstats/conf/solrconfig.xml
<autoSoftCommit> <maxTime>${solr.autoSoftCommit.maxTime:10}</maxTime> </autoSoftCommit>
Solrを再起動してコアの設定完了です。
/etc/init.d/solr restart
管理画面からもvmstatsという名前でコアが作成されているのがわかります。
Fluentd導入
情報収集用のミドルウェアであるFluentdを導入します。
事前設定
まずは本家に沿って事前設定します。
インストール
インストールは以下のコマンドを実行するだけです。
# curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh
Installing Fluentd Using rpm Package | Fluentd
Fluentdで取得した情報をSolrに転送するためのSolr連携用のプラグインを導入します。
以下のコマンドでインストールできます。
# td-agent-gem install fluent-plugin-out-solr
Fluentd設定
設定ファイルに以下の内容を追記します。
# vi /etc/td-agent/td-agent.conf
<source> type exec command vmstat 1 2 | tail -n 1 | awk -v MYHOST=$(hostname) 'BEGIN{OFS="\t"} {print MYHOST,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17}' keys hostname,procs-r,procs-w,mem-swpd,mem-free,mem-buff,mem-cache,swap-in,swap-out,io-blockin,io-blockout,system-in,system-cs,cpu-usr,cpu-sys,cpu-idle,cpu-wait,cpu-steal format tsv tag vmstat run_interval 5s </source> <match vmstat> type solr host localhost port 8983 core vmstats include_tag_key true time_field event_timestamp tag_key tag utc flush_interval 3s </match>
後はFluentdを再起動します。
# /etc/init.d/td-agent restart
Fluentd動作確認
Solrの管理画面を見るとFluentdから転送されてきた情報が溜まっているのがわかります。
クエリもできます。
Bananaで情報可視化してみる
やっと準備ができたので、軽く触ってみました。
まずはBananaにアクセスしてみます。
http://hostname:8983/banana
相変わらずエラーメッセージ出てるので、まずはこれを消します。
画面右上の設定ボタンをクリックします。
SolrのタブにいきCollectionの項目にコア名を入力します。
この時点ではブラウザ更新すると設定が元に戻ってしまうのですが、以下の画像にある通り、SaveでSet as Browser Defaultとするとブラウザに設定を保存できます。
先ほどFlentdの設定でvmstatというタグをつけて情報を転送してきているので、その情報を抽出します。
例えばvmstatのMemoryのFree領域の情報をグラフ化してみます。
グラフ表示できました。