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配置用户的步骤了。

你可能感兴趣的:(ELK,centos)