在使用ELK进行日志统计的时候,由于Kibana自身并没有身份验证的功能,任何人只要知道链接地址就可以正常登录到Kibana控制界面。由于日常的查询,添加日志和删除日志都是在同一个web 中进行,这样就有极高的安全隐患。任何人都有权限对其进行修改。
为了避免这一问题,可以使用Nginx的验证功能来代理Kibana.
[root@localhost ~] # wget https://download.elastic.co/kibana/kibana/kibana-7.4.0-linux-x64.tar.gz
[root@localhost ~]# tar xzvf kibana-7.4.0-linux-x64.tar.gz
文件目录结构如下:
[root@localhost ~] # ls
bin config installedPlugins LICENSE.txt node node_modules optimize package.json README.txt src webpackShims
[root@localhost ~] # cd config
[root@localhost ~] # vi kibana.yml
找到 # server.host,修改成以下:
server.host:“127.0.0.1”
找到 #server.basePath,修改成以下:
server.basePath: "/app/kibana"
[root@localhost ~] # cd ../bin
[root@localhost ~] # ./kibana
由于我们是配置在 localhost,所以是无法直接访问 Web 页面的。
可以使用 netstat 来检查缺省端口 5601,或者使用 curl:
[root@localhost ~]# curl localhost:5601
得到如下:
[root@localhost ~] # netstat -lntp|grep 5601
tcp 0 0 127.0.0.1:5601 0.0.0.0:* LISTEN 6034/node
Kibana安装启动成功!
Nginx 提供了反向代理服务,可以使外面的请求被发送到内部的应用上。
[root@localhost ~] # sudo vi /etc/yum.repos.d/nginx.repo
插入下方:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
[root@localhost ~] # sudo yum install nginx httpd-tools
[root@localhost ~] # cd /etc/nginx/conf.d
[root@localhost conf.d]# ls
default.conf
[root@localhost conf.d]# vim default.conf
在server内添加下面内容:
server{
。。。。。。
。。。。。。
//添加内容
location /app/kibana/ {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
proxy_pass http://127.0.0.1:5601/;
proxy_set_header Host $host:;
}
//结束
。。。。。。
}
我们要达到的结果是访问:http://服务器IP地址/kibana,就可以进入kibana首页
创建验证文件授权,需要先安装httpd-tools工具:
[root@localhost ~] # yum install -y httpd-tools
[root@localhost ~] # htpasswd -bc /etc/nginx/htpasswd.users admin 123 # 创建验证文件,并添加用户
Adding password for user admin
[root@localhost ~] # cat /etc/nginx/htpasswd.users
admin:$apr1$9AMiN0Ud$Q95cyrPix89nw3h3d4cwo0
[root@localhost ~] # nginx -t
[root@localhost ~] # systemctl start nginx
[root@localhost ~] # netstat -lntp|grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6085/nginx: master
访问http://192.168.11.129/app/kibana/
大家自己测试的时候输入服务器或者虚拟机的 ip/kibana/ 即可
输入刚才设置的用户名和密码 admin 123