GoAccess 開源日誌輕工具部署與分析
1 前言
今天給大家介紹一款開源輕量化的日誌分析神器,名叫 GoAccess。它是一款基本終端的快速日誌分析工具,核心功能是能夠實時快速分析和檢視 Web 伺服器統計資訊,最主要是針對中介軟體 ACCESS 訪問日誌來分析系統的行為。而無需使用您的瀏覽器,但它能夠生成完整的,獨立的實時 HTML 報告(非常適合分析,監控和資料視覺化)以及 a JSON 和 CSV 報告。這款工具能對大日誌量檔案進行分析,降低工程師分析日誌的難度,提升問題定位效率。
2 GoAccess 介紹
GoAccess 是一個開源的實時網路日誌分析器和互動式檢視器,可以在Linux/Unix 系統中的終端或透過瀏覽器執行。它為需要動態視覺化伺服器報告的系統管理員提供快速且有價值的 HTTP 統計資訊。
3 GoAccess 功能
快速, 實時, 毫秒/秒級更新, C 語言編寫
僅依賴 ncurses 模組
幾乎支援所有 Web 日誌 格式 (Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, 等等)
簡單設定即可支援自定義格式日誌
漂亮的終端以及 bootstrap 風格控制皮膚 (易於將 GoAccess 調整為您自己的顏色搭配和風格)
支援 Valgrind 測試
4 GoAccess 指標
GoAccess 解析指定的 Web 日誌檔案並將統計結果輸出到 X 終端。功能如下:
5 GoAccess工具安裝
5.1 軟體安裝
1、 部署依賴包
GoAccess 軟體安裝需要依賴一些軟體包,需要提前將下面的軟體包安裝好。
yum install glib2 glib2-devel GeoIP-devel ncurses-devel zlib zlib-devel yum install gcc –y yum -y install GeoIP-update |
2、 原始碼安裝GoAccess
這裡使用原始碼安裝 GoAccess 軟體,軟體官方下載地址 版本為例來安裝。
wget tar xzvf goaccess-1.3.tar.gz cd goaccess-1.3/ ./configure --enable-utf8 --enable-geoip=legacy make make install |
3、
GoAccess
配置變更
修改配置 /usr/local/etc/goaccess/goaccess.conf 檔案 並將以下配置項的註釋符去掉 date-format %d/%b/%Y time-format %H:%M:%S html-report-title date-spec hr
皮膚使用如下幾個皮膚,將將以下幾個皮膚的註釋符去掉 ignore-panel REQUESTS_STATIC ignore-panel NOT_FOUND ignore-panel OS ignore-panel VIRTUAL_HOSTS ignore-panel KEYPHRASES ignore-panel GEO_LOCATION
在配置檔案中新增日誌模式標準 log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u" "%T" "%e" |
以上GoAccess算是安裝完成……………………………………………..
5.2 應用日誌標準化配置
為了使用 GOACCESS 工具監控應用的效能情況,對使用的應用 nginx 或 tomcat 中介軟體服務的日誌輸出進行標準化設定。
# 修改 /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"'; 然後重啟 nginx 服務 |
最終日誌輸出格式標準內容如下
5.3 GoAccess 實時更新報告
安裝與配置準備工作都已經完成後,接下來需要對報告進行實時呈現分析,採用定時指令碼方式將對被監控服務日誌進行實時更新分析並生成 html 報告。
/usr/local/bin/goaccess /opt/nginx/logs/access.log -o /usr/local/nginx/html/monitor.html -p /usr/local/etc/goaccess/goaccess.conf --real-time-html --daemonize |
Nginx 日誌檔案按天自動生成
#!/bin/bash log_files_path="/usr/local/nginx/logs/" log_files_dir=${log_files_path} log_files_name=(access ) nginx_sbin="/usr/local/nginx/sbin/nginx" save_days=30 log_files_num=${#log_files_name[@]} for((i=0;i<$log_files_num;i++));do mv ${log_files_path}${log_files_name[i]}.log ${log_files_dir}${log_files_name[i]}.log_$(date -d "yesterday" +"%Y-%m-%d") done find $log_files_path -mtime +$save_days -name "*.log" -exec rm -rf {} \; $nginx_sbin -s reload ps -ef|grep goaccess |grep -v grep |awk '{print $2}'|xargs kill -9 /usr/local/bin/goaccess /usr/local/nginx/logs/access.log -o /opt/nginx/html/devopsrpt.html -p /usr/local/etc/goaccess/goaccess.conf --real-time-html –daemonize
00 00 * * * /opt/logmonitor /cut_nginx_logs.sh |
為了能讓瀏覽器能實時的訪問日誌分析結果,需要配置一個 nginx 來訪問這個靜態 html 頁面。
#nginx 原始碼安裝 useradd -s /sbin/nologin -M nginx Wget ./configure --prefix=/opt/nginx --user=nginx --group=nginx --without-http_gzip_module make && make install 修改配置檔案 /opt/nginx/conf/nginx.conf 新增配置如下 location / { root /opt/nginx/html/; expires 30d; } |
5.4 GoAccess 報告分析
1 、以下是採用GoAccess分析工具對nginx中介軟體應用日誌分析結果如下:
2
、日誌分析結果報告概覽資訊
3 、每日獨立訪問客
每日的訪問量與每日訪客數
4、URL 請求檔案
顯示了訪問量最大的 URL ,這對於合理調整網站結構很有幫助。同時能分析到哪些 URL 檔案平均響應時間最長,效能最差。
5 、訪客主機名和 IP 地址
顯示訪問的 IP ,有時候如果某個 IP 異常飈高是需要注意的
6 、瀏覽器
透過瀏覽器報告可以分析哪些使用者使用的瀏覽器頻率最高,體驗最好的瀏覽器。
7 、 HTTP 狀態碼
對 HTTP 的狀態碼 200 , 302 , 404 , 500 進行聚合統計, 404 頁面不友好,如果 500 太多說明伺服器效能很慢,需要最佳化改進。
有需要的朋友可以關注我的公眾號,文章每日一更
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28833846/viewspace-2724921/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx日誌分析工具goaccessNginxGo
- 最好用的開源日誌分析工具
- 5 個有用的開源日誌分析工具
- 使用goaccess統計nginx日誌GoNginx
- 解鎖Nginx日誌的寶藏:GoAccess——你的實時、互動式Web日誌分析神器!NginxGoWeb
- mongodb 日誌分析工具mtoolsMongoDB
- MongoDB 日誌分析工具 mtoolsMongoDB
- 日誌分析工具 Log Parser
- 從日誌到洞察:GoAccess如何成為Nginx管理者的必備工具GoNginx
- Linux下使用GoAccess監控Nginx訪問日誌LinuxGoNginx
- 開源元件ELK日誌系統配置與管理元件
- ELK 日誌分析系統 ----------- 部署ElasticSearch群集Elasticsearch
- 日誌分析-apache日誌分析Apache
- 輕鬆定位硬體故障方法-日誌分析
- GoAccess:一個實時的 Web 日誌分析器及互動式檢視器GoWeb
- Mysql 慢日誌分析工具MysqldumpslowMySql
- pgbadger 慢日誌分析工具
- LogMiner日誌分析工具說明
- ClickHouse與威脅日誌分析
- 開源大資料叢集部署(九)Ranger審計日誌整合(solr)大資料RangerSolr
- iOS輕量分組日誌工具 Log4OCiOS
- mysql慢查詢日誌分析工具使用MySql
- Mysql慢查詢日誌分析工具mysqlslaMySql
- 最新Centos7.6 部署ELK日誌分析系統CentOS
- 使用Docker快速部署ELK分析Nginx日誌實踐DockerNginx
- [日誌分析篇]-利用ELK分析jumpserver日誌-日誌拆分篇Server
- 日誌傳送部署
- 詳解Oracle AWR執行日誌分析工具Oracle
- 慢查詢日誌開啟分析
- RHEL 6.5 搭建Rsyslog日誌伺服器和Loganalyzer日誌分析工具伺服器
- 玄機-第二章日誌分析-apache日誌分析Apache
- Apche日誌系列(4):日誌分析(轉)
- FDOAGENT日誌分析
- crash日誌分析
- awk分析日誌
- pg日誌分析
- 監聽MySQL的binlog日誌工具分析:CanalMySql
- mysql分析慢查詢日誌工具mysqlsla安裝MySql