ubuntu20.04安装goaccess实时对nginx日志进行分析
ubuntu20.04安装goaccess实时对nginx日志进行分析
goaccess可以对nginx日志进行分析,生成实时动态页面,同时通过nginx反向代理来解决WebSocket数据传输问题、
一、ubuntu20.04安装goaccess
配置goaccess apt源
cd /etc/apt
wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | tee /etc/apt/sources.list.d/goaccess.list
apt-get update
apt-get install goaccess
查看是否安装成功
dpkg -l | grep goaccess

二、修改配置文件
vim /etc/goaccess/goaccess.conf
# 在 # NCSA Combined Log Format后添加以下配置
time-format %T
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
修改完成后保存后退出
三、生成动态实时的html报告
LANG="zh_CN.UTF-8" /usr/bin/goaccess -a -d -f nginx日志文件绝对路径 -p /etc/goaccess/goaccess.conf(goaccess配置文件) -o /home/wwwroot/web/report/index.html --port=9870 --real-time-html --daemonize
常用参数说明
- -a --agent-list 启用由主机用户代理的列表。为了更快的解析,不启用该项
- -d --with-output-resolver 在HTML/JSON输出中开启IP解析,会使用GeoIP来进行IP解析
- -f --log-file 需要分析的日志文件路径
- -p --config-file 配置文件路径
- -o --output 输出格式,支持html、json、csv
- -m --with-mouse 控制面板支持鼠标点击
- -q --no-query-string 忽略请求的参数部分
- --real-time-html 实时生成HTML报告
- --daemonize 守护进程模式,--real-time-html时使用
- --port指定端口号
四、配置web界面查看
配置nginx,可以使用htpasswd对页面配置用户认证。如果没有该命令的话可以使用
apt install apache2-utils安装
# 先修改nginx配置文件
location ^~ /report {
# 设置运行的ip地址
allow ip;
deny all;
auth_basic "Nginx_status";
auth_basic_user_file /etc/nginx/conf.d/nginx_htpasswd;
alias /home/wwwroot/web/report;
index index.html;
}
# 配置用户和密码
htpasswd -c /etc/nginx/conf.d/nginx_htpasswd 用户名
# 重新加载nginx中间件
nginx -s reload

五、自动更新页面数据
报表页面与GoAccess服务端通过HTTP建立连接后,后续就是WebSocket数据传输了,GoAccess默认使用了7890端口。通常情况下,服务器上的HTTP服务已经使用了80端口,并且出于安全考虑关闭其他端口,浏览器的Html页面与GoAccess就无法正常进行数据交互。这时我们可以配置Nginx反向代理并修改报表访问路径来解决此问题
1.配置nginx代理
vim goaccess_svr.conf
upstream goaccess_svr {
server 127.0.0.1:9870;
}
# 在nginx主配置文件添加
location /goaccess {
proxy_pass http://goaccess_svr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
2.修改报表页面
需要修改里面的与GoAccess服务端连接的URL和端口
cd /home/wwwroot/web/report
vim index.html
# 查找关键字"port",换成自己的域名或者ip
var connection = {"url": "server.example.com/goaccess","port": 80}
# 重新加载nginx中间件
nginx -s reload
最后效果如下:

ubuntu20.04安装goaccess实时对nginx日志进行分析的更多相关文章
- Ubuntu20.04安装Typora
Ubuntu20.04安装Typora 安装方法 # optional, but recommended sudo apt-key adv --keyserver keyserver.ubuntu.c ...
- Ubuntu20.04安装 maven并配置阿里源
Ubuntu20.04安装 maven并配置阿里源 sudo apt update sudo apt install maven #安装maven,默认安装路径为/usr/share/maven 添加 ...
- ubuntu20.04安装网易云音乐
Ubuntu20.04安装网易云 进入网易云音乐下载地址 下载对应客户端 进入终端,安装 sudo dpkg -i 软件名.deb
- ubuntu20.04安装EasyConnect兼容性问题解决
目录 1. 命令行启动EasyConnect 2. 降级pango 3. 重新启动EasyConnect,即可成功启动 Ubuntu20.04安装EasyConnect后无法启动的解决方案 工作使用操 ...
- Ubuntu 14.04 安装最新稳定版Nginx 1.6.0
如果已经安装,请先卸载sudo apt-get remove nginx最新的稳定版Nginx 1.6.0在ubuntuupdates ppa库中提供,网址http://www.ubuntuupdat ...
- GoAccess自动分割Nginx日志
GoAccess 是一款开源的网站日志实时分析工具.GoAccess 的工作方式很容易理解,就是读取和解析 Apache/Nginx/Lighttpd 的访问日志文件 access log,然后以更友 ...
- Ubuntu20.04 安装MongoDB及其基本使用
MongoDB 官方文档 本博客旨在自我学习使用,如有任何疑问请及时联系博主 基本介绍 MongoDB 是由C++语言编写并基于分布式文件存储的开源数据库. MongoDB 是一款介于关系数据库和非关 ...
- Ubuntu20.04安装PEA软件
PEA软件可用于实时精密卫星钟差估计,精密卫星定轨,精密单点定位,电离层建模以及DCB估计等. Ginan开发人员推荐使用Ubuntu18.04或Ubuntu20.04搭建,本文使用Ubuntu20. ...
- Ubuntu20.04安装Redis
本文介绍了如何在Ubuntu20.04上安装Redis. 安装Redis sudo apt install redis-server 检查服务的状态 安装完成后可以通过以下命令检查服务的状态 sudo ...
- Ubuntu20.04安装MongoDB
本教程描述了如何在Ubuntu20.04上安装MongoDB4.4 安装MongoDB Ubuntu 20.04默认存储库中不提供最新版本的MongoDB,因此需要在系统中添加官方的MongoDB存储 ...
随机推荐
- AI绘图开源工具Stable Diffusion WebUI前端API对接
背景 本文主要介绍 AI 绘图开源工具 Stable Diffusion WebUI 的 API 开启和基本调用方法,通过本文的阅读,你将了解到 stable-diffusion-webui 的基本介 ...
- 全局安装oh-my-zsh保姆教程
我的系统是CentOS 7.6,按流程走完后可以实现系统内所有用户都默认使用zsh且插件配置共享省去重复编写配置或软连接的烦恼 1 安装git yum -y install git 2 安装zsh y ...
- subDomainBrute源码分析
SubDomainsBrute简介 SubDomainsBrute是一款目标域名收集工具 ,用小字典递归地发现三级域名.四级域名.五级域名等不容易被探测到的域名.字典较为全面,小字典就包括3万多条 ...
- Visual Studio 2022 Preview 3和2019 16.11发布
Visual Studio 2022 Preview 3 主要特点 个人和团队生产力 附加到进程改进 新项目设计器 黑暗主题提升 开发现代应用 远程测试 新的JavaScript和TypeScript ...
- Solution -「HDU 3507」Print Article
Description Link. 给出 \(N\) 个单词,每个单词有个非负权值 \(C_{i}\),现要将它们分成连续的若干段,每段的代价为此段单词的权值和,还要加一个常数 \(M\),即 \(( ...
- std::for_each易忽略点
以下代码为修改vector内部的每一个元素,使其每个元素大小变为原来的平方. std::vector v1{1, 2, 4, 2}; std::for_each(begin(v1), end(v1), ...
- Hosts映射
Hosts映射 思考:如何通过主机名能够找到(ping)某个linux系统? 前言 Hosts:是一个文本文件,用来记录IP和Hostname的映射关系 DNS:是互联网上作为域名和IP地址映射的一个 ...
- Go 基础之基本数据类型
Go 基础之基本数据类型 目录 Go 基础之基本数据类型 一.整型 1.1 平台无关整型 1.1.1 基本概念 1.1.2 分类 有符号整型(int8~int64) 无符号整型(uint8~uint6 ...
- Fortran 的简单入门和使用 OpenMPI
Fortran 与 C-like 语言的区别简单总结 无大括号,使用关键字画出范围: C++: int main() { } Fortran: program test implicit none e ...
- .NET周刊【10月第3期 2023-10-22】
国内文章 .NET 8 RC 2 发布,将在11月14日发布正式版 https://www.cnblogs.com/shanyou/p/17756172.html 微软于2023年10月10日发布了. ...