本文概述
- 你可以使用GoAccess分析哪些指标?
- 你可以在哪个操作系统上安装?
- 在Ubuntu上安装GoAccess
- 在CentOS上安装
- 在CentOS/Ubuntu上使用Source进行安装
- 验证安装
- 使用GoAccess分析Nginx和Apache
- 通过HTTP实时监控
使用开源实时日志分析器监视和分析Web服务器日志– GoAccess
Web故障排除很有趣, 如果你没有使用正确的工具, 可能会令人沮丧。
如果你正在支持繁忙的网站, 那么通常需要分析和监视Web服务器日志以进行性能和容量规划。这对于Web工程师至关重要。
可以手动检查较小的日志大小是可以的, 但是如果文件较大, 那么遍历数百万行以找到指标并不是一件有趣的事情。
因此, 你需要使用工具来简化管理员的工作并提高工作效率。
GoAccess是一种轻量级的开源日志分析器, 它支持多种日志格式, 并且可以与以下任何一种一起使用。
- Nginx的
- Apache HTTP
- AWS ELB, S3, CloudFront
- 谷歌云存储
你可以使用GoAccess分析哪些指标?
你几乎在日志中捕获的所有内容。给你一个想法:
- 需要时间来处理请求
- 访客IP, DNS, 主机
- 访客的浏览器和操作系统详细信息
- 404未找到详细信息
- 最高要求/访客
- 带宽
- 静态文件
- 地理位置
- 状态码
- 和更多..
寻找要监控你站点的这些指标吗?
好!
你可以在哪个操作系统上安装?
GoAccess只有一个依赖项-ncurses。如果可以安装, 则可以在任何操作系统上使用它。
可在分发包中用于:
- 的Ubuntu
- Debian
- 软呢帽
- CentOS的
- FreeBSD/OpenBSD
- 松弛软件
- Arch Linux
- Gentoo
- MacOS的
- Windows通过Cygwin
但是, 你也可以从源代码构建或与Docker一起使用。
如果你是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看起来是功能强大的开源日志分析器。它是轻量级且免费的, 请继续尝试。
你可能也有兴趣签出基于云的日志分析器。