使用GoAccess监控Nginx和Apache日志

使用开源实时日志分析工具-GoAccess监控和分析Web服务器日志

如果您没有正确的工具,Web故障排除可能很有趣,但也可能令人沮丧。

如果您正在支持高流量的网站,通常需要分析和监视Web服务器日志以进行性能和容量规划。这对于Web工程师来说是必不可少的。

手动检查较小的日志文件大小是可以的,但是如果文件较大,那么浏览数百万行以查找指标将不会很有趣。

这就是为什么您需要工具 to facilitate administrator job并使其变得更加高效。

GoAccess是一个轻量级开源日志分析工具,支持多种日志格式,可与以下任何一种一起使用。

  • Nginx
  • Apache HTTP
  • AWS ELB, S3, CloudFront
  • Google云存储

您可以使用GoAccess分析哪些指标?

几乎可以在日志中捕获的所有内容。为了给您一个概念:

  • 请求的服务时间
  • 访问者的IP、DNS、主机
  • 访问者的浏览器和操作系统详细信息
  • 404未找到的详细信息
  • 顶部请求/访问者
  • 带宽
  • 静态文件
  • 地理位置
  • 状态代码
  • 等等..

是否正在寻找监视站点的这些指标?

很好!

您可以在哪个操作系统上安装?

GoAccess只有一个依赖项-ncurses。如果您可以安装,可以在任何操作系统上使用它。

它在以下发行版软件包中可用:

  • Ubuntu
  • Debian
  • Fedora
  • CentOS
  • FreeBSD/OpenBSD
  • Slackware
  • Arch Linux
  • Gentoo
  • MacOS
  • 通过Cygwin的Windows

但是,您也可以从源代码构建或使用Docker。

如果您是Docker的新手,我建议您参考这个Docker Mastery course

在Ubuntu上安装GoAccess

  • 使用root权限登录Ubuntu服务器
  • 使用以下命令安装apt-get
apt-get install goaccess

很简单。

在CentOS上安装

登录到服务器并执行yum命令

yum install goaccess

在CentOS / Ubuntu上使用源码安装

喜欢从源码编译吗?

以下是步骤。

  • 如果使用CentOS,请安装以下依赖项
yum install gcc ncurses-devel glib2-devel geoip-devel tokyocabinet-devel
  • 如果使用Ubuntu
apt-get install libncursesw5-dev libgeoip-dev make
  • 使用wget下载最新的包
wget http://tar.goaccess.io/goaccess-1.2.tar.gz
  • 解压下载的文件
gunzip –c goaccess-1.2.tar.gz | tar xvf –
  • 进入新创建的文件夹,该文件夹是您在解压后获得的
cd goaccess-1.2
  • 使用以下命令编译
./configure --enable-geoip=legacy --enable-utf8
make
make install

做得好,您已经安装了GoAccess,并准备好分析日志。

 

验证安装

安装后,只需在命令提示符上执行goaccess,它应该打印如下的用法。

GoAccess – 1.2
用法:goaccess [文件名] [选项 …] [-c] [-M] [-H] [-q] [-d] [ …] 该命令还可以提供以下选项:
日志和日期格式选项
 –date-format=     – 指定日志日期格式。例如,%d /%b /%Y
 –log-format=       – 指定日志格式。内部引号需要
                                   转义,或使用单引号。
 –time-format=     – 指定日志时间格式。例如,%H:%M:%S
用户界面选项
 -c –config-dialog             – 提示日志/日期/时间配置窗口。
 -i –hl-header                 – 高亮显示活动面板。
 -m –with-mouse                – 在主仪表板上启用鼠标支持。
 –color=   – 指定自定义颜色。有关更多信息,请参见man页面
                                   上的详情和选项。
 –color-scheme=         – 方案:1 => 灰色,2 => 绿色,3 => Monokai。
 –html-custom-css=   – 在HTML报告中指定自定义CSS文件。
 –html-custom-js=     – 在HTML报告中指定自定义JS文件。
 –html-prefs=        – 设置默认的HTML报告首选项。
 –html-report-title=    – 设置HTML报告页面标题和头部。<br />  –json-pretty-print            – 使用制表符和换行符格式化JSON输出。<br />  –max-items                    – 每个面板显示的最大项目数。<br />                                  有关限制,请参见man页面。<br />  –no-color                     – 禁用彩色输出。<br />  –no-column-names              – 在终端输出中不写列名。<br />  –no-csv-summary               – 在CSV输出中禁用摘要指标。<br />  –no-progress                  – 禁用进度指标。<br />  –no-tab-scroll                – 禁用通过TAB滚动面板。<br />  –no-html-last-updated         – 隐藏HTML上次更新字段。<br /> 服务器选项<br />  –addr=                  – 指定要绑定服务器的IP地址。<br />  –daemonize                    – 作为守护程序运行(如果启用了–real-time-html)。<br />  –fifo-in=               – 读取命名管道(FIFO)的路径。<br />  –fifo-out=              – 写入命名管道(FIFO)的路径。<br />  –origin=                – 确保客户端在WebSocket握手时发送指定的来源头部<br />                                  。<br />  –port=                  – 指定要使用的端口。<br />  –real-time-html               – 启用实时HTML输出。<br />  –ssl-cert=          – 指定TLS / SSL证书的路径。<br />  –ssl-key=           – 指定TLS / SSL私钥的路径。<br />  –ws-url=                 – WebSocket服务器响应的URL。<br /> 文件选项<br />  –                              – 要解析的日志文件从标准输入中读取。<br />  -f –log-file=       – 输入日志文件的路径。<br />  -l –debug-file=     – 将所有调试消息发送到指定的文件。<br />  -p –config-file=    – 自定义配置文件。<br />  –invalid-requests=  – 将无效的请求记录到指定的文件中。<br />  –no-global-config             – 不加载全局配置文件。<br /> 解析选项<br />  -a –agent-list                – 启用按主机的用户代理列表。<br />  -d –with-output-resolver      – 在HTML | JSON输出上启用IP解析器。<br />  -e –exclude-ip=           – 排除一个或多个IPv4 / 6. 允许IP<br />                                  范围,例如192.168.0.1-192.168.0.10<br />  -H –http-protocol=    – 如果找到,则设置/取消HTTP请求协议。<br />  -M –http-method=      – 如果找到,则设置/取消HTTP请求方法。<br />  -o –output=file.html|json|csv – 输出HTML,JSON或CSV文件。<br />  -q –no-query-string           – 忽略请求的查询字符串。删除<br />                                  查询字符串可以大大减少内存<br />                                  消耗。<br />  -r –no-term-resolver          – 禁用终端输出的IP解析器。<br />  –444-as-404                  – 将非标准状态码444视为404。<br />  –4xx-to-unique-count          – 将4xx客户端错误添加到唯一访问者<br />                                  计数。<br />  –all-static-files             – 在查询字符串中包括静态文件。<br />  –crawlers-only                – 仅解析和显示爬行器。<br />  –date-spec=          – 日期特定性。可能的值:`date`<br />                                  (默认)或`hr`。<br />  –double-decode                – 解码双重编码的值。<br />  –enable-panel=         – 启用解析/显示给定面板。<br />  –hour-spec=</p> <hr> <p>           – 小时特定性。可能的值:`hr`<br />                                  (默认)或`min`(十分之一分钟)。<br />  –ignore-crawlers              – 忽略爬行器。<br />  –ignore-panel=         – 忽略解析/显示给定的面板。<br />  –ignore-referer=      – 忽略引荐人的计数。允许使用通配符<br />                                  ,例如,*.bing.com<br />  –ignore-status=<CODE>         – 忽略解析给定的状态码。<br />  –num-tests=           – 要测试的行数。> = 0(默认值为10)<br />  –process-and-exit             – 解析日志并在不输出数据的情况下退出。<br />  –real-os                      – 显示真实操作系统名称。例如,Windows XP,Snow<br />                                  Leopard。<br />  –sort-panel=PANEL,METRIC,ORDER – 在初始加载时对面板进行排序。例如:<br />                                  – sort-panel=VISITORS,BY_HITS,ASC。请参阅<br />                                  man页面以获取面板/字段列表。<br />  –static-file=      – 添加静态文件扩展名。例如:.mp3。<br />                                  扩展名区分大小写。<br /> GeoIP选项<br />  -g –std-geoip                 – 较少内存的标准GeoIP数据库<br />                                 消耗。<br />  –geoip-database=        – 指定路径到GeoIP数据库文件。即,<br />                                  GeoLiteCity.dat,GeoIPv6.dat …<br /> 其他选项<br />  -h –help                      – 此帮助。<br />  -V –version                   – 显示版本信息并退出。<br />  -s –storage                   – 显示当前存储方法。例如,B +<br />                                  树,Hash。<br />  –dcf                          – 当未使用`-p`时,显示默认配置的路径<br />                                  文件。<br /> 可以通过运行`man goaccess`找到示例。<br /> 有关详细信息,请访问:http://goaccess.io<br /> GoAccess版权所有(C)2009-2016 Gerardo Orellana</p> <h2>使用GoAccess分析Nginx和Apache</h2> <p>分析access.log的最快方法之一是使用<code>-f</code>参数。</p> <p>例如:</p> <pre>goaccess -f access.log</pre> <p>上述命令会打开access.log文件。这将显示整体仪表板和以下15个部分。</p> <ul> <li>每天的独立访问者</li> <li>请求的文件</li> <li>静态请求(字体,图像,PDF等)</li> <li>未找到(404)的请求</li> <li>访问者的IP/主机详细信息</li> <li>访问者的操作系统</li> <li>浏览器详细信息</li> <li>时间分布</li> <li>引荐来源</li> <li>HTTP状态码</li> <li>地理位置</li> </ul> <p><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" class="perfmatters-lazy" data-src="https://yaoweibin.com/wp-content/uploads/2023/08/20230830165234-64ef73d237e40.png"/><noscript><img alt="blank" onload="Wpfcll.r(this,true);" src="https://yaoweibin.com/wp-content/plugins/wp-fastest-cache-premium/pro/images/blank.gif" decoding="async" data-wpfc-original-src="https://yaoweibin.com/wp-content/uploads/2023/08/20230830165234-64ef73d237e40.png"/></noscript></p> <p>如果所选文件实时更新,则可以注意到终端上的指标会更新。在这里,您可以查看需要分析的指标。</p> <h2>通过HTTP(s)进行实时监控</h2> <p>GoAccess允许您将输出重定向到HTML文件,您可以将其用作实时监控。当您不想每次需要验证某些指标时都登录服务器时,这非常方便。</p> <pre>goaccess /var/log/nginx/access.log -o /var/www/yaoweibin.com/htdocs/real-time.html --log-format=COMBINED --real-time-html</pre> <p>上述命令将输出重定向到real-time.html文件,该文件位于htdocs下。由于它是htdocs,所以每当我需要查看指标时,可以从https://yaoweibin.com/real-time.html访问此文件。</p> <p><img decoding="async" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%200%200'%3E%3C/svg%3E" class="perfmatters-lazy" data-src="https://yaoweibin.com/wp-content/uploads/2023/08/20230830165235-64ef73d351298.png"/><noscript><img alt="blank" onload="Wpfcll.r(this,true);" src="https://yaoweibin.com/wp-content/plugins/wp-fastest-cache-premium/pro/images/blank.gif" decoding="async" data-wpfc-original-src="https://yaoweibin.com/wp-content/uploads/2023/08/20230830165235-64ef73d351298.png"/></noscript></p> <p>一个漂亮的仪表盘!</p> <p>不过,在生产环境中我不建议这样做。我相信您不希望有人阅读您的Web服务器日志,您可能希望采取以下限制。</p> <ul> <li>使用用户名和密码保护文件</li> <li>仅允许来自您的IP的访问</li> <li>使用自定义端口的其他URL,并将其放在防火墙后面,这样只有允许的IP/用户才能访问</li> </ul> <p>GoAccess看起来是一个功能强大的开源日志分析工具。它轻量且免费,所以请放心尝试。</p> <p>您可能还对查看 <a href="https://yaoweibin.com/cloud-based-log-analyzer/" data-lasso-id="78421" data-wpel-link="internal">cloud-based log analyzer</a> 感兴趣。</p> <div id='jp-relatedposts' class='jp-relatedposts'> <h3 class="jp-relatedposts-headline"><em>相关</em></h3></div></div><footer class="entry-footer"> </footer></div></article> <div class="entry-author entry-author-style-center"> <div class="entry-author-profile author-profile vcard"> <div class="entry-author-avatar"> <img alt src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2080%2080'%3E%3C/svg%3E" class="avatar avatar-80 photo perfmatters-lazy" height="80" width="80" decoding="async" data-src="https://secure.gravatar.com/avatar/718d32aa664077102b64f911e90703fd?s=80&d=mm&r=g" data-srcset="https://secure.gravatar.com/avatar/718d32aa664077102b64f911e90703fd?s=160&d=mm&r=g 2x"/><noscript><img alt='' src='https://secure.gravatar.com/avatar/718d32aa664077102b64f911e90703fd?s=80&d=mm&r=g' srcset='https://secure.gravatar.com/avatar/718d32aa664077102b64f911e90703fd?s=160&d=mm&r=g 2x' class='avatar avatar-80 photo' height='80' width='80' decoding='async'/></noscript></div><b class="entry-author-name author-name fn">姚伟斌</b> <p class="entry-author-occupation author-occupation">程序猿</p> <div class="entry-author-description author-bio"> <p>我是姚伟斌,也被称为文景。我的专业领域涵盖了开放源代码的深度探索、网络编程和网络建站。我热衷于分享我的编程和建站实践经验,尤其擅长于Nginx和Proxy服务器的管理。此外,我还对Python和NodeJS这两种编程语言有着深刻的理解和独到的见解。</p> <p>最近,我致力于爬虫技术的研究,探索如何通过高效的数据抓取为项目增添价值。我的目标是通过持续的学习和创新,为开放源代码社区贡献我的力量,并帮助那些对网络编程和网站建设感兴趣的人士。</p></div><div class="entry-author-follow author-follow"></div></div></div><nav class="navigation post-navigation" aria-label="文章"> <h2 class="screen-reader-text">文章导航</h2> <div class="nav-links"><div class="nav-previous"><a href="https://yaoweibin.com/gpt%e7%bf%bb%e8%af%91prompt-%e5%91%8a%e5%88%ab%e6%9c%ba%e7%bf%bb%e6%84%9f" rel="prev"><div class="post-navigation-sub"><small><span class="kadence-svg-iconset svg-baseline"><svg aria-hidden="true" class="kadence-svg-icon kadence-arrow-left-alt-svg" fill="currentColor" version="1.1" xmlns="http://www.w3.org/2000/svg" width="29" height="28" viewBox="0 0 29 28"><title>上一页 上一页

【分享】高质量GPT翻译Prompt,告别“机翻感”

类似文章