您好,登錄后才能下訂單哦!
? ? ? ? 對于一個有潔癖的運(yùn)維人員來說,一機(jī)多應(yīng)用是難以接受的事情。因此在部署goaccess的時候,必然會獨(dú)立于需要被分析日志的應(yīng)用服務(wù)器。而goaccess的websocket配置最容易令剛接觸goaccess的同學(xué)摸不著頭腦。
一、理解goaccess的websocket
? ? ? ? goaccess的websocket需要在配置文件或者命令行中增加real-time-html屬性才會在生成報告的時候同時創(chuàng)建websocket。
配置文件節(jié)選:
#goaccess.conf log-file?/goaccess/logs/access.log output?/goaccess/index.html real-time-html?true ws-url?wss://www.mynginxsrv.com/wss/
終端執(zhí)行命令:
#?goaccess?-p?goaccess.conf? #?WebSocket服務(wù)器已準(zhǔn)備接收來自客戶的連接
? ? ? ? 好了,如果這個時候你興沖沖的訪問你的ws-url,你會訪問無法訪問。這是因為ws或者wss是**嵌入在html文件**內(nèi)的,當(dāng)服務(wù)端數(shù)據(jù)發(fā)生變化時,**會主動推送到瀏覽器**。也就是,我們實際上需要先訪問html文件(即報告文件),與websocket建立連接后goaccess服務(wù)器會主動推送實時分析內(nèi)容到瀏覽器。
? ? ? ? 一般情況下,為了節(jié)省IP資源,都是LVS→Nginx→Backend。那么對于goaccess來說就是Backend的應(yīng)用服務(wù)器,https連接也是交由Nginx處理。因此在配置ws-url的時候,需要指定的就是Nginx的監(jiān)聽主機(jī)名。而goaccess默認(rèn)的ws-url對應(yīng)的端口是7890,這個屬性也是寫在了報告當(dāng)中的。因此我們就只有兩個選擇,一個是暴露LVS或者Nginx的7890端口,一個是修改goaccess端口。而修改goaccess的port之后,goaccess服務(wù)器本地的websocket的端口也會隨之改變,這里是一個容易踩坑的地方。
二、nginx配置與goaccess配置
? ? ? ? OK,大概了解了goaccess的機(jī)制后,我們來說一下具體怎么操作配置。
1、nginx服務(wù)器的配置
nginx配置文件節(jié)選:
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對應(yīng)信息修改為自己的goaccess服務(wù)器信息即可 ????????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"; ????????} }
擴(kuò)展:
考慮到goaccess的websocket的特性,我們完全可以構(gòu)建一條虛假的日志內(nèi)容,然后利用goaccess生成html文件,直接存放nginx服務(wù)器,方便管理。
#這個是我自行構(gòu)建的虛假nginx日志信息,可以用于構(gòu)建生成模板 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" #對應(yīng)的log_format: log_format?%h?-?%^?[%d:%t?%^]?"%r"?%^?%s?%b?"%R"?"%u"?"%^"?"%T"
2、完整的goaccess配置文件
? ? ? ? 需要注意打開配置文件中的端口或者關(guān)閉防火墻,不然你在瀏覽的時候會發(fā)現(xiàn)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
最后展示一下效果圖:
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。