elk系統通過nginx新增對kibana的登入認證
http://blog.csdn.net/reblue520/article/details/52799274
1、參考以下內容,修改配置檔案:
mkdir -p /data/nginx/db/
vim /etc/nginx/conf.d/elk.conf
server {
listen 80;
server_name elk.chinasoft.com 192.168.3.17;
location / {
auth_basic "secret";
auth_basic_user_file /data/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";
}
access_log off;
}
檢查nginx語法報錯:
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)
解決辦法:
vim /etc/nginx/conf.d/default.conf
將
listen 80 default_server;
listen [::]:80 default_server;
改為:
listen 80;
#listen [::]:80 default_server;
上面的配置表示將elk.chinasoft.com的請求,轉發到伺服器的5601埠,同時使用最基本的使用者名稱、密碼來認證。
2、配置登入使用者名稱,密碼
htpasswd -c /data/nginx/db/passwd.db elkadmin
注意passwd.db的路徑要跟nginx配置中的一致,最後的elkadmin為使用者名稱,可以隨便改,輸入完該命令後,系統會提示輸入密碼,完成後passwd.db中就有加密後的密碼了,有興趣的可以cat看下。
提示:htpasswd是apache自帶的小工具,如果找不到該命令,嘗試用yum install httpd安裝
安裝以後建議修改vim /etc/httpd/conf/httpd.conf 監聽其他非80埠
也可以通過其他nginx的代理訪問,如下:
elk.conf
server {
server_name elk.chinasoft.com
access_log /data/logs/elk_access.log;
error_log /data/logs/elk_error.log info;
location / {
auth_basic "secret";
auth_basic_user_file /data/nginx/db/passwd.db;
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
#proxy_pass http://flows_admin;
proxy_pass http://u04elk.yaya.corp:5601;
}
}
在資料量較大的場景下,kibana展示資料會超時,此時需要修改nginx和kibana的超時配置
需要在nginx.conf
加入如下引數:
keepalive_timeout 6500;
send_timeout 6500;
fastcgi_buffers 16 128k;
proxy_connect_timeout 6500;
針對kibana.conf的引數
server {
listen 80;
server_name 1.1.1.1;
proxy_connect_timeout 6500s;
location / {
proxy_connect_timeout 6500s;
proxy_read_timeout 6500s;
auth_basic "secret";
auth_basic_user_file /data/nginx/db/passwd.db;
proxy_pass http://192.168.1.10:9529;
proxy_set_header Host $host:9529;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}
access_log off;
}
kibana本身的配置
kibana.yml
server.port: 9529
server.host: "192.168.1.10"
elasticsearch.url: "http://192.168.1.10:9200"
elasticsearch.pingTimeout: 600000
elasticsearch.requestTimeout: 18000000