用nginx给kibana、elasticsearch做权限认证

最近一直使用logstash+elasticsearch+kibana作日志分析,通过kibana来查看报表的各种panel,但是每次查看都需要拨线上的VPN,比较麻烦,于是就想到用nginx来给kibana和elasticsearch作个权限认证。认证成功的效果如下:



呵呵,得瑟下。好了,废话不多说,直接上配置。

1、配置nginx密码:nginx可以为网站或目录甚至特定的文件设置密码认证。密码必须是crypt加密的。可以用apache的htpasswd来创建密码。

格式为:htpasswd -b -c site_pass username password

site_pass为密码文件。放在同nginx配置文件同一目录下,当然你也可以放在其它目录下,那在nginx的配置文件中就要写明绝对地址或相对当前目录的地址。

配置文件:

nginx_kibana_auth.conf


<pre name="code" class="html">worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}

http {

include       mime.types;
default_type  application/octet-stream;
 
server {
  listen                *:80 ;
  server_name           ip;
  location / {
    #你的Kibana地址。
    root  /data/kibana;
    index  index.html index.htm;
    auth_basic "Restricted";
	#你的nginx密码文件地址
    auth_basic_user_file /usr/local/nginx/conf/site_pass_team;
  }
 
  location ~ ^/_aliases$ {
    proxy_pass http://ip:9200;
    proxy_read_timeout 90;
  }
  location ~ ^/.*/_aliases$ {
    proxy_pass http://ip:9200;
    proxy_read_timeout 90;
  }
  location ~ ^/_nodes$ {
    proxy_pass http://ip:9200;
    proxy_read_timeout 90;
  }
  location ~ ^/.*/_search$ {
    proxy_pass http://ip:9200;
    proxy_read_timeout 90;
  }
  location ~ ^/.*/_mapping$ {
    proxy_pass http://ip:9200;
    proxy_read_timeout 90;
  }
 
  # Password protected end points
  location ~ ^/kibana-int/dashboard/.*$ {
    proxy_pass http://ip:9200;
    proxy_read_timeout 90;
    limit_except GET {
      proxy_pass http://ip:9200;
      auth_basic "Restricted";
      #你的nginx密码文件地址,如果需要在保存panel时新加认证,多生成一份不用账号密码的文件即可。
      auth_basic_user_file /usr/local/nginx/conf/site_pass_support;
    }
  }
  location ~ ^/kibana-int/temp.*$ {
    proxy_pass http://ip:9200;
    proxy_read_timeout 90;
    limit_except GET {
      proxy_pass http://ip:9200;
      auth_basic "Restricted";
      #你的nginx密码文件地址,如果需要在保存panel时新加认证,多生成一份不用账号密码的文件即可。
      auth_basic_user_file /usr/local/nginx/conf/site_pass_support;
    }
  }
}
}


 
 

2、开通外网域名,映射到服务器上nginx监听的80端口。


3、修改kibana下的config.js,将elasticsearch: "http://"+window.location.hostname+":9200",修改为elasticsearch: "http://"+window.location.hostname+":80",即可。


4、启动nginx时指定nginx_kibana_auth.conf配置文件即可。


本文允许转载,但请保留出处:http://blog.csdn.net/u011419453/article/details/39395627


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些安装步骤。 1. 安装Nginx最新版 首先,安装一些必要的依赖项: ``` sudo dnf install epel-release sudo dnf install nginx ``` 安装后,启动Nginx服务: ``` sudo systemctl start nginx ``` 可以使用以下命令检查Nginx是否正在运行: ``` sudo systemctl status nginx ``` 2. 安装MySQL 8 安装MySQL 8之前,需要添加MySQL存储库并导入MySQL GPG密钥。 ``` sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm sudo yum install mysql-server ``` 安装后,启动MySQL服务: ``` sudo systemctl start mysqld ``` 可以使用以下命令检查MySQL是否正在运行: ``` sudo systemctl status mysqld ``` 3. 安装PHP8 安装PHP8之前,需要添加Remi存储库并导入Remi GPG密钥。 ``` sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm sudo dnf install php php-fpm php-mysqlnd php-json php-mbstring ``` 安装后,启动PHP-FPM服务: ``` sudo systemctl start php-fpm ``` 可以使用以下命令检查PHP-FPM是否正在运行: ``` sudo systemctl status php-fpm ``` 4. 安装phpMyAdmin 安装phpMyAdmin之前,需要安装EPEL存储库: ``` sudo dnf install epel-release ``` 安装phpMyAdmin: ``` sudo dnf install phpMyAdmin ``` 安装后,编辑phpMyAdmin配置文件: ``` sudo vi /etc/httpd/conf.d/phpMyAdmin.conf ``` 将以下行中的IP地址替换为您的服务器IP地址: ``` Require ip 127.0.0.1 ``` 然后,重启Apache服务: ``` sudo systemctl restart httpd ``` 5. 安装LogAnalyzer 安装LogAnalyzer之前,需要安装EPEL存储库和Remi存储库。 ``` sudo dnf install epel-release sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm ``` 安装LogAnalyzer: ``` sudo dnf install logwatch logwatch-logrotate logwatch-cron logwatch-doc sudo dnf install logwatch httpd php php-gd php-mbstring sudo dnf install rsyslog-mysql ``` 安装后,编辑LogAnalyzer配置文件: ``` sudo vi /etc/httpd/conf.d/loganalyzer.conf ``` 将以下行中的IP地址替换为您的服务器IP地址: ``` Allow from 127.0.0.1 ``` 然后,重启Apache服务: ``` sudo systemctl restart httpd ``` 6. 安装logstash和kibana 安装logstash和kibana之前,需要添加Elastic存储库和导入Elastic GPG密钥。 ``` sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo vi /etc/yum.repos.d/elasticsearch.repo ``` 将以下内容添加到文件中: ``` [elasticsearch-7.x] name=Elasticsearch repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md ``` 保存并退出文件,然后安装logstash和kibana: ``` sudo dnf install logstash kibana ``` 安装后,编辑Logstash配置文件: ``` sudo vi /etc/logstash/conf.d/log.conf ``` 将以下内容添加到文件中: ``` input { file { path => "/var/log/nginx/access.log" start_position => "beginning" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } } output { elasticsearch { hosts => ["localhost:9200"] index => "nginx-access-%{+YYYY.MM.dd}" } } ``` 保存并退出文件,然后启动Logstash服务: ``` sudo systemctl start logstash ``` 可以使用以下命令检查Logstash是否正在运行: ``` sudo systemctl status logstash ``` 编辑Kibana配置文件: ``` sudo vi /etc/kibana/kibana.yml ``` 将以下行中的IP地址替换为您的服务器IP地址: ``` server.host: "localhost" ``` 然后,启动Kibana服务: ``` sudo systemctl start kibana ``` 可以使用以下命令检查Kibana是否正在运行: ``` sudo systemctl status kibana ``` 至此,CentOS 8稳定版上安装了Nginx最新版、MySQL 8、PHP8、phpMyAdmin、LogAnalyzer、logstash和kibana

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值