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

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
然后每个小时都会执行一遍该程序

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 7,931评论 0 3
  • 大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个location配置块使用了多个 Nginx 模块...
    SkTj阅读 12,456评论 0 12
  • 第一本Docker书 自动精简配置: thin-provisioning加载device-mapper模块sudo...
    崩芭大酱阅读 6,577评论 0 16
  • 引言 这段时候主攻云服务 服务器 CentOS 文件目录 操作 基本操作: Docker简介: 安装Docker:...
    采香行处蹙连钱阅读 4,932评论 0 1
  • 看多太多的感情故事,而这样的事情真正的发生在我的身上的时候我还是不知所措,2016年12月18日 我们分手了。 我...
    9胤祥9阅读 1,378评论 0 0

友情链接更多精彩内容