windows环境部署goaccess进行nginx日志分析

windows安装docker

windows docker安装包
这个安装包里面除了docker安装包,还有个wsl2更新包(未报错无需理会)
安装注意:

1、安装之前要开启虚拟化,如果电脑能用的了虚拟机,就代表开过了

2、win10家庭版可能会报WSL 2 installation is incomplete.更新一下wsl2就好了

进入安装界面全勾选,等待安装好直接启动docker desktop(刚刚安装过的),就代表电脑上docker已经启动了

docker上制作镜像

我使用DockerFile来制作,本博客也是受到Docker + goacces实现Nginx离线日志分析
这个博客的启发,我在上面对其改进了一下

1、下载所需资源

搭建需要
(1)goaccess-1.3.tar.gz
(2)nginx-1.10.1.tar.gz

资源可以在网上下载到

2、拿到nginx日志

nginx的日志文件放在logs文件夹里面
叫做access.log

3、制作DockerFlie文件

新建一个txt文件,文件名叫DockerFile

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 kde-l10n-Chinese -y && \
	yum install glibc-common -y && \
    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 "]




将上述文本复制进去,然后将文件后缀删除

4、制作镜像

1、启动之前安装的docker
2、打开电脑的cmd
在这里插入图片描述

3、输入docker images确认一下是否能操作docker了
4、将之前准备的文件放入同一文件夹
在这里插入图片描述
5、控制台输入

docker build -t 镜像名 -f 路径(我的是C:\nginx_goacces\DockerFile) .

建议路径不要有中文,等他自己下好就能使用了

5、使用镜像

5.1、外网环境

直接生成容器

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

访问localhost:8089(我这个是汉化过的,本来是英文)在这里插入图片描述

5.2、内网环境

内网环境一般是没有网的,制作镜像需要通过网络下载需要的文件,所以内网环境无法生成镜像,必须得我们手动把外网制作好的镜像,手动导入内网环境中

docker save -o 存放路径\名字.tar 镜像名:版本

例:

docker save -o C:\nginx_goacces\goaccess.tar goaccess:latest

在完成之后,在上述存放路径中找到该文件,将其放入内网
执行导入

docker load -i 路径/名字.tar

docker load -i C:\nginx_goacces\goaccess.tar

然后根据外网步骤运行即可

汉化

界面是英文的看起来很难受,所以做一下汉化
DockerFile里面已经包含了中文包,我们的centos7原本是没有中文的
在容器启动了之后,进入容器内部

docker exec -it [CONTAINER ID] /bin/bash

docker exec -it 79b2a6dc346a /bin/bash

进入容器之后

localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 (设置系统语言包)
LANG="zh_CN.utf-8" bash -c "goaccess logs/access.log -o /usr/local/nginx/html/index.html --log-format=COMBINED"

第二行命令可以自由更改

LANG="zh_CN.utf-8" bash -c "goaccess 日志位置 -o 首页位置 --log-format=COMBINED"

然后刷新一下页面即可汉化

更换日志

我们通过从外部导入日志至容器中

docker cp 本机日志路径 容器id:/logs

docker cp C:\nginx_goacces\access.log 79b2a6dc346a:/logs

此时日志是未被汉化的,再执行一次汉化即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值