syslog 是一种用于在计算机系统中记录系统日志的标准。它提供了一种通用的方式来记录系统事件、错误信息和警告信息。syslog 协议包含了日志消息的格式和协议规范,并规定了日志消息应该如何在网络上传输。

syslog 工具会将事件信息记录到文件中,通常是 /var/log 目录下的一个或多个文件中,这些文件称为日志文件。每个日志文件都对应一个日志服务,如 /var/log/messages 对应的是消息服务,/var/log/auth.log 对应的是认证服务等。

syslog 工具可以帮助我们追踪系统的运行状态,分析问题,并找出解决方案。它的使用方法也很简单,我们可以使用 tail 命令来实时查看日志文件的内容,例如:

  1. tail -f /var/log/messages

也可以使用 less 命令来查看日志文件的内容,例如:

  1. less /var/log/messages

还可以使用 grep 命令来筛选日志信息,例如:

  1. grep ERROR /var/log/messages

这条命令会查找 /var/log/messages 文件中包含 ERROR 字符串的行。

syslog 日志优先级

在 syslog 工具中,日志优先级是用来分类日志信息的一种方式。syslog 工具定义了 8 级日志优先级,分别是:

  • emerg (紧急)
  • alert (警报)
  • crit (严重)
  • err (错误)
  • warning (警告)
  • notice (注意)
  • info (信息)
  • debug (调试)

emerg 优先级最高,表示系统出现了极其严重的错误,需要立即处理。alert 优先级次之,表示系统出现了危急的情况,需要立即采取行动。crit 优先级次之,表示系统出现了严重的错误,需要特别注意。err 优先级次之,表示系统出现了错误,需要注意。warning 优先级次之,表示系统出现了警告信息,需要注意。notice 优先级次之,表示系统出现了普通的信息,可以忽略。info 优先级次之,表示系统出现了普通的信息,可以忽略。debug 优先级最低,表示系统出现了调试信息,可以忽略。
为了查看错误和警告级别的日志信息,你可以使用以下命令:

  1. grep "^\[[0-9]\{1,3\}\]" /var/log/messages | grep -E "error|warning"

这条命令会查找 /var/log/messages 文件中以数字范围为前缀的行,并筛选出包含 error 或 warning 字符串的行。
你也可以使用 grep 命令的 -i 选项来忽略大小写,例如:

  1. grep -i "error|warning" /var/log/messages

这条命令会查找 /var/log/messages 文件中包含 error 或 warning 字符串的行,不区分大小写。
你还可以使用 awk 命令来格式化输出,例如:

  1. awk '/error|warning/ {print $1 " " $2 " " $3 " " $4 " " $5 " " $6 " " $7 " " $8}' /var/log/messages

这条命令会查找 /var/log/messages 文件中包含 error 或 warning 字符串的行,并按照指定的格式输出。