一、项目背景
由于自己的项目不是采用Spring Cloud架构写的,而是用Maven POM的形式来构建自己项目的微服架构。通过把一个微服,用Docker进行独立部署。测试过程中,发送一个问题,就是一个用户请求过来,无法快速定位,用户是访问了哪台机器上的微服服务,得从Portainer上,一个一个看Docker的日志比较麻烦。所以想到了日志归集的问题。
经了解日志归集,一般用ELK(Elasticsearch+Logstash+Kibana)。经过部署发现真的很不错,很实用。能够实时查询访问日志。
二、部署
闲话少说,开干。由于ELK安装是没有用户密码的,为了安全,所以通过Docker安装了nginx,通过nginx反向代理,来实现登录EK,输入用户名和密码的功能。由于Docker的方便性,这里自定义了nginx镜像,nginx方向代理Docker Stack内部服务。只要暴露nginx端口,即可访问提供对外访问。具体步骤如下:
1、安装httpd-tools
$ yum install httpd-tools -y
2、设置一个用户密码
$ mkdir elk
$ cd elk
$ cd /app/services/elk
$ htpasswd -c passwd.db abctest@test.com
3、创建nginx配置文件site.conf
server {
listen 80;
serv