本文概述
- 你可以使用GoAccess分析哪些指标?
- 你可以在哪个操作系统上安装?
- 在Ubuntu上安装GoAccess
- 在CentOS上安装
- 在CentOS/Ubuntu上使用Source进行安装
- 验证安装
- 使用GoAccess分析Nginx和Apache
- 通过HTTP实时监控
Web故障排除很有趣, 如果你没有使用正确的工具, 可能会令人沮丧。
如果你正在支持繁忙的网站, 那么通常需要分析和监视Web服务器日志以进行性能和容量规划。这对于Web工程师至关重要。
可以手动检查较小的日志大小是可以的, 但是如果文件较大, 那么遍历数百万行以找到指标并不是一件有趣的事情。
因此, 你需要使用工具来简化管理员的工作并提高工作效率。
GoAccess是一种轻量级的开源日志分析器, 它支持多种日志格式, 并且可以与以下任何一种一起使用。
- Nginx的
- Apache HTTP
- AWS ELB, S3, CloudFront
- 谷歌云存储
- 需要时间来处理请求
- 访客IP, DNS, 主机
- 访客的浏览器和操作系统详细信息
- 404未找到详细信息
- 最高要求/访客
- 带宽
- 静态文件
- 地理位置
- 状态码
- 和更多..
好!
你可以在哪个操作系统上安装? GoAccess只有一个依赖项-ncurses。如果可以安装, 则可以在任何操作系统上使用它。
可在分发包中用于:
- 的Ubuntu
- Debian
- 软呢帽
- CentOS的
- FreeBSD/OpenBSD
- 松弛软件
- Arch Linux
- Gentoo
- MacOS的
- Windows通过Cygwin
如果你是Docker的新手, 我建议你学习此Docker Mastery课程。
文章图片
在Ubuntu上安装GoAccess
- 以root特权登录到Ubuntu服务器
- 使用apt-get如下安装
apt-get install goaccess
简单。
在CentOS上安装 登录服务器并执行yumcommand
yum install goaccess
在CentOS/Ubuntu上使用Source进行安装 喜欢从源头编译吗?
步骤如下。
- 如果使用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, 它就会打印出如下用法。
[[email
protected] goaccess-1.2]# goaccess
GoAccess - 1.2
Usage: goaccess [filename] [ options ... ] [-c][-M][-H][-q][-d][...]
The following options can also be supplied to the command:
Log &
Date Format Options
--date-format=<
dateformat>
- Specify log date format. e.g., %d/%b/%Y
--log-format=<
logformat>
- Specify log format. Inner quotes need to be
escaped, or use single quotes.
--time-format=<
timeformat>
- Specify log time format. e.g., %H:%M:%S
User Interface Options
-c --config-dialog
- Prompt log/date/time configuration window.
-i --hl-header
- Color highlight active panel.
-m --with-mouse
- Enable mouse support on main dashboard.
--color=<
fg:bg[attrs, PANEL]>
- Specify custom colors. See manpage for more
details and options.
--color-scheme=<
1|2|3>
- Schemes: 1 =>
Grey, 2 =>
Green, 3 =>
Monokai.
--html-custom-css=<
path.css>
- Specify a custom CSS file in the HTML report.
--html-custom-js=<
path.js>
- Specify a custom JS file in the HTML report.
--html-prefs=<
json_obj>
- Set default HTML report preferences.
--html-report-title=<
title>
- Set HTML report page title and header.
--json-pretty-print
- Format JSON output w/ tabs &
newlines.
--max-items
- Maximum number of items to show per panel.
See man page for limits.
--no-color
- Disable colored output.
--no-column-names
- Don't write column names in term output.
--no-csv-summary
- Disable summary metrics on the CSV output.
--no-progress
- Disable progress metrics.
--no-tab-scroll
- Disable scrolling through panels on TAB.
--no-html-last-updated
- Hide HTML last updated field.
Server Options
--addr=<
addr>
- Specify IP address to bind server to.
--daemonize
- Run as daemon (if --real-time-html enabled).
--fifo-in=<
path>
- Path to read named pipe (FIFO).
--fifo-out=<
path>
- Path to write named pipe (FIFO).
--origin=<
addr>
- Ensure clients send the specified origin header
upon the WebSocket handshake.
--port=<
port>
- Specify the port to use.
--real-time-html
- Enable real-time HTML output.
--ssl-cert=<
cert.crt>
- Path to TLS/SSL certificate.
--ssl-key=<
priv.key>
- Path to TLS/SSL private key.
--ws-url=<
url>
- URL to which the WebSocket server responds.
File Options
-
- The log file to parse is read from stdin.
-f --log-file=<
filename>
- Path to input log file.
-l --debug-file=<
filename>
- Send all debug messages to the specified
file.
-p --config-file=<
filename>
- Custom configuration file.
--invalid-requests=<
filename>
- Log invalid requests to the specified file.
--no-global-config
- Don't load global configuration file.
Parse Options
-a --agent-list
- Enable a list of user-agents by host.
-d --with-output-resolver
- Enable IP resolver on HTML|JSON output.
-e --exclude-ip=<
IP>
- Exclude one or multiple IPv4/6. Allows IP
ranges e.g. 192.168.0.1-192.168.0.10
-H --http-protocol=<
yes|no>
- Set/unset HTTP request protocol if found.
-M --http-method=<
yes|no>
- Set/unser HTTP request method if found.
-o --output=file.html|json|csv
- Output either an HTML, JSON or a CSV file.
-q --no-query-string
- Ignore request's query string. Removing the
query string can greatly decrease memory
consumption.
-r --no-term-resolver
- Disable IP resolver on terminal output.
--444-as-404
- Treat non-standard status code 444 as 404.
--4xx-to-unique-count
- Add 4xx client errors to the unique visitors
count.
--all-static-files
- Include static files with a query string.
--crawlers-only
- Parse and display only crawlers.
--date-spec=<
date|hr>
- Date specificity. Possible values: `date`
(default), or `hr`.
--double-decode
- Decode double-encoded values.
--enable-panel=<
PANEL>
- Enable parsing/displaying the given panel.
--hour-spec=<
hr|min>
- Hour specificity. Possible values: `hr`
(default), or `min` (tenth of a min).
--ignore-crawlers
- Ignore crawlers.
--ignore-panel=<
PANEL>
- Ignore parsing/displaying the given panel.
--ignore-referer=<
NEEDLE>
- Ignore a referer from being counted. Wild cards
are allowed. i.e., *.bing.com
--ignore-status=<
CODE>
- Ignore parsing the given status code.
--num-tests=<
number>
- Number of lines to test. >
= 0 (10 default)
--process-and-exit
- Parse log and exit without outputting data.
--real-os
- Display real OS names. e.g, Windows XP, Snow
Leopard.
--sort-panel=PANEL, METRIC, ORDER - Sort panel on initial load. For example:
--sort-panel=VISITORS, BY_HITS, ASC. See
manpage for a list of panels/fields.
--static-file=<
extension>
- Add static file extension. e.g.: .mp3.
Extensions are case sensitive.
GeoIP Options
-g --std-geoip
- Standard GeoIP database for less memory
consumption.
--geoip-database=<
path>
- Specify path to GeoIP database file. i.e.,
GeoLiteCity.dat, GeoIPv6.dat ...
Other Options
-h --help
- This help.
-V --version
- Display version information and exit.
-s --storage
- Display current storage method. e.g., B+
Tree, Hash.
--dcf
- Display the path of the default config
file when `-p` is not used.
Examples can be found by running `man goaccess`.
For more details visit: http://goaccess.io
GoAccess Copyright (C) 2009-2016 by Gerardo Orellana
[[email
protected] goaccess-1.2]#
使用GoAccess分析Nginx和Apache 分析access.log的最快方法之一是使用-fparameter。
例如:
goaccess
-f access.log
上面, 我指示打开文件access.log。这将向你显示整个仪表板和以下15个部分。
- 每天的不重复访客
- 要求的档案
- 静态请求(字体, 图像, pdf等)
- 找不到(404)请求
- 访客的IP /主机详细信息
- 访客的作业系统
- 浏览器详细资料
- 时间分配
- 推荐人
- HTTP状态码
- 地理位置
文章图片
如果所选文件正在实时更新, 则你会注意到指标在终端上已更新。在这里, 你可以浏览需要分析的指标。
通过HTTP实时监控 GoAccess使你可以将输出重定向到HTML文件, 你可以将其用作实时监视。当你不想每次需要验证某些指标时都登录到服务器时, 这非常方便。
goaccess /var/log/nginx/access.log -o /var/www/geekflare.com/htdocs/real-time.html --log-format=COMBINED --real-time-html
上面, 我将输出重定向到htdocs下可用的real-time.html文件。由于是htdocs, 因此只要需要查看指标, 我都可以从https://geekflare.com/real-time.html访问此文件。
文章图片
漂亮的仪表板!
但是, 我不建议在生产中采用这种方式。我确定你不希望有人阅读你的网络服务器日志, 并且你可能希望应用以下限制。
- 用用户名和密码保护文件
- 只允许从你的IP访问
- 使用具有自定义端口的其他URL并将其放在防火墙之后, 以便仅允许的IP /用户可以访问
【使用GoAccess的Nginx和Apache日志监控】你可能也有兴趣签出基于云的日志分析器。
推荐阅读
- 带有信息图表的HTTP状态代码快速指南
- Nginx – 413 Request Entity Too Large(在上传wordpress主题时)
- 将IP请求重定向到域URL –测试并修复IP规范问题
- 使用Apache或Nginx在一个服务器/IP上托管多个域
- 如何将Nginx与WebSphere Application Server一起使用()
- 在Apache和Nginx中实现自定义错误页面-使用ErrorDocument和error_page
- Thinkdiag App account, Points and Invitation code
- Spring ApplicationContext 容器
- CNN论文阅读LeNet(Gradient-based learning applied to document recognition)