【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"

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

相关推荐
嵌入式学习和实践2 小时前
虚拟机 Ubuntu 磁盘扩容完全指南:从原理到实践,一步到位
linux·ubuntu·磁盘扩容
陳10302 小时前
Linux:进程间切换与调度
linux·运维·服务器
lcreek2 小时前
Linux 虚拟文件系统的建立与使用全过程解析
linux·虚拟文件系统·vfs
寒秋花开曾相惜3 小时前
(学习笔记)第四章 处理器体系结构
linux·网络·数据结构·笔记·学习
疏星浅月3 小时前
虚拟内存三大核心作用详解
linux·c语言·arm开发·嵌入式硬件
邂逅星河浪漫4 小时前
【银行内网开发-管理端】Vue管理端+Auth后台开发+Nginx配置+Linux部署(详细解析)
linux·javascript·css·vue.js·nginx·html·前后端联调
JJay.4 小时前
Android BLE 稳定连接的关键,不是扫描,而是 GATT 操作队列
android·服务器·前端
SilentSamsara4 小时前
TCP 三次握手:连接建立失败的那些坑
运维·服务器·网络·网络协议·tcp/ip
码农小钻风5 小时前
利用Samba实现局域网跨平台共享文件
linux·samba·共享
LN花开富贵5 小时前
【ROS】鱼香ROS2学习笔记二
linux·笔记·python·学习·嵌入式