すべてのkibana 4ダッシュボードを保存するには、auth_basic nginx認証が必要ですが、認証なしで誰でもダッシュボードを表示できるようにします。
最近、DigitalOcean tutorial を使用してUbuntu 14.04にELK(Elasticsearch 1.4.5、Logstash 1:1.5.2-1、およびKibana 4.1.1)スタックをインストールしました。
Kibanaはブラウザベースのjavascriptを使用してクエリをelasticsearchに送信するため、何を保護するかを理解する方法がわかりません。
DigitalOceanは、kibana4へのアクセスを完全に保護するためのnginx構成を提供します。
FILE:/etc/nginx/sites-available/default
server {
listen 80;
return 301 https://logstash.nyc.3top.com;
}
server {
listen 443;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
server_name logstash.example.com;
access_log /var/log/nginx/kibana.access.log;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $Host;
proxy_cache_bypass $http_upgrade;
}
}
Elasticはnginxを提供しました sample config これをKibana 3で実現しましたが、Kibana4では実現しませんでした。
server {
listen *:80 ;
server_name kibana.myhost.org;
access_log /var/log/nginx/kibana.myhost.org.access.log;
location / {
root /usr/share/kibana3;
index index.html index.htm;
}
location ~ ^/_aliases$ {
proxy_pass http://127.0.0.1:9200;
proxy_read_timeout 90;
}
location ~ ^/.*/_aliases$ {
proxy_pass http://127.0.0.1:9200;
proxy_read_timeout 90;
}
location ~ ^/_nodes$ {
proxy_pass http://127.0.0.1:9200;
proxy_read_timeout 90;
}
location ~ ^/.*/_search$ {
proxy_pass http://127.0.0.1:9200;
proxy_read_timeout 90;
}
location ~ ^/.*/_mapping {
proxy_pass http://127.0.0.1:9200;
proxy_read_timeout 90;
}
# Password protected end points
location ~ ^/kibana-int/dashboard/.*$ {
proxy_pass http://127.0.0.1:9200;
proxy_read_timeout 90;
limit_except GET {
proxy_pass http://127.0.0.1:9200;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/conf.d/kibana.myhost.org.htpasswd;
}
}
location ~ ^/kibana-int/temp.*$ {
proxy_pass http://127.0.0.1:9200;
proxy_read_timeout 90;
limit_except GET {
proxy_pass http://127.0.0.1:9200;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/conf.d/kibana.myhost.org.htpasswd;
}
}
}
Kibana 4でこれを行う方法を知っている人はいますか?
これがelasticsearchとkibanaの設定ファイルです。
/etc/elasticsearch/elasticsearch.yml
network.Host: localhost
/opt/kibana/config/kibana.yml
port: 5601
Host: "localhost"
elasticsearch_url: "http://localhost:9200"
elasticsearch_preserve_Host: true
kibana_index: ".kibana"
default_app_id: "discover"
request_timeout: 300000
shard_timeout: 0
verify_ssl: true
bundled_plugin_ids:
- plugins/dashboard/index
- plugins/discover/index
- plugins/doc/index
- plugins/kibana/index
- plugins/markdown_vis/index
- plugins/metric_vis/index
- plugins/settings/index
- plugins/table_vis/index
- plugins/vis_types/index
- plugins/visualize/index
SearchGuardをご覧ください。 Elasticのセキュリティアドオンに似ていますが、無料です。
基本的に、ElasticsearchとKibanaに認証をさらに統合せずに、Kibana4でこれを行う簡単な方法はありません。
ログの保存がPOSTを介して行われる場合は、すべてのPOSTリクエストで認証を要求できます。From 別のサーバー障害の回答 :
limit_except GET HEAD {
auth_basic 'Restricted';
auth_basic_user_file /path/to/userfile;
}