一、GoAccess基本概述
GoAccess 是一款用於Apache或者Nginx的命令行日誌分析器和交互式查看器。使用這款工具,你不僅可以瀏覽到之前提及的相關數據,還可以通過分析網站服務器日誌來進一步挖掘數據。這一切都是在一個終端窗口實時輸出並且可以輸出在web端可視化的顯示信息。
二、GoAccess主要功能
- 統計概況,流量消耗等
- 訪客排名
- 動態Web請求
- 靜態web請求,如圖片、樣式表、腳本等。
- 來路域名
- 404 錯誤
- 操作系統
- 瀏覽器和搜索引擎
- 主機、DNS和ip地址
- HTTP 響應代碼
- 引薦網站
- 鍵盤佈局
- 自定義顯示
- 支持超大日誌(分析速度很快)
GoAccess用法介紹
GoAccess的基本語法如下:
goaccess [ -b ][ -s ][ -e IP_ADDRESS][ - a ] <-f log_file >
參數說明:
-f – 日誌文件名
-b – 開啓流量統計,如果希望加快分析速度不建議使用該參數
-s – 開啓HTTP響應代碼統計
-a – 開啓用戶代理統計
-e – 開啓指定IP地址統計,默認禁用
-p -指定goacces用戶配置文件路徑
GoAccess的安裝(centos)
1/安裝依賴包:
[root@ljcccc ~]# yum install ncurses-devel
[root@ljcccc ~]# wget https://github.com/maxmind/geoip-api-c/releases/download/v1.6.11/GeoIP-1.6.11.tar.gz
[root@ljcccc ~]# tar GeoIP-1.6.11.tar.gz
[root@ljcccc ~]# cd GeoIP-1.6.11
[root@ljcccc ~]# ./configure && make && make install
2/安裝GoAccess
[root@ljcccc ~]# wget https://tar.goaccess.io/goaccess-1.3.tar.gz
[root@ljcccc ~]# tar -xzvf goaccess-1.3.tar.gz
[root@ljcccc ~]# cd goaccess-1.3/
[root@ljcccc goaccess-1.3]# ./configure --enable-utf8 --enable-geoip=legacy
[root@ljcccc goaccess-1.3]# make && make install
報錯解決辦法:
configure: error: *** Missing development files for the GeoIP library
-----安裝GeoIP依賴(步驟1)
configure: error: *** Missing development libraries for ncursesw
安裝ncursesw:yum install libncursesw5-dev ncurses-libs ncurses-devel
GoAccess的使用
1、修改配置文件
#修改goaccess配置文件
[root@ljcccc ~]# vim /usr/local/etc/goaccess/goaccess.conf
#修改如下三行(去掉註釋信息)
time-format %H:%M:%S
date-format %d/%b/%Y
#NCSA Combined Log Format
log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
2、指定分析的日誌
[root@ljcccc ~]# goaccess -f /var/log/nginx/access.log
回車即可看到當前日誌分析結果
控制檯下的操作方法:
控制檯下的操作方法:
F1 主幫助頁面
F5 重繪主窗口
q 退出
c 設置或改變配色方案
1-9 跳轉到對應的模塊編號
SHIFT + 0-9 激活超過10的模塊
o 打開當前模塊的詳細試圖
j 當前模塊向下滾動
k 當前模塊向上滾動
s 對模塊排序
/ 向前在任意{詳細視圖}窗口搜索輸入模式(pattern)
n 在任意{詳細視圖}窗口中找到下一次出現的位置
t 跳到第一個條目或屏幕頂端
b 跳到最後一個條目或者屏幕底部
3、在web端中顯示
使用命令指定配置,將生成的信息保存爲html
#1.測試是否能通過終端直接展示
[root@ljcccc ~]# goaccess -f /var/log/nginx/access.log -p /usr/local/etc/goaccess/goaccess.conf
#2.將分析結果保存爲HTML
[root@ljcccc ~]# /usr/local/bin/goaccess /var/log/nginx/access.log -o /usr/share/nginx/log/index.html -p /usr/local/etc/goaccess/goaccess.conf
#3.將其加入定時任務
#由於對日誌實時性要求不是非常高,於是寫個小腳本,配置crontab,讓其每隔一段時間轉換一次,也可以實現僞實時性觀察log,如下:
#!/bin/bash
LANG="zh_CN.UTF-8"
/usr/local/bin/goaccess /var/log/nginx/access.log -o /usr/share/nginx/log/index.html -p /usr/local/etc/goaccess/goaccess.conf
#4.然後再將腳本加入到crontab即可
[root@ljcccc ~]# crontab -l
#定時goaccess生成的信息保存爲html
30 * * * * /bin/bash /root/scripts/goaccess.sh
在小腳本中定義:LANG=“zh_CN.UTF-8”,可以讓web界面顯示中文。喜歡看英文的小夥伴也可以不加這。
4.配置一個NGINX虛擬主機,將root指向/usr/share/nginx/log,這樣就可以通過域名去訪問HTML界面
輸入域名查看頁面
GoAccess是一個非常有價值的工具,它能給系統管理員實時提供可視的HTTP 統計分析。雖然GoAccess的默認輸出是標準輸出,但是你也可以將他們保存到JSON,HTML或者CSV文件。這種轉換可以讓 GoAccess在監控和顯示網站服務器的統計數據時更有用。