Docker + goacces实现Nginx离线日志分析

Docker + goacces实现Nginx离线日志分析

  • 1.准备资料
      • (1)goaccess-1.3.tar.gz
      • (2)nginx-1.10.1.tar.gz(用于日志分析后的HTML展示)
      • (3)access.log(Nginx日志)
  • 2.编写DockerFile
  • 3.构建Docker镜像
      • (1) 所有文件置于同一文件夹
      • (2) window打开CMD cd入此目录输入构建命令,Linux直接cd进入目录构建镜像就行
  • 4.运行Docker镜像
  • 5.浏览器打开http://localhost:8089/查看结果

闲来无事利用docker镜像实现了对nginx日志的离线分析,可以得到网站页面访问量等统计量,难度不大水平不高,不喜勿喷

1.准备资料

(1)goaccess-1.3.tar.gz

(2)nginx-1.10.1.tar.gz(用于日志分析后的HTML展示)

(3)access.log(Nginx日志)

上述资料可在网上自行下载,懒得下的我已放在我的下载里面供大家下载,access.log就是我们需要分析展示的Nginx日志,如果想做在线日志分析可将DockerFile里的路径替换即可

2.编写DockerFile

注:goaccess-1.3.tar.gz、nginx-1.10.1.tar.gz、access.log放在同一文件夹,否则构建docker镜像不成功

FROM centos:7

ADD goaccess-1.3.tar.gz /var/
ADD nginx-1.10.1.tar.gz /var/
ADD access.log /logs/access.log

RUN mkdir html && \
    yum install -y gcc gcc-c++  && \
    yum install -y GeoIP-devel   goaccess-1.3  && \
    yum -y install gcc automake autoconf libtool make  && \
    yum install -y glib2 glib2-devel GeoIP-devel  ncurses-devel zlib zlib-devel && \
    yum clean  all && \
    cd  /var/goaccess-1.3 && \
    ./configure --enable-utf8 --enable-geoip=legacy && \
    make && make install && \

    cd /var/nginx-1.10.1 && \
    ./configure && \
    make && make install

CMD [ "sh", "-c","cd /usr/local/nginx/sbin/ &&  ./nginx  && cd /logs/ &&  goaccess  /logs/access.log -o /usr/local/nginx/html/index.html --config-file=/var/goaccess-1.3/config/goaccess.conf  --time-format='%H:%M:%S' --date-format='%d%b%Y' --log-format=COMBINED  --real-time-html "]



3.构建Docker镜像

(1) 所有文件置于同一文件夹

Docker + goacces实现Nginx离线日志分析_第1张图片

(2) window打开CMD cd入此目录输入构建命令,Linux直接cd进入目录构建镜像就行

构建命令:docker build -t imageName 路径(用.表示当前路径)
例:
	docker build -t goaccess .

构建完毕后输入docker images命令查看:
REPOSITORY     TAG        IMAGEID         CREATED             SIZE                                                                        
goaccess     latest    2f2fe2140eea    17 seconds ago         407MB

4.运行Docker镜像

容器内部Nginx端口为80,将80端口映射到宿主机8089端口(可自定义)并运行:

运行命令:docker run -dit -p 宿主机端口:容器内部端口 --name 容器名 镜像名

例:
	docker run -dit -p 8089:80  --name testgoaccess   goaccess

5.浏览器打开http://localhost:8089/查看结果

Docker + goacces实现Nginx离线日志分析_第2张图片

你可能感兴趣的:(docker,goaccess,Nginx,日志)