【Linux基础】-- 日志系统syslog与logger的使用方法整理

系统日志配置与使用指南

一、syslog 的使用

syslog 是一种标准用于记录程序运行日志信息的协议。以下是一些基本使用方法:

检查 syslogd 进程

确保 syslogd 进程正在运行。可以通过以下命令检查:

sh 复制代码
ps | grep syslogd

如果没有看到 syslogd 进程在运行,可以尝试启动它:

sh 复制代码
/etc/init.d/syslog start

或者在某些系统上:

sh 复制代码
/etc/init.d/log restart

日志目录权限

确保日志目录存在并且具有正确的权限。例如,如果日志存储在 /var/log 目录下,确保该目录存在并且具有写入权限:

sh 复制代码
mkdir -p /var/log
chmod 755 /var/log

二、syslog.conf 的编写

syslog.conf 文件用于配置 syslogd 服务,以定义系统日志消息的记录方式和存储位置。

基本格式

每一行的格式如下:

sh 复制代码
facility.level  destination
  • facility:日志设施,表示消息的来源(例如 auth, cron, daemon, kern, user, mail 等)。
  • level:日志级别,表示消息的重要性(例如 debug, info, notice, warning, err, crit, alert, emerg)。
  • destination:日志消息的目的地,可以是文件、控制台、远程主机等。

常见配置示例

  1. 记录所有消息到 /var/log/messages 文件:

    sh 复制代码
    *.* /var/log/messages
  2. 记录内核消息到 /var/log/kern.log 文件:

    sh 复制代码
    kern.* /var/log/kern.log
  3. 记录认证相关消息到 /var/log/auth.log 文件:

    sh 复制代码
    auth.* /var/log/auth.log
  4. 记录邮件相关消息到 /var/log/mail.log 文件:

    sh 复制代码
    mail.* /var/log/mail.log
  5. 记录 cron 作业相关消息到 /var/log/cron.log 文件:

    sh 复制代码
    cron.* /var/log/cron.log
  6. 记录所有警告级别及以上的消息到控制台(虚拟终端1):

    sh 复制代码
    *.warn /dev/tty1
  7. 将重要的系统消息发送到远程主机:

    sh 复制代码
    *.crit @remote-host
  8. 忽略某些消息:忽略邮件和新闻的 debug 消息:

    sh 复制代码
    mail.none;news.none /var/log/messages

示例配置文件

以下是一个示例 syslog.conf 文件的完整配置:

sh 复制代码
# Log all kernel messages to the console.
kern.*                                                 /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none               /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                             /var/log/auth.log

# Log all the mail messages in one place.
mail.*                                                 /var/log/mail.log

# Log cron stuff.
cron.*                                                 /var/log/cron.log

# Everybody gets emergency messages.
*.emerg                                                *

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                         /var/log/spooler

# Save boot messages also to boot.log
local7.*                                               /var/log/boot.log

配置生效

修改 syslog.conf 文件后,需重新启动 syslogd 服务以使配置生效:

sh 复制代码
/etc/init.d/syslog restart

三、logger 的使用方式

logger 命令是一个用于从命令行发送日志消息到 syslog 的工具。可以通过 -p 选项指定日志消息的 facilitylevel

语法

sh 复制代码
logger -p facility.level "log message"

示例

  1. 将日志消息记录到 auth 设施中,级别为 info

    sh 复制代码
    logger -p auth.info "This is an auth info message"
  2. 将日志消息记录到 daemon 设施中,级别为 warning

    sh 复制代码
    logger -p daemon.warning "This is a daemon warning message"
  3. 将日志消息记录到 local0 设施中,级别为 notice

    sh 复制代码
    logger -p local0.notice "This is a local0 notice message"

常用 facility 类型

  • auth:认证和安全相关的消息
  • cron:定时任务相关的消息
  • daemon:系统守护进程相关的消息
  • kern:内核相关的消息
  • local0local7:本地使用的自定义消息
  • mail:邮件系统相关的消息
  • syslog:syslog 系统相关的消息
  • user:用户级消息
  • uucp:UNIX-to-UNIX Copy Program 相关的消息

常用 level 级别

  • debug:调试级别的消息
  • info:信息级别的消息
  • notice:通知级别的消息
  • warning:警告级别的消息
  • err:错误级别的消息
  • crit:严重错误级别的消息
  • alert:需要立即处理的消息
  • emerg:系统无法使用的紧急消息

完整示例

以下是一个完整的示例,展示如何使用不同的 facilitylevel 记录日志消息:

sh 复制代码
logger -p auth.info "User login successful"
logger -p daemon.warning "Service is using high memory"
logger -p local0.notice "Custom application notice message"

通过使用这些选项,您可以灵活地将日志消息发送到适当的设施和级别,以便更好地分类和管理系统日志。

相关推荐
CodeWithMe17 分钟前
[ Vim ] 常用命令 and 配置
linux·编辑器·vim
DC_BLOG21 分钟前
Linux-GlusterFS进阶分布式卷
linux·运维·服务器·分布式
yourkin66630 分钟前
TCP...
服务器·网络·tcp/ip
cookies_s_s1 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
丁劲犇1 小时前
碳基生物的悲歌-DeepSeek思考实现Linux动态库递归收集工具
linux·递归·deepseek·ldd
文军的烹饪实验室1 小时前
处理器架构、单片机、芯片、光刻机之间的关系
单片机·嵌入式硬件·架构
zhouwu_linux2 小时前
MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。
linux·运维·macos
2401_897930062 小时前
linux系统如何配置host.docker.internal
linux·docker·eureka
诶尔法Alpha2 小时前
Linux上使用dify构建RAG
linux·运维·服务器
Leiditech__2 小时前
人工智能时代电子机器人静电问题及电路设计防范措施
人工智能·嵌入式硬件·机器人·硬件工程