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

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

相关推荐
用户31187945592182 小时前
Kylin Linux 10 安装 glib2-devel-2.62.5-7.ky10.x86_64.rpm 方法(附安装包)
linux
涛啊涛3 小时前
Centos7非LVM根分区容量不足后扩容,对调硬盘挂载/
linux·磁盘管理
CYRUS_STUDIO1 天前
用 Frida 控制 Android 线程:kill 命令、挂起与恢复全解析
android·linux·逆向
熊猫李1 天前
rootfs-根文件系统详解
linux
dessler1 天前
Hadoop HDFS-高可用集群部署
linux·运维·hdfs
泽泽爱旅行1 天前
awk 语法解析-前端学习
linux·前端
轻松Ai享生活2 天前
5 节课深入学习Linux Cgroups
linux
christine-rr2 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
三坛海会大神5552 天前
LVS与Keepalived详解(二)LVS负载均衡实现实操
linux·负载均衡·lvs
東雪蓮☆2 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs