goaccess geoip 测试

goaccess 是一个很不错的日志实时统计分析工具,我们可以用来方便的分析nginx apcahe iis 等的日志信息
对于geoip 的支持是需要源码编译的,所以基于官方docker 镜像添加了geoip 的支持

dockerfile

# Builds a goaccess image from the current working directory:
FROM alpine:edge
WORKDIR /goaccess
RUN wget https://tar.goaccess.io/goaccess-1.3.tar.gz
RUN tar -xzvf goaccess-1.3.tar.gz
RUN cd goaccess-1.3/
ARG build_deps="build-base ncurses-dev autoconf automake git gettext-dev"
ARG runtime_deps="tini ncurses libintl gettext openssl-dev"
RUN apk update && \
    apk add -u $runtime_deps $build_deps geoip-dev && \
    wget -O goaccess-1.3.tar.gz https://tar.goaccess.io/goaccess-1.3.tar.gz && \
    tar -xzvf goaccess-1.3.tar.gz && \
    cd goaccess-1.3 && \
    autoreconf -fiv && \
    ./configure --enable-utf8 --enable-geoip=legacy --with-openssl && \
    make && \
    make install && \
    apk del $build_deps && \
    rm -rf /var/cache/apk/* /tmp/goaccess/* /goaccess
VOLUME /srv/data
VOLUME /srv/logs
VOLUME /srv/report
EXPOSE 7890
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["goaccess", "--no-global-config", "--config-file=/srv/data/goaccess.conf"]

docker-compose 文件

version: "3"
services:
  log:
    image: dalongrong/goaccess-geo
    ports:
    - "7890:7890"
    volumes: 
    - "./data:/srv/data"
    - "./logs:/srv/logs"
    - "./html:/srv/report"
    - "./geoip/:/src/geoip/"
  web:
    image: nginx
    ports: 
    - "8080:80"
    volumes: 
    - "./html/:/usr/share/nginx/html/"

goaccess 配置文件

data/goaccess.conf

geoip-database /src/geoip/GeoLiteCity.dat
log-format COMBINED
real-time-html true
log-file /srv/logs/access.log
output /srv/report/index.html

geoip 下载地址

http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

启动&&测试

  • copy log 文件

    就是一个简单的nginx access log

  • 启动

docker-compose up -d
  • 效果


说明

goaccess 还是挺方便的,可以实时的进行一些访问指标的获取,同时docker 镜像我已经推送官方仓库了 dalongrong/goaccess-geo

参考资料

https://github.com/rongfengliang/goaccess-geoip-docker-compose-demo
https://goaccess.io/

posted on   荣锋亮  阅读(1424)  评论(0编辑  收藏  举报

编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2018-04-10 elixir 几种安装方式
2018-04-10 一张elixir生产环境部署的图
2017-04-10 基于jquery 的ajax 文件下载
2014-04-10 无法对 数据库'XXXXX' 执行 删除,因为它正用于复制

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示