/var/log/messages 警报事件级别(错误、警告、失败等)存储在哪里?

/var/log/messages 警报事件级别(错误、警告、失败等)存储在哪里?

CentOS 7 中的某个系统文件中是否存储了 /var/log/messages 事件级别关键字列表,其中显示了所有可能的“字符串“在通过 /var/log/messages 或 dmesg 等进行 grep 时要搜索什么?

我想使用脚本来搜索最常见或所有可能的事件,如错误、失败、警告、内核等。

此外,日志文件消息、dmesg、cron 等的可能事件是否不同,或者不同日志文件中的事件关键字是否都相同?

答案1

/var/log/messages日志优先级根本没有存储。

与其前身一样,rsyslog使用优先级作为提示来确定将任何给定的日志消息路由到何处。默认情况下,它不会记录优先级本身。

然而,systemd 日志记录优先级(并保留大量其他有趣的元数据)。您可以使用该-p选项journalctl按优先级缩小日志消息的范围。

       -p, --priority=
           Filter output by message priorities or priority ranges. Takes
           either a single numeric or textual log level (i.e. between
           0/"emerg" and 7/"debug"), or a range of numeric/text log levels in
           the form FROM..TO. The log levels are the usual syslog log levels
           as documented in syslog(3), i.e.  "emerg" (0), "alert" (1),
           "crit" (2), "err" (3), "warning" (4), "notice" (5), "info" (6),
           "debug" (7). If a single log level is specified, all messages with
           this log level or a lower (hence more important) log level are
           shown. If a range is specified, all messages within the range are
           shown, including both the start and the end value of the range.
           This will add "PRIORITY=" matches for the specified priorities.

请参阅journalctl手册页,了解搜索日志的所有方法。

答案2

在 Linux 系统上解析日志文件通常并不是一件容易的事,因为“syslog 兼容”这个口号经常被误用(https://en.wikipedia.org/wiki/Syslog) 和现有的标准化尝试 (https://www.rfc-editor.org/rfc/rfc3164https://www.rfc-editor.org/rfc/rfc5424) 常常被人们忽视。

现有的日志解析器可能会帮助您完成这项任务。例如 logstash。

相关内容