zoukankan      html  css  js  c++  java
  • elk系统通过nginx添加对kibana的登录认证

    elk系统添加对kibana的登录认证

    关于elk系统的安装配置可以参考:Centos6.5安装Logstash ELK stack 日志管理系统及使用详解

    http://blog.csdn.net/reblue520/article/details/52799274

    kibana是nodejs开发的,本身并没有任何安全限制,直接浏览url就能访问,如果公网环境非常不安全,可以通过nginx请求转发增加认证,方法如下:


    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;
      }

    }


  • 相关阅读:
    Sql server 中count(1) 与 sum(1) 那个更快?
    Sql server 中count() 与 sum() 的区别
    ASP.Net Core 运行错误 Http Error 502.5 解决办法
    什么是语法糖?
    int和Integer有什么区别?如何相互转换呢?
    面向对象的基本特征有哪些方面?
    谈谈final finally finalize区别
    Overload和Override的区别
    String s=new String(“xyz”);创建了几个String Object?
    Gc是什么?为什么要有Gc?
  • 原文地址:https://www.cnblogs.com/reblue520/p/6239690.html
Copyright © 2011-2022 走看看