That’s genuinely great to hear, and I’m glad it worked out.
You did the hard part here: you kept testing methodically, provided solid data, and were willing to slow down and verify assumptions instead of guessing. That’s why this ended in a clean recovery instead of a dead drive.
For what it’s worth, I’ve hit more than a few of these bumps myself. I started out self-taught on an IBM XT back in 1987, when I was about six years old, and the learning process has never really stopped. Situations like this are just part of how you build real understanding over time.
This is also a good example of how enterprise hardware behaves very differently from consumer gear. Nothing here was “obvious” as a beginner, and the outcome reinforces an important lesson: unusable does not mean broken. You handled it the right way.
I’m especially glad if this thread is kept around. These kinds of issues come up regularly, and having a complete, factual troubleshooting trail will help the next person who runs into the same thing.
Enjoy the RAIDZ2 setup, and good luck with the additional vdev. Paying this forward is exactly how these communities stay useful.
Happy holidays, and all the best in the new year. 🥳
You could take a look at AWStats.
I used it years ago when I was running my own web server, and it worked well for exactly this type of use case: generating basic reports directly from server access logs (most viewed pages, browsers, referrers, status codes, etc.) without relying on any client-side tracking.
It processes standard web server logs (Apache, Nginx and similar), so there is no JavaScript involved and nothing for visitors to block. That also means your numbers will generally align much more closely with what the server actually handled, compared to client-side tools like Matomo.
From a quick glance it looks like development activity may have slowed after 2023, but log formats have been relatively stable for a long time. If you run it as an offline analyzer (generate static reports from logs and do not expose the CGI interface publicly), the security surface is minimal.
Regarding bots: since it works purely on access logs, you will still need to filter at the log level. Typical approaches include:
It is not a perfect solution, but if your goal is simple, privacy-respecting, server-side statistics without client-side scripts, it is a relatively lightweight option worth considering.