外部からKibanaにアクセスしたい時に、Kibana3は標準設定だと、クライアントからElasticsearchに直接通信(default:9200)するが、それは避けたいというケースが多いと思う。
※FWとかで制限している環境だと、9200とか開けたくないですよねという話です!
なので、下記のような感じでリバプロでkibanaとElasticsearchにアクセスする簡単な手順
イメージ
下記のような構成にする。
クライアントは、下記でkibanaにアクセスするイメージ
【client】
※Kibanaの画面 y.y.y.y:80/kibana3/
※kibanaでのグラフ描画時のアクセス y.y.y.y:80/es/
↓
【Apache(y.y.y.y:80)】
※y.y.y.y:80/es/ →x.x.x.x:9200にリバプロする
↓
【Elasticseach(x.x.x.x:9200)】
Apahce
kibanaをホストするVirtualHostディレクティブに下記を追加
ProxyPass /es/ http://x.x.x.x:9200/
ProxyPassReverse /es/ http://x.x.x.x:9200/
kibana
kibanaがアクセスするElasticseachをリバプロ設定しているパスに変更する。(y.y.y.y:8080/es/のようにスタティックで書いてもよいがグローバルIP振って更に上でNATしているようなケースもあるのでhostnameは動的に取得する下記の方が便利)
config.js
elasticsearch: "http://"+window.location.hostname+":80/es/",
Elasticseach
1.4以降の場合は、クロスドメインアクセスを許可する下記の設定が入っているか確認する。
elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "/.*/"
これ入ってないと下記のようなエラーが出る。。。。
簡単ですが一応シェア!