Docker大法好
1. docker安装ELK
- Pull elk镜像
docker pull sebp/elk
- 宿主机目录准备
mkdir -p /data/elk/conf.d
mkdir -p /data/elk/data
上传log配置文件及kibana配置文件到/data/elk/conf.d/
kibana配置文件如下: server.host: "0.0.0.0" server.basePath: "/log" server.rewriteBasePath: true i18n.locale: "zh-CN" 其中: server.basePath:如果您在代理后面运行,则可以指定安装Kibana的路径。使用server.rewriteBasePath设置告诉Kibana是否应从其收到的请求中删除basePath,并防止在启动时发生弃用警告。此设置不能以斜杠(/)结尾。 server.rewriteBasePath:默认值:false指定Kibana是否应重写以server.basePath为前缀的请求,或者要求它们由反向代理重写。在Kibana 6.3之前,此设置实际上始终为false,并且在Kibana 7.0中默认为true。
- 运行
docker run -d -p 5601:5601 -p 9200:9200 -p 5044:5044 -p 3000:3000 -e ES_MIN_MEM=1g -e ES_MAX_MEM=2g -v /data/elk/data:/var/lib/elasticsearch -v /data/elk/conf.d/logstash-tcp.conf:/etc/logstash/conf.d/30-output.conf -v /data/elk/conf.d/kibana.yml:/opt/kibana/config/kibana.yml -v /etc/localtime:/etc/localtime:ro --name elk sebp/elk
2. 生成授权文件
yum install -y httpd-tools
htpasswd -bc /data/nginx/conf/conf.d/htpasswd.users admin '12#$56'
cat /data/nginx/conf/conf.d/htpasswd.users
3. nginx配置二级目录代理
配置如下:
server {
listen 80;
server_name 127.0.0.1 localhost;
access_log off;
location ^~ /log {
allow all;
auth_basic "Restricted Access";
auth_basic_user_file /data/nginx/conf/conf.d/htpasswd.users; #登录验证
proxy_pass http://<IP>:5601/log;
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;
}
...
}
访问地址:http://IP
用户名:admin
密码:12#$56