美文网首页
在Docker环境下使用GoAccess监控日志

在Docker环境下使用GoAccess监控日志

作者: 愤愤的有痣青年 | 来源:发表于2019-11-12 16:18 被阅读0次

    GoAccess是一款开源的日志监控程序,其提供了很多监控日志的方式,其中包括生成一个可视化的html文件.

    • 其控制页面如图:
      可视化控制台

    本文讲述的是使用在docker环境下搭建监控平台,如下为搭建步骤,注意的是,在我这边日志文件在宿主主机上的路径为
    /var/log/nginx/access.log, 生成的静态html文件存储在/mnt/static目录下.

      1. 下载ubuntu16.4镜像
        docker pull ubuntu:16.04
      1. 创建并进入容器
        docker run -it -v /var/log/nginx/:/var/logs/nginx -v /mnt/static:/home/static -v /etc/localtime:/etc/localtime --name nginx_log ubuntu /bin/bash
      1. 进入容器后,更新系统环境及下载依赖库
        apt-get update && apt-get install -y vim libncursesw5-dev gcc make libgeoip-dev libtokyocabinet-dev build-essential wget
      1. 下载GoAccess源码
        wget http://tar.goaccess.io/goaccess-1.3.tar.gz
      1. 解压并进入目录
        tar -xzvf goaccess-1.3.tar.gz && cd goaccess-1.3
      1. 编译并安装源码
        ./configure --enable-utf8 --enable-geoip=legacy && make && make install
      1. 修改GoAccess配置文件
        vim /usr/local/etc/
        末尾加入:
    log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
    date-format %d/%b/%Y
    time-format %H:%M:%S
    real-time-html true
    port 618
    output /home/static/index.html
    

    需要注意的是,上面的log-format参数值对应的是nginx的日志格式,我这边nginx的日志格式如下:

    log_format  main '$remote_addr - $remote_user [$time_local] "$request" $http_host '
                            '$status $request_length $body_bytes_sent "$http_referer" '
                            '"$http_user_agent"  $request_time $upstream_response_time';
    
      1. 生成html
        goaccess -a -d -f /var/logs/nginx/access.log -p /usr/local/etc/goaccess/goaccess.conf -o /home/static/index.html
        执行完成后将会有/home/static/index.html文件,使用浏览器打开即可,也可以通过配置nginx静态文件路径来访问.
      1. 周期生成html文件
    apt-get install cron
    vim /etc/cron.task
    

    添加

    0 * * * * goaccess -a -d -f /var/logs/nginx/access.log -p /usr/local/etc/goaccess/goaccess.conf -o /home/static/index.html
    保存后执行crontab /etc/cron.task
    然后每个小时都会执行一遍该程序

    最后就是直接关掉当前窗口即可使容器在后台运行

    相关文章

      网友评论

          本文标题:在Docker环境下使用GoAccess监控日志

          本文链接:https://www.haomeiwen.com/subject/kenfictx.html