1. 程式人生 > >Kibana通過nginx驗證登陸

Kibana通過nginx驗證登陸

前段時間公司用需要用到elk日誌採集,而kibana本身是由node.js寫成,本身沒有登陸限制。這使一些日誌的資料就不是那麼安全,所以這裡我們通過nginx的驗證登陸到kibana。這樣作有幾個好處:

第一:為kibana加上了使用者登陸訪問

第二:不暴露伺服器上5601埠,只開放80埠即可。這對伺服器的安全也是一個很大的保護。

接下來我們就開始配置nginx與kibana。其中nginx的安裝這裡不作詳述,大家可以去看筆者另一篇文章:centos下安裝nginx

一、配置nginx

首先開啟nginx的配置檔案

vim /usr/local/nginx/conf/nginx.conf

在server中的localhost /{}中配置

server {
  listen       80;
  server_name localhost;
  location / {
     auth_basic "secret";
     auth_basic_user_file /usr/local/nginx/db/passwd.db;
     proxy_pass http://localhost:5601;
     proxy_set_header Host $host:5601;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_set_header Via "nginx";
  }
}

這裡定義了從80埠進來的請求,若無關鍵字則由/代理到本機的5601埠。這裡需要注意,kibana的代理必須在/下,不能加上關鍵字,不然這會報錯“重定向次數過多”。其次,上面定義了安置密碼的路徑,這裡我們需要在nginx目錄下建立db資料夾

mkdir /usr/local/nginx/db

二、配置登陸使用者帳號密碼

我們要先安裝httpd外掛

yum install -y httpd

之後在輸入建立使用者命令

htpasswd -c /usr/local/nginx/db/passwd.db user
其中的user可以更換為自己想要的使用者名稱(上面的路徑需要和nginx裡配置的密碼路徑一致)。回車後,會提示輸入密碼倆次。輸入一致後就完成使用者的建立,這是我們可以vim下passwd.db看看,裡面是加密過後的密碼。

三、訪問kibana

這時候再去訪問kibana,無需帶上埠。只要訪問ip或者域名,就會有提示框提示輸入帳號密碼。就完成為kibana配置使用者的步驟了。