Kibana——通過Nginx代理Kibana並實現登陸認證


 

前言

在使用ELK進行日志統計的時候,由於Kibana自身並沒有身份驗證的功能,任何人只要知道鏈接地址就可以正常登錄到Kibana控制界面。

由於日常的查詢,添加日志和刪除日志都是在同一個web 中進行,這樣就有極高的安全隱患。任何人都有權限對其進行修改。

為了避免這一問題,可以使用Nginx的驗證功能來代理Kibana。

 

一、Nginx代理

說明:我的Kibana和Nginx部署在不同的服務器(正常情況下,建議Kibana和Nginx部署在同一台服務器上,將本地監聽IP改為127.0.0.1,只通過本地的nginx訪問,禁止外部直接訪問Kibana)。

Kibana版本為:6.2.8

1.配置Kibana

編輯kibana的配置文件,對server.basePath進行定義,配置路徑,然后重啟kibana。

vim /etc/kibana/kibana.yml

修改參數如下:
server.basePath: "/kibana"
server.host: "10.0.101.100"  #此配置下,如果要限制外部用戶直接訪問本機的5601端口,可以使用iptables進行限制(但因我的Nginx和Kibana不在同一台服務器,所以不進行限制,如果在同一台服務器上,則可以把屬性值設為127.0.0.1,然后進行5601端口限制)

注:如果 server.host: "127.0.0.1" ,則禁止了外部用戶直接訪問kibana頁面。

 

2.配置Nginx

編寫一個代理配置文件,然后重啟Nginx。

# cat /home/mppay/nginx/conf/nginx.conf
server { listen
80; server_name 172.24.115.4; location /kibana/ { proxy_pass http://10.0.101.100:5601/; proxy_set_header Host $host:$server_port; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; rewrite ^/kibana/(.*)$ /$1 break; } }

注:上面黑體的kibana要和kibana.yml中的server.basePath屬性值保持一樣。

 

3.訪問測試

最終訪問http://172.24.115.4/kibana/便可以訪問到代理的Kibana。

 

二、登陸認證

1.准備密碼文件

// 安裝工具包
yum install httpd-tools

// 生成密碼,用戶名 admin
htpasswd -c /home/mppay/nginx/conf/kibanauser admin

# 提示輸入2遍密碼
New password:
Re-type new password:
Adding password for user admin

htpasswd命令參數如下:

-c 創建passwdfile.如果passwdfile 已經存在,那么它會重新寫入並刪去原有內容.
-n 不更新passwordfile,直接顯示密碼
-m 使用MD5加密(默認)
-d 使用CRYPT加密(默認)
-p 使用普通文本格式的密碼
-s 使用SHA加密
-b 命令行中一並輸入用戶名和密碼而不是根據提示輸入密碼,可以看見明文,不需要交互
-D 刪除指定的用戶

2.修改Nginx配置文件

修改Nginx配置文件,增加登陸認證配置,然后重啟Nginx。

# cat /home/mppay/nginx/conf/nginx.conf
server {
    listen 80;
    server_name 172.24.115.4;
    location /kibana/ {
 auth_basic "secret";
        auth_basic_user_file /home/mppay/nginx/conf/kibanauser;
        proxy_pass http://10.0.101.100:5601/;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        rewrite ^/kibana/(.*)$ /$1 break;
    }
}  

 

3.訪問測試

再次訪問http://172.24.115.4/kibana/,會提示輸入用戶名和密碼。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM