溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

獨(dú)立部署Goaccess服務(wù)器實時分析日志

發(fā)布時間:2020-06-08 14:02:58 來源:網(wǎng)絡(luò) 閱讀:488 作者:rocketme 欄目:系統(tǒng)運(yùn)維

? ? ? ? 對于一個有潔癖的運(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


最后展示一下效果圖:

獨(dú)立部署Goaccess服務(wù)器實時分析日志


向AI問一下細(xì)節(jié)

免責(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)容。

AI