Kibana使用Nginx代理验证

简介:

需求实现

在使用ELK进行日志统计的时候,由于Kibana自身并没有身份验证的功能,任何人只要知道链接地址就可以正常登录到Kibana控制界面。由于日常的查询,添加日志和删除日志都是在同一个web 中进行,这样就有极高的安全隐患。任何人都有权限对其进行修改。
为了避免这一问题,可以使用Nginx的验证功能来代理Kibana.

安装配置Kibana

在官方下载对应的RPM包进行安装,链接:https://www.elastic.co/downloads/kibana 
这里以kibana-5.6.5-x86_64为例,上传kibana-5.6.5-x86_64.rpm包到主机:

[root@node1 ~]# yum install java-1.8.0-openjdk-devel -y
[root@node1 ~]# yum install kibana-5.6.5-x86_64.rpm  -y

配置Kibana:

[root@node1 ~]# grep "^[a-z]" /etc/kibana/kibana.yml
server.port: 5601
server.host: "192.168.20.60"  # 端口监听地址,此时配置用于测试
elasticsearch.url: "http://192.168.20.61:9200"

启动:

[root@node1 ~]# systemctl start kibana
[root@node1 ~]# netstat -lntp|grep 5601
tcp        0      0 192.168.20.60:5601      0.0.0.0:*               LISTEN      5897/node       

使用5601端口访问网页正常,将本地监听IP改为127.0.0.1,只通过本地的nginx访问,禁止外部直接访问Kibana:

[root@node1 ~]# grep "^[a-z]" /etc/kibana/kibana.yml
server.port: 5601
server.host: "127.0.0.1"
elasticsearch.url: "http://192.168.20.61:9200"

重启Kibana,查看本地监听端口:

[root@node1 ~]# systemctl restart kibana
[root@node1 ~]# netstat -lntp|grep 5601
tcp        0      0 127.0.0.1:5601          0.0.0.0:*               LISTEN      6034/node 

安装配置Nginx

直接使用yum的方式安装:

[root@node1 ~]# yum install nginx -y

添加配置文件:

[root@node1 ~]# vim /etc/nginx/conf.d/kibana.conf
#添加如下内容

upstream kibana_server {
        server  127.0.0.1:5601 weight=1 max_fails=3  fail_timeout=60;
}

server {
        listen 80;
        server_name 192.168.20.60;
        auth_basic "Restricted Access";      # 验证
        auth_basic_user_file /etc/nginx/htpasswd.users;             # 验证文件
        location / {
        proxy_pass http://kibana_server;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        }
}

配置验证

创建验证文件授权,需要先安装httpd-tools工具:

[root@node1 ~]# yum install -y  httpd-tools 
[root@node1 ~]# htpasswd -bc /etc/nginx/htpasswd.users admin password # 创建验证文件,并添加用户
Adding password for user admin
[root@node1 ~]# cat /etc/nginx/htpasswd.users 
admin:$apr1$9AMiN0Ud$Q95cyrPix89nw3h3d4cwo0

如果要添加多个用户密码可以使用如下命令:

[root@node1 ~]# htpasswd -b /etc/nginx/htpasswd.users try trying
Adding password for user try
[root@node1 ~]# cat /etc/nginx/htpasswd.users 
admin:$apr1$9AMiN0Ud$Q95cyrPix89nw3h3d4cwo0
try:$apr1$s5QCG32f$9KQFhsiw.PYmmmst.5r/q1

启动nginx:

[root@node1 ~]# nginx -t
[root@node1 ~]# systemctl start nginx
[root@node1 ~]# netstat -lntp|grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      6085/nginx: master  

再次使用IP登录时,就需要输入用户名和密码。
可以通过使用status查看系统的当前状态:
http://192.168.20.60/status


 本文转自 酥心糖 51CTO博客,原文链接:http://blog.51cto.com/tryingstuff/2049877


相关文章
|
6月前
|
网络协议 应用服务中间件 nginx
nginx配置tcp协议代理的日志
nginx配置tcp协议代理的日志
145 0
|
7月前
|
Prometheus Cloud Native 应用服务中间件
nginx 代理 prometheus
nginx 代理 prometheus
116 0
|
7月前
|
存储 应用服务中间件 文件存储
Nginx代理作为文件服务器
Nginx代理作为文件服务器
|
7月前
|
应用服务中间件 nginx
|
5月前
|
缓存 JavaScript 应用服务中间件
Nginx+Tomcat代理环境下JS无法完全加载问题
Nginx+Tomcat代理环境下JS无法完全加载问题
|
26天前
|
数据可视化 应用服务中间件 网络安全
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
Nginx Proxy Manager是一款强大的代理服务器管理工具,提供简单直观的界面来配置和管理Nginx代理服务器,帮助用户轻松提升配置的简洁性和便捷性。
44 0
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
|
30天前
|
NoSQL 关系型数据库 MySQL
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
Docker安装详细步骤及相关环境安装配置(mysql、jdk、redis、自己的私有仓库Gitlab 、C和C++环境以及Nginx服务代理)
185 0
|
3月前
Nginx---代理遇到的坑
Nginx---代理遇到的坑
18 1
|
4月前
|
域名解析 网络协议 应用服务中间件
百度搜索:蓝易云【服务器配置到云上nginx代理?】
现在,您的云服务器已经配置为使用Nginx代理了。通过访问您的域名,请求将被转发到云服务器上的指定端口,并由Nginx进行代理。请确保在配置和使用过程中注意安全性和网络设置,并根据您的需求进行相应调整。
40 0
|
4月前
|
应用服务中间件 nginx Python
nginx代理目录
nginx代理目录
47 1