如何计算每秒的日志数?

如何计算每秒的日志数?

我有一个日志管理系统,其中使用了 Clickhouse 数据库metrico/qrynrsyslog在所有服务器(Debian 11)上将系统和应用程序收集的日志发送到promtail进行标记,然后promtail将它们发送到qrynqryn然后将日志插入 Clickhouse DB 并具有与 LogQL 兼容的 API。

我正在尝试找到 Clickhouse 系统利用率与发送到 Clickhouse 和从 Clickhouse 接收的数据之间的关系,因此,我需要计算log per second以估算每个系统利用率log per second,所以如果我有一个更大的环境,我已经知道应该为 Clickhouse RAM 和 CPU 使用率设置多少限制。

我的问题是如何计算这个log per second我只有一个 Clickhouse 实例但我不知道如何计算它。

方法并不重要,我只需要知道它log per second可以在系统级别、数据库级别、使用第三方应用程序等。

如有任何帮助我将不胜感激,先行致谢。

答案1

awk您可以使用和的组合uniq来计算每秒的记录数:

awk '{print $1" "$2" "$3}' /var/log/syslog|uniq -c

对于这样的示例数据:

[root@rhel01 ~]# tail /var/log/messages
Oct 10 08:51:29 rhel01 systemd[1]: Started Update UTMP about System Runlevel Changes.
Oct 10 08:51:29 rhel01 systemd[1]: Started Process archive logs.
Oct 10 08:51:29 rhel01 systemd[1]: Started pmlogger farm service.
Oct 10 08:51:29 rhel01 systemd[1]: Started Half-hourly check of pmlogger farm instances.
Oct 10 08:51:29 rhel01 systemd[1]: Reached target Timers.
Oct 10 08:51:29 rhel01 systemd[1]: Startup finished in 1.715s (kernel) + 5.822s (initrd) + 12.949s (userspace) = 20.486s.
Oct 10 08:51:30 rhel01 systemd[1]: NetworkManager-dispatcher.service: Succeeded.
Oct 10 08:51:32 rhel01 pcp-pmie[2130]: High per CPU processor utilization 99%util[cpu0]@rhel01 99%util[cpu1]@rhel01
Oct 10 08:51:33 rhel01 su[3183]: (to root) romeo on pts/0
Oct 10 08:51:34 rhel01 systemd[1]: pmlogger_daily.service: Succeeded.
[root@rhel01 ~]# tail /var/log/messages|awk '{print $1" "$2" "$3}'|uniq -c
      4 Oct 10 08:51:29
      1 Oct 10 08:51:30
      1 Oct 10 08:51:32
      1 Oct 10 08:51:33
      1 Oct 10 08:51:34
      1 Oct 10 08:51:43
      1 Oct 10 08:51:50

如果有延迟(没有按时间很好地排序的记录),您将需要使用sort命令:

sort /var/log/messages|awk '{print $1" "$2" "$3}'|uniq -c
<snip>
      6 Sep 23 09:28:15
      3 Sep 23 09:30:15
      3 Sep 23 09:40:15
      3 Sep 23 09:50:05

或仅awk与关联数组一起使用

awk '{a=$1" "$2" "$3;b[a]+=1} END {for (i in b) print b[i]","i}' /var/log/messages

答案2

在 logql 中你只需使用以下命令查询日志

count_over_time({label="labelValue"} [1s])

这将为您提供每 1 秒间隔选择的日志数量。

--

我很高兴看到我们的项目得到广泛应用。:)

相关内容