独立部署Goaccess服务器实时分析日志

  

对于一个有洁癖的运维人员来说,一机多应用是难以接受的事情,因此在部署goaccess的时候,必然会独立于需要被分析日志的应用服务器。而goaccess的websocket配置最容易令刚接触goaccess的同学摸不着头脑。


一、理解goaccess的websocket

goaccess的websocket需要在配置文件或者命令行中增加real-time-html属性才会在生成报告的时候同时创建websocket。


配置文件节选:

# goaccess.conf   日志文件/goaccess/日志/access.log   输出/goaccess/index . html   real-time-html真实   ws-url wss://www.mynginxsrv.com/wss/

终端执行命令:

# goaccess - p goaccess.conf   # WebSocket服务器已准备接收来自客户的连接

好了,如果这个时候你兴冲冲的访问你的ws-url,你会访问无法访问。这是因为ws或者wss是* *嵌入在html文件* *内的,当服务端数据发生变化时,* *会主动推送到浏览器* *。也就是,我们实际上需要先访问html文件(即报告文件),与WebSocket建立连接后goaccess服务器会主动推送实时分析内容到浏览器。


一般情况下,为了节省IP资源,都是lv→Nginx→后端。那么对于goaccess来说就是后台的应用服务器,https连接也是交由Nginx处理,因此在配置ws-url的时候,需要指定的就是Nginx的监听主机名。而goaccess默认的ws-url对应的端口是7890年,这个属性也是写在了报告当中的。因此我们就只有两个选择,一个是暴露lv或者Nginx的7890端口,一个是修改goaccess端口。而修改goaccess的港口之后,goaccess服务器本地的WebSocket的端口也会随之改变,这里是一个容易踩坑的地方。



二,Nginx配置与goaccess配置

好的,大概了解了goaccess的机制后,我们来说一下具体怎么操作配置。

1, Nginx服务器的配置

Nginx配置文件节选:

http {   服务器{   # utf - 8字符集;   听443 http2 ssl;   server_name www.mynginxsrv.com;   #以下配置为报告文件的存放位置,您也可以通过nfs共享方式处理,这里不做展开   位置/nginx/nginx_status。html {   别名/opt/nginx/www/index_template.html;   }   #以下为websocket配置信息,只需将proxy_pass对应信息修改为自己的goaccess服务器信息即可   位置/wss/{   proxy_pass http://192.168.1.2:443;   proxy_set_header主机http_host美元;   proxy_set_header X-Forwarded-Proto美元计划;   proxy_set_header X-Real-IP remote_addr美元;   proxy_http_version 1.1;   proxy_set_header升级http_upgrade美元;   proxy_set_header连接“升级”;      }   }

扩展:

考虑到goaccess的websocket的特性,我们完全可以构建一条虚假的日志内容,然后利用goaccess生成html文件,直接存放nginx服务器,方便管理。

#这个是我自行构建的虚假nginx日志信息,可以用于构建生成模板   222.222.222.222——[01/0800年12月/2010:00:00:34 +]“得到/HTTP/2.0”10.0.0.1:80 200 7164“https://www.baidu.com/薄案酢薄薄薄?.338”      #对应的log_format:   log_format % h - % ^ [% d % t % ^):“% r % ^ % s % b“% r”“% u”“% ^”“% t”

2,完整的goaccess配置文件

需要注意打开配置文件中的端口或者关闭防火墙,不然你在浏览的时候会发现502错误

时间格式% t   日期格式% d/Y % b/%   log_format % h - % ^ [% d % t % ^):“% r % ^ % s % b“% r”“% u”“% ^”“% t”   日志文件/goaccess/日志/access.log   输出/goaccess/报告/index_nginx.html   real-time-html真实   ws-url wss://www.mynginxsrv.com/wss/daemonize真实   端口443


最后展示一下效果图:

独立部署Goaccess服务器实时分析日志


独立部署Goaccess服务器实时分析日志