最近想用goaccess來(lái)分析下nginx日志,但是苦于nginx日志配置格式不是按照正常格式來(lái)的,完全是我們按照自己的需求來(lái)寫(xiě)的,所以導致goaccess分析不了,需要自己重新定義下格式;但是網(wǎng)上雖然介紹goaccess的很多,但是大多都是就重避輕,將格式的自定義忽略掉,因此我就來(lái)把自定義這塊說(shuō)下。
GoAccess是一款開(kāi)源、實(shí)時(shí),運行在命令行終端下的web日志分析工具。該工具提供快速、多樣的HTTP狀態(tài)統計,可以令管理員不再糾結于統計各類(lèi)數據,和繁雜的指令以及一大堆管道/正則表達式說(shuō)byebye。
GoAccess的多種展示方式
goaccess有多種數據可視化的方式,分別為:
命令行輸出格式化數據
利用access.log生成靜態(tài)的可視化數據
生成實(shí)時(shí)可視化數據
注意,如果是編譯安裝且選擇了 –enable-geoip=mmdb的話(huà)需要編輯配置文件,并在使用命令的時(shí)候帶上參數 –config-file=/usr/local/etc/goaccess/goaccess.conf,如果是用包管理器安裝的話(huà)則不需要
命令行輸出GoAccess
goaccess /var/log/nginx/access.log -c,會(huì )先詢(xún)問(wèn)你數據的格式,我這里的日志使用的是第一種。
解析accesslog生成靜態(tài)html
GoAccess還可以解析access.log生成靜態(tài)html,以更加直觀(guān)的方式來(lái)展示數據。
goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED,之后再使用瀏覽器訪(fǎng)問(wèn)report.html即可查看報告,各種數據一應俱全。
實(shí)時(shí)解析訪(fǎng)問(wèn)日志
GoAccess除了可以生成靜態(tài)的html文件,還可以生成實(shí)時(shí)網(wǎng)站訪(fǎng)問(wèn)數據!
goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html --config-file=/usr/local/etc/goaccess/goaccess.conf
添加中文支持
Goaccess 1.3之后的版本提供了多語(yǔ)言支持,先在命令行中執行 apt install language-pack-zh-hans 安裝中文包,再使用export LANG=zh_CN.UTF-8修改環(huán)境變量,再次使用 goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED --real-time-html --config-file=/usr/local/etc/goaccess/goaccess.conf啟動(dòng)GoAccess可以發(fā)現已經(jīng)是中文界面了。
關(guān)于實(shí)時(shí)模式,可以查看官網(wǎng)的demo
異常退出
如果實(shí)時(shí)模式?jīng)]有正常退出,可能無(wú)法再次正常啟動(dòng),GoAccess默認使用7890 websocket端口,所以使用lsof -i:7890查看占用該端口的進(jìn)程號并kill即可。
ssl支持
如果需要在加密連接上輸出實(shí)時(shí)數據,則需要使用 --ssl-cert= 和 --ssl-key=,我在設置之后訪(fǎng)問(wèn)report.html發(fā)現數據依舊是靜態(tài)的,突然想起我用了cloudflare cdn,而7890端口并不在cloudflare的支持端口列表里面,所以我使用參數 --ws-url=wss://服務(wù)器域名(我們的瀏覽器會(huì )嘗試與該域名的8443端口見(jiàn)了ws連接):8443 --port=8443 把端口改成了8443。令人沒(méi)想到的是,此時(shí)的report.html使用代理鏈接的時(shí)候是可以連接的,并可以查看實(shí)時(shí)信息,而直接連接的時(shí)候依舊是靜態(tài)數據,tcping一看。
去cloudflare的官網(wǎng)可以發(fā)現如下內容
只有端口 80 和 443 可兼容以下服務(wù):
對于啟用了中國網(wǎng)絡(luò )的域名的中國境內數據中心 HTTP/HTTPS 流量,
也就是說(shuō),國內是沒(méi)辦法通過(guò)cloudflare連接非80/443端口的…
反向代理
但是也不是沒(méi)有辦法連接,最后我想到了反向代理的方案。
將啟動(dòng)參數改為--ws-url=wss://你的域名.com/goaccess --port=7890
修改nginx站點(diǎn)配置文件 /etc/nginx/site-available/default,添加下面內容
location /goaccess { proxy_redirect off; proxy_pass https://127.0.0.1:7890; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; }
注意,如果你的站點(diǎn)配置文件里面開(kāi)啟了url重寫(xiě),為了避免 /goaccess 受到影響,我們需要把該路徑排除重寫(xiě)。
location / { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; } }
location /goaccess/ { }
之后重啟nginx,再訪(fǎng)問(wèn)report.html,發(fā)現左邊齒輪處終于顯示connect了。
如果你只是自己看或者不在意ip暴露,其實(shí)直接使用ip直接連接不走cdn就沒(méi)那么麻煩了。
到此這篇關(guān)于使用 goaccess 分析nginx 日志的文章就介紹到這了,更多相關(guān) goaccess 分析nginx 日志內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站