使用Go语言开发的一款轻量级可视化服务器监控监控软件

news/2024/12/2 12:13:58/文章来源:https://www.cnblogs.com/qqblog/p/18581609

大家好,我是兔兔,兔兔答题的开发者。兔兔答题是一款简单、易用的答题系统,可应用于微信考试、付费考试、社会调查问卷、明星知识问答、员工培训考核、模拟自测、企业面试、试题库等多种场景。兔兔答题官网文档

进入给大家分享的内容是一款轻量级的日志可视化图形工具。在兔兔答题在部署的过程中使用的是NGINX作为web服务器,在很多时候想对NGINX的访问日志做一些分析,例如每天的访问量、请求峰值等等相关的内容。要实现这样的功能也很简单,市面上有很多这样的可视化工具,例如ELK、Prometheus等这些开源的工具。这几款软件虽然很强大,但部署上和体量上都比较麻烦。

今天分享的一款软件就能很好的解决这个问题,GoAccess是一款开源的且具有交互视图界面的实时Web日志分析工具,通过你的Web浏览器或者*nix系统下的终端程序(terminal)即可访问。能为系统管理员提供快速且有价值的 HTTP 统计,并以在线可视化服务器的方式呈现。

GoAccess

功能简介

  • 完全实时

所有面板以及指标均按照指定时间间隔更新,在终端(Terminal)下是200ms,HTML则是每秒。

  • 支持几乎所有Web日志格式

GoAccess允许任意自定义日志格式。 可预定义的格式包括: Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront等等。

  • 跟踪应用响应时间

跟踪处理请求的时间消耗。对于解决站点页面访问速度下降非常有用。

  • 增长日志处理

需要持续保持数据,GoAccess有能力处理在磁盘上以B+Tree数据库存储并且不断增长的日志。

  • 仅依赖一个模块

GoAccess 是用 C 语言编写的。 仅仅需要ncurses这一个模块即可运行。同时 GoAccess 甚至还拥有自己的兼容 RFC6455 协议的 Web Socket 服务器。

  • 易于使用

您可以直接运行GoAccess去处理您的访问日志文件,仅需选取日志格式然后让GoAccess解析日志内容并将统计结果展示出来。

  • 访客画像

可以按照小时或者指定日期确定最慢请求的访问次数,访客数量,带宽以及其他相关度量值。

  • 支持虚拟主机

拥有多个虚拟主机?在控制面板中能够显示出哪一个虚拟主机消耗Web服务器上最多的资源。

  • 配色风格可定制化

GoAccess的配色风格十分易于定制化。无论是通过终端,还是仅仅通过简单修改HTML页面的层叠样式表。

效果预览

  • 漂亮的终端控制面板:GoAccess默认实时输出到终端。GoAccess在一个可以滚动显示的面板中通过展示不同的报告摘要来向您呈现服务器的各种指标。

  • 多种预览格式:除了通过终端输出,GoAccess允许您生成 HTML,JSON或者CSV格式的报告。您甚至可以通过电子邮件发送 HTML 报告,因为它是由没有外部文件依赖的单个文件组成,是不是很酷!

  • 清晰的日志内容:使用主机面板可以非常容易的发现不怀好意的爬虫/机器人以及标记出谁吃掉了你的带宽资源。同时还能够显示每一台主机上的User-Agents列表。

  • 易于操作的界面:控制面板由不同的报告组成 — 报告面板可以扩展以显示更多信息,这样您就可以快速的在不同报告之间找出他们的相互关系。

如何安装

下载源代码并通过源码方式进行安装。

# 下载源码包
cd /usr/local && wget https://tar.goaccess.io/goaccess-1.7.tar.gz
# 解压目录
tar -xzvf goaccess-1.7.tar.gz && cd goaccess-1.7/
# 编译安装
./configure --enable-utf8 --enable-geoip=mmdb --prefix=/usr/local/goaccess-1.7
# 添加到系统目录
cp /usr/local/goaccess-1.7/bin/goaccess /usr/bin/

错误解决,如果在执行上面的命令,发现了该错误信息Missing development files for libmaxminddb library。可以通过如下命令解决。

yum install -y libmaxminddb-devel 

修改配置,编辑/etc/goaccess.conf,在末尾加上。

time-format %T
date-format %d/%b/%Y
log_format %h - %^ [%d:%t %^] "%r" %s %b "%R"  "%u" "%^" "%T"

运行并生成预览文件。

LANG="zh_CN.UTF-8" goaccess -f /var/log/nginx/access.log -p /etc/goaccess.conf

执行上面的命令之后,就会自动生成一个.html文件,也就是文章顶部演示的截图效果。

优势

对于GoAccess来说,采用Go预压开发,具有简单、易用的特点,并且功能也能满足日常需要。如果你仅仅是想统计网站的请求记录,而不需要做其他的功能,强烈建议你使用该工具。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/845375.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

中电金信:源启数据资产平台的智能化与安全化的创新之道

中国企业在数智化转型中在数据治理领域遭遇多重挑战,包括在数据标准化、数据质量提升、数据分级分类,以及数据安全治理等。近几年,中电金信依托自主研发的智能数据底座“源启数据资产平台”,助力企业实现数据驱动的业务经营和精益管理。该平台不断吸纳全球数据治理领域的前…

【WEB漏洞】并发漏洞+经典案例

一、简单介绍1.1 并发漏洞概述1.2 并发漏洞常出现的功能点及解决方法1.2.1 用户注册/账户管理1.2.2 秒杀/抢购功能1.2.3 支付与结算1.2.4 文件读写1.2.5 日志记录1.2.6 缓存更新1.2.7 任务调度1.2.8 数据库操作1.2.9 队列消费1.2.10 多线程计算1.2.11 微服务间的并发请求1.2.12…

AI之旅:Microsoft.Extensions.AI 送惊喜,Cnblogs.DashScope.AI 表支持

https://www.cnblogs.com/cmt/p/185775742024年10月8日,微软 .NET 官方博客发布了一篇博文 Introducing Microsoft.Extensions.AI Preview – Unified AI Building Blocks for .NET,给 .NET 开发者带来了一个小惊喜,.NET 类库将增加一个统一的调用 AI 服务的抽象接口层。Mic…

word 图标变为文本图标 修复不起作用

参考 https://blog.csdn.net/qq_42925869/article/details/141466944,在HKEY_CURRENT_USER\Software\Classes\Applications目录下发现没有WORD的程序,因此参考其他程序结构,手动新建。 新建完成后再次应用office tool plus修复,修复完成后图标恢复。

CH585_IAP升级步骤

1、打开名为:McuProgramIAPTool.exe的工具,工具界面如图: 注:仅下载界面有效2、给接收器升级时,不需要保证2.4G处于连接状态,只要接收器插在PC上即可完成升级 3、选择接口:mi_034、点击搜索按钮,如果插入了2.4G接收器,会枚举到对应设备,返回已连接信息5、选择要升级的…

YASKAWA安川DX100控制柜维修看这几步

维修YASKAWA安川DX100控制柜需要综合运用多种诊断技巧,并遵循严格的安全操作规程。通过预防性维护和及时的故障处理,可以显著提高DX100控制柜的可靠性和使用寿命,从而保障企业生产线的稳定运行。同时,建议联系子锐机器人维修定期对YASKAWA安川机器人维修和保养。一、YASKAW…

待办事项太多?这些App让你轻松搞定!

在日常工作和生活中,许多人都有过忘记重要事项或任务堆积的困扰。为了提高工作效率和生活质量,越来越多的人开始寻求一种高效的方式来管理自己的任务和待办事项。幸运的是,随着技术的进步,各类待办事项App应运而生,它们不仅能够帮助我们合理安排时间,还能通过各种智能化功…

cors问题复现

目录环境配置前端服务器 (端口3000)配置API服务器 (端口5000)启用配置 环境 Debian12 192.168.2.102/24rambo@mac:~$ cat /etc/apt/sources.list.d/debian.sources Types: deb URIs: https://mirrors.tuna.tsinghua.edu.cn/debian Suites: bookworm bookworm-updates bookworm…

Qt/C++实现帧同步播放器/硬解码GPU绘制/超低资源占用/支持8K16K/支持win/linux/mac/嵌入式/国产OS等

一、前言 首先泼一盆冷水,在不同的电脑上实现完完全全的帧同步理论上是不可能的,市面上所有号称帧同步的播放器,同一台电脑不同拼接视频可以通过合并成一张图片来绘制实现完完全全的帧同步,不同电脑,受限于网络的延迟,命令交互的时间占用,不同硬件之间的主频偏差等,肯定…

EyeSoothe:用科技守护您的眼睛!

眼睛是心灵的窗口,而 EyeSoothe 则是您保护眼睛健康的智能助手。这款全新的护眼应用结合了人工智能和深度分析技术,为您提供全方位的视力管理服务,带来舒适与便利。 https://apps.apple.com/cn/app/eyesoothe/ 为什么选择 EyeSoothe? • AI智能试戴眼镜:借助AI虚拟试戴功能…

ai大模型流式输出------基于SSE协议的长连接实现

传统的http1.0请求开发,已经满足了我们日常的web开发。一般请求就像下图这样子,客服端发起一个请求(触发),服务端做出一个响应(动作): 有时会有诸如实时刷新,实时显示的场景,我们往往是客户端定时发起请求,不断的尝试获取最新的数据。但是每次请求都会创建并释放一个…

子卡设计原理图:232-基于FMC的2收2发TLK2711子卡

基于FMC的2收2发TLK2711子卡 一、板卡概述TLK2711 是千兆位收发器,专用于超高速双向点对点数据传输系统。TLK2711与时钟芯片SI5338相结合支持1.6Gbps至2.5Gbps的有效串行接口速度,可提供高达 2Gbps的数据带宽。板卡包含2路TLK2711,实现2收2发 。二、技术规格 ● 电源供电:F…