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

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

169次阅读
没有评论

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