我使用GoAccess处理 Web 服务器日志。它是免费的,并且可以直接在我的服务器上运行。 Web 服务器访问日志可能会变得非常嘈杂,这使得找到我要查找的内容变得更加困难。我想看到的只是实际的网页点击量,而不是爬虫、图像或 api 调用等。
我发现执行此操作的最佳方法是在将输出通过管道传输到 GoAccess 之前简单地 grep 日志文件。我在服务器上制作了一个快速脚本来执行此操作。
#!/bin/bash # Default query, so we get something no matter what DEFAULT_QUERY='"\/journal\/' # Use the provided query or default to the default query QUERY="${1:-$DEFAULT_QUERY}" # Filer out /api/ and /assets/ hits, then pipe that to the query before # sending to GoAccess sudo grep -v '\/api\/' /var/log/caddy/baty.net.log | \ grep '\/assets\/' | \ grep -i "$QUERY" | \ goaccess - --log-format=CADDY --ignore-crawlers --unknowns-as-crawlers