上周,我发起了一个个人项目。一个很好的变化,绝对来自于在Covid-19禁闭期间想要做些其他事情的愿望。随着那次发布,我有了某种程度的分析的愿望,我不需要完整的客户旅程,但我肯定很好奇,在我将我的网站提交给黑客新闻后,有多少人在使用我的网站,你知道吗?
我也有动力继续去谷歌我的生活,这是我在电子邮件、主机和搜索方面一直在做的事情。
所以我的小服务在运行,但是分析!我可以grep我的nginxlog文件来获得测量值,但是我想要更健壮的东西。我发现了一项名为Simple Analytics的APAID服务,它提供专注于隐私的分析,顾名思义,就是简单的分析。
这很棒,但对我来说并不理想。我的应用程序没有产生任何收入(它也无意产生任何收入),所以我需要一些其他的东西。为了记录起见,我建议你去看看。
基本分析。在了解了客户的全部行程后,我并不是很清楚,我只是好奇随着时间的推移,有多少人使用了我的服务。
不侵犯隐私。我不想使用cookie或会话跟踪我的用户。
重量轻,我可以编译。理想情况下,我可以自行托管,不必担心将我的数据通过管道传输到另一个服务。
立即,这似乎满足了我的主要标准,并进一步考虑跟踪更有趣的指标,如应用程序响应时间。因此,我尝试了GoAccess。安装很简单,只需一个简单的命令,我就可以得到以下输出:
GoAccess可以很好地处理Apache和nginx日志格式,尽管它支持种类繁多的日志格式。此命令为您的服务器打开基于终端的各种数据范围的可视化。
这很棒,甚至还支持基于HTML的静态和实时仪表板。它的输出是美丽的:
我的当务之急是我的原木会轮换。默认情况下,当您安装nginx时,会添加一个logrotate配置来每天轮换它们。幸运的是,GoAccess可以方便地分析多个文件:
但是,在每次旋转时编写和调整都会令人沮丧。幸运的是,我们可以利用管道操作员。我喜欢Unix应用程序的可组合性!
与解析单个Access文件相比,结果多花费了几十毫秒,但在浏览数据时,其他方面的体验是相同的。更多信息!
当然,由于我们所在的平台(Linux!),我们可以通过各种方式组合我们的应用程序将捕获的数据。例如,假设我每天轮换日志,并想要最近15天的日志文件(包括今天):
这真是太棒了。它给了我很多我想要的,而且我喜欢各种输出选项。利用操作系统,我可以使用其他工具来指定我想要解析的数据类型,而GoAccess对它的处理方式是一样的。
我在网上搜索了更多的选项,找到了像GoatCounter这样的其他几个,但它并不符合我的全部标准(在这种情况下,它不是自我托管的)。
我更喜欢GoAccess的一个地方是,我可以在一台单独的机器上运行它,将来自多个服务器的Ringlog转移到一个位置,然后创建我所需的仪表板。这很好地迎合了这样一个事实,即我正在运营Digital Ocean Droplet,虽然它们不会自己崩溃,但我自己也有擦除和从头开始的倾向(只是测试我重新配置服务器的弹性)。
GoAccess提醒我,像它这样的可组合工具是多么美丽。它的功能集非常少,并且可以很好地配合我们在*nix平台上已有的工具。做好一件事--智慧的话语。