ELK利用nginx配置登录认证

elk本身是没有登录认证之类的,故采用nginx拦截认证转发。
1.获取elk基础镜像    https://hub.docker.com/r/sebp/elk/ 可查看其Dockerfile
     docker pull sebp/elk
2.在elk基础镜像 基础之上 安装nginx。制作Dockerfile 如下
     FROM sebp/elk:latest
     MAINTAINER Chao.Yang <13689028340@163.com>
     RUN apt-get install -y nginx && rm -rf /var/lib/apt/lists/* && echo "\ndaemon off;" >> /etc/nginx/nginx.conf && chown -R      www-data:www-data /var/lib/nginx
     RUN echo "Asia/Shanghai" > /etc/timezone && dpkg-reconfigure -f noninteractive tzdata
     ADD run.sh /run.sh
     RUN chmod 755 /*.sh
     VOLUME ["/etc/nginx/sites-enabled", "/etc/nginx/certs", "/etc/nginx/conf.d", "/var/log/nginx"]
     WORKDIR /etc/nginx
     EXPOSE 80
     EXPOSE 443
     ENTRYPOINT ["/run.sh" ]
3.编写启动脚本run.sh 如下:
     #!/bin/bash
     #start elk
     /usr/local/bin/start.sh &
     # start nginx 
     /usr/sbin/nginx
     exec "$@"
4.创建一个自己的镜像
     docker build -t young/elk-nginx:1.0 .
5.run容器
     docker run -d -p 8070:80 --name elk-nginx  young/elk-nginx:1.0
6.配置nginx配置文件 修改部分 如下:
     server {
  listen 80;
  server_name localhost;
  location / {
  root /opt/kibana;
  auth_basic "Restricted";
  auth_basic_user_file /etc/nginx/site_pass;
  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";
  #index index.html index.htm;
  }
  access_log off;
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
           root html;
  }
   }
7.第6步中的用户及密码文件 site_pass 。可在线生成(需采用crypt加密算法) http://tool.oschina.net/htpasswd
     young:/BeEznKkm0AOw
8.如果在容器中vi编辑有问题,可将相关文件烤出到宿主机,修改后再烤到容器相关地方。
     nginx配置文件路径 /etc/nginx/nginx.conf  
     docker cp 
9.restart 容器。ok
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值