• 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/,会提示输入用户名和密码。

  • 相关阅读:
    微信和支付宝支付模式详解及实现(.Net标准库)- OSS开源系列
    Linux+Nginx+Asp.net Core及守护进程部署
    Docker基础入门及示例
    this的指向问题
    H5C3-JS 此后面试暂不记录了 因为我发现了错题集,直接看就行了
    H5C3-JS day04
    H5C3-JS day03
    two-sum
    H5C3-JS day02
    三次握手四次挥手
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/14874997.html
Copyright © 2020-2023  润新知