您好,登錄后才能下訂單哦!
? ? ? ? 對于一個有潔癖的運維人員來說,一機多應用是難以接受的事情。因此在部署goaccess的時候,必然會獨立于需要被分析日志的應用服務器。而goaccess的websocket配置最容易令剛接觸goaccess的同學摸不著頭腦。
一、理解goaccess的websocket
? ? ? ? goaccess的websocket需要在配置文件或者命令行中增加real-time-html屬性才會在生成報告的時候同時創建websocket。
配置文件節選:
#goaccess.conf log-file?/goaccess/logs/access.log output?/goaccess/index.html real-time-html?true ws-url?wss://www.mynginxsrv.com/wss/
終端執行命令:
#?goaccess?-p?goaccess.conf? #?WebSocket服務器已準備接收來自客戶的連接
? ? ? ? 好了,如果這個時候你興沖沖的訪問你的ws-url,你會訪問無法訪問。這是因為ws或者wss是**嵌入在html文件**內的,當服務端數據發生變化時,**會主動推送到瀏覽器**。也就是,我們實際上需要先訪問html文件(即報告文件),與websocket建立連接后goaccess服務器會主動推送實時分析內容到瀏覽器。
? ? ? ? 一般情況下,為了節省IP資源,都是LVS→Nginx→Backend。那么對于goaccess來說就是Backend的應用服務器,https連接也是交由Nginx處理。因此在配置ws-url的時候,需要指定的就是Nginx的監聽主機名。而goaccess默認的ws-url對應的端口是7890,這個屬性也是寫在了報告當中的。因此我們就只有兩個選擇,一個是暴露LVS或者Nginx的7890端口,一個是修改goaccess端口。而修改goaccess的port之后,goaccess服務器本地的websocket的端口也會隨之改變,這里是一個容易踩坑的地方。
二、nginx配置與goaccess配置
? ? ? ? OK,大概了解了goaccess的機制后,我們來說一下具體怎么操作配置。
1、nginx服務器的配置
nginx配置文件節選:
http?{ ????server?{ ????????#charset?utf-8; ????????listen?443?http2?ssl; ????????server_name?www.mynginxsrv.com; #以下配置為報告文件的存放位置,您也可以通過nfs共享方式處理,這里不做展開 ????????location?/nginx/nginx_status.html?{ ????????????alias?/opt/nginx/www/index_template.html; ????????} ????????#以下為websocket配置信息,只需將proxy_pass對應信息修改為自己的goaccess服務器信息即可 ????????location?/wss/??{ ????????????proxy_pass?http://192.168.1.2:443; ????????????proxy_set_header?Host?$http_host; ????????????proxy_set_header?X-Forwarded-Proto?$scheme; ????????????proxy_set_header?X-Real-IP?$remote_addr; ????????????proxy_http_version?1.1; ????????????proxy_set_header?Upgrade?$http_upgrade; ????????????proxy_set_header?Connection?"upgrade"; ????????} }
擴展:
考慮到goaccess的websocket的特性,我們完全可以構建一條虛假的日志內容,然后利用goaccess生成html文件,直接存放nginx服務器,方便管理。
#這個是我自行構建的虛假nginx日志信息,可以用于構建生成模板 222.222.222.222?-?-?[01/Dec/2010:00:00:34?+0800]?"GET?/?HTTP/2.0"?10.0.0.1:80?200?7164?"https://www.baidu.com/"?"chrome"?"-"?"0.338" #對應的log_format: log_format?%h?-?%^?[%d:%t?%^]?"%r"?%^?%s?%b?"%R"?"%u"?"%^"?"%T"
2、完整的goaccess配置文件
? ? ? ? 需要注意打開配置文件中的端口或者關閉防火墻,不然你在瀏覽的時候會發現502錯誤
time-format?%T date-format?%d/%b/%Y log_format?%h?-?%^?[%d:%t?%^]?"%r"?%^?%s?%b?"%R"?"%u"?"%^"?"%T" log-file?/goaccess/logs/access.log output?/goaccess/report/index_nginx.html real-time-html?true ws-url?wss://www.mynginxsrv.com/wss/ daemonize?true port?443
最后展示一下效果圖:
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。