nginxでkibanaを配信する / nginxをelasticsearchのリバースプロキシとする
タグ: nginxkibanaelasticsearch / 初版公開: 2014-05-09

はじめに

kibanaやelasticsearchはアクセス制限の仕組みを持っていないので、インターネット上のホストにこれらのソフトをインストールして使用するには、HTTPサーバでアクセスアクセス制限を行うしかない。

今回はnginxを使ってkibanaを配信するとともに、nginxをelasticsearchのリバースプロキシとして、両方にBASIC認証でアクセス制限をかける方法を紹介する。

nginx

設定の前提は以下のとおり。 実際には自分の環境に沿って読み替えること。

  • kibanaとelasticsearchにアクセスするドメインはexample.com
  • kibanaは/var/wwwに設置されている
  • パスワードファイルは/etc/nginx/htpasswdに設定されている
  • elasticsearchはlocalhost:9200で動作している
server {
  listen 80; 
  server_name example.com;
  root /var/www;
  auth_basic 'closed site';
  auth_basic_user_file /etc/nginx/htpasswd;

  location /es/ {
    proxy_pass http://127.0.0.1:9200/;
  }
}

これでhttp://example.com/でkibanaを配信し、http://example.com/es/のアクセスがelasticsearchに転送されるようになる。

kibana

ブラウザから見たelasticsearchのアクセス先はhttp://example.com/es/だ。 これを踏まえてkibanaのconfig.jselasticsearch:の行を以下のようにする。

elasticsearch: "http://example.com/es",

おわりに

以上でkibanaを配信する設定、elasticsearchのリバースプロキシの設定が完了した。 さっそくhttp://example.com/にアクセスしよう。 正しく設定できていれば、これでkibanaとelasticsearchにアクセス制限をかけつつ、kibanaが正しく動作するはずだ。