kibanaのダッシュボードログイン時に、Basic認証をかけたいなどの理由で、前段にNginxが置く場合があります。
※Nginxをリバースプロキシとして利用
環境
kibanaバージョン:4.5.1
タイムアウトしてしまう問題
この構成で、ダッシュボード表示までに時間がかかるアクセス(バックエンドのDBからのレスポンスを待っている)を行うと、
以下のエラーが表示されることがあります。
自分の環境では、1分程度で上記エラーが表示されていました。
回避策
kibanaの設定
kibanaの設定に、DB(elasticsearch)からのリクエストタイムアウト値の設定があります。
/opt/kibana/config/kibana.yml
<中略>
# Time in milliseconds to wait for responses from the back end or elasticsearch.
# This must be > 0
elasticsearch.requestTimeout: 300000
<中略>
デフォルトでは300000ms(5分)と長めに設定されています。
1分程度で上記エラーが表示されていたので、この設定が原因ではなさそうです。
Nginxの設定
Nginxのデフォルトでは、Proxy転送しているサーバからの応答が60秒間無い場合に接続を切ります。
「proxy_read_timeout」の設定を追加することで、タイムアウト値を変更できます。
/etc/nginx/conf.d/default.conf
<中略>
location / {
proxy_pass http://127.0.0.1:5601;
proxy_redirect off;
proxy_read_timeout 300;
}
<中略>
単位は秒なので、「proxy_read_timeout 300;」で300秒(5分)になります。
上記Nginxの設定により、kibanaの「Visualize: Gateway Timeout」エラーが発生するまでの時間を緩和することができます。