阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Nginx日志分析工具GoAccess使用详解

493次阅读
没有评论

共计 4205 个字符,预计需要花费 11 分钟才能阅读完成。

前言

Nginx 日志分析工具 GoAccess 使用详解

如果把运维看做是医生给病人看病,则日志就是病人对自己的陈述,很多时候医生需要通过对病人的描述中得出病人状况,是否严重,需要什么计量的药,什么类型的药。所以古人有句话叫对症下药,这个症就是病人的描述加医生的判断,在重一点的病在加上很多的化验。在医生看病时病人的描述和化验单上的数据对医生是非常重要的。同理日志在运维中的作用也是类似的,但非常不幸,日志在很多运维中被严重低估,直到磁盘空间不足的时候才想到,这有个大的日志文件把他删了,这样可以节省空间。

GoAccess

GoAccess 是一个基于终端的快速日志分析器。其核心思想是实时快速分析和查看 Web 服务器统计信息,而无需使用您的浏览器(如果您希望通过 SSH 快速分析访问日志,或者只是喜欢在终端中工作),终端输出是默认输出,但它能够生成完整的,独立的实时 HTML 报告(非常适合分析,监控和数据可视化),以及 a JSON 和 CSV 报告。

  • 所有面板和指标都定时在终端输出上每 200 毫秒更新一次,在 HTML 输出上每秒更新一次。
  • GoAccess 允许任何自定义日志格式字符串。预定义选项包括 Apache,Nginx,Amazon S3,Elastic Load Balancing,CloudFront 等
  • 跟踪提供请求所需的时间。如果您想跟踪减慢网站速度的网页,则非常有用。
  • 数据持久性强,GoAccess 能够通过磁盘上的 B + Tree 数据库逐步处理日志。
  • GoAccess 是用 C 语言编写的,要运行它,你只需要将 ncurses 作为依赖项,它甚至还具有自己的 RFC6455 兼容 Web Socket 服务器。
  • 您可以针对访问日志文件运行它,选择日志格式并让 GoAccess 解析访问日志并显示统计信息。
  • 按小时或日期确定最慢运行请求的匹配数,访问者数,带宽数和指标数。
  • 多个虚拟主机,一个面板,显示哪个虚拟主机正在消耗大部分 Web 服务器资源。
  • 定制 GoAccess 以适合您自己的色彩品味。通过终端,或者只是更新 HTML 输出上的样式表。

部署方案

方案一:Yum 安装部署

yum install glib2 glib2-devel GeoIP-devel  ncurses-devel zlib zlib-develyum install gcc -y
yum -y install GeoIP-update
yum install goaccess

# 修改 /etc/nginx/nginx.conf 文件的日志存储格式
log_format  main  ‘$remote_addr – $remote_user [$time_local] requesthost:”$http_host”; “$request” requesttime:”$request_time”; ‘
        ‘$status $body_bytes_sent “$http_referer” – $request_body’                     
        ‘”$http_user_agent” “$http_x_forwarded_for”‘;

# 修改文件 /etc/goaccess.conf 改成 goaccess 格式标准对应为
time-format %T
date-format %d/%b/%Y
log-format %h – %^ [%d:%t %^] requesthost:”%v”; “%r” requesttime:”%T”; %s %b “%R” – %^”%u”

# 测试生成页面
goaccess -f /var/log/nginx/access.log -c -a>/usr/share/nginx/html/go.html

方案二:源码安装部署

#yum 安装依赖包
yum install glib2 glib2-devel GeoIP-devel  ncurses-devel zlib zlib-devel
yum install gcc -y
rpm -Uvh https://dl.Fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
yum -y install GeoIP-update

# 下载 goaccess 源码包,并解压编译安装
wget https://tar.goaccess.io/goaccess-1.2.tar.gz
tar xzvf goaccess-1.2.tar.gz
cd goaccess-1.2/./configure –enable-geoip –enable-utf8make && make install

# 修改 /etc/nginx/nginx.conf 文件的日志存储格式
log_format  main  ‘$remote_addr – $remote_user [$time_local] requesthost:”$http_host”; “$request” requesttime:”$request_time”; ‘
        ‘$status $body_bytes_sent “$http_referer” – $request_body’                     
        ‘”$http_user_agent” “$http_x_forwarded_for”‘;

# 修改文件 /usr/local/etc/goaccess.conf 改成 goaccess 格式标准对应为
time-format %T
date-format %d/%b/%Y
log-format %h – %^ [%d:%t %^] requesthost:”%v”; “%r” requesttime:”%T”; %s %b “%R” – %^”%u”

# 测试生成页面
goaccess -f /var/log/nginx/access.log -c -a>/usr/share/nginx/html/go.html

# 后台实时生成数据到 goaccess 页面
/usr/local/bin/goaccess /var/log/nginx/access.log -o /usr/share/nginx/html/go.html  –real-time-html &

页面解析

Nginx 日志分析工具 GoAccess 使用详解

General Statistics:此面板提供了几个指标的摘要,其中一些包括:有效和无效请求的数量,分析数据集所花费的时间,唯一访问者,请求的文件,静态文件(CSS,ICO,JPG 等)HTTP 引用,404s,已解析日志文件的大小和带宽消耗。

Unique visitors:此面板显示点击次数,唯一身份访问者和每个日期的累积带宽等指标。包含相同 IP,相同日期和相同用户代理的 HTTP 请求被视为唯一访问者。默认情况下,它包括网络爬虫 / 蜘蛛。可以使用 –date-spec = hr 将日期特异性设置为小时级别,这将显示日期,例如 05 / Jun / 2016:16。如果您想跟踪小时级别的每日流量,这非常棒。

Requested files:此面板显示 Web 服务器上请求最多的文件。它显示了匹配,唯一身份访问者和百分比,以及累积带宽,协议和使用的请求方法。

Requested static files:列出了最常用静态文件,如:JPG,CSS,SWF,JS,GIF,和 PNG 文件类型,使用相同的指标作为最后的面板一起。可以将其他静态文件添加到配置文件中。

404 or Not Found:显示与先前请求面板相同的指标,但是,其数据包含在服务器上找不到的所有页面,或通常称为 404 状态代码。

Hosts:此面板包含有关主机本身的详细信息。这非常适合发现×××性爬虫,并确定谁在吃你的带宽。扩展面板可以显示更多信息,例如主机的反向 DNS 查找结果,原产国和城市。如果 - a 启用了参数,则可以通过选择所需的 IP 地址,然后按 Enter 来显示用户代理列表。

Operating Systems:此面板将报告主机在到达服务器时使用的操作系统。它试图提供每个操作系统的最具体版本。
Browsers:此面板将报告主机在访问服务器时使用的浏览器。它试图提供每个浏览器的最具体版本。
Visit Times:此面板将显示每小时报告。此选项显示 24 个数据点,每天一小时一个。可选地,可以使用 –hour-spec = min 将小时特异性设置为十分之一水平,这将显示小时为 16:4 如果您想要发现服务器上的流量峰值,这很好。
Virtual Hosts:此面板将显示从访问日志中解析的所有不同虚拟主机。如果在日志格式字符串中使用%v,则会显示此面板。
Referrers URLs:如果相关主机通过其他资源访问了网站,或者是从其他主机链接 / 转移给您,则会在此面板中提供引用它们的网址。请参阅 `–ignore-panel` 配置文件以启用它。(默认禁用)
Referring Sites:此面板仅显示主机部分,但不显示整个 URL。请求来自的 URL。
Keyphrases:它报告了用于 Google 搜索,Google 缓存和 Google 翻译的关键字,这些关键字已导致您的网络服务器。目前,它仅通过 HTTP 支持 Google 搜索查询。请参阅 `–ignore-panel` 配置文件以启用它。(默认禁用)
Geo Location:确定 IP 地址在地理位置的位置。统计数据按大陆和国家分列。它需要使用 GeoLocation 支持进行编译。
HTTP Status Codes:HTTP 请求的数字状态代码的值。
Remote User (HTTP authentication):这是 HTTP 身份验证确定的请求文档的人员的用户 ID。如果文档没有密码保护,则此部分将为“–”,就像前一个部分一样。除非 %e 在 log-format 变量中给出,否则不会启用此面板。

最后

GoAccess 日志分析工具的功能还有很多,可以细分到统计某一天、某一个 IP 用户的访问情况,也可以统计某个时间段的,更可以导出 CSV 表格整理汇总分析;

详解使用 GoAccess 分析 Nginx 的日志  https://www.linuxidc.com/Linux/2016-07/133623.htm
使用 GoAccess 分析 Nginx 的 Virtual Host 日志记录  https://www.linuxidc.com/Linux/2016-07/133622.htm
CentOS 6.5 下使用 GoAccess 工具分析 Nginx 网站日志 https://www.linuxidc.com/Linux/2017-09/147131.htm

GoAccess 的详细介绍 :请点这里
GoAccess 的下载地址 :请点这里

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4205字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960911
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸

一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸 前言 作为天天跟架构图、拓扑图死磕的...
300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

300元就能买到的”小钢炮”?惠普7L四盘位小主机解析

  300 元就能买到的 ” 小钢炮 ”?惠普 7L 四盘位小主机解析 最近...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...