暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Linux日志管理-Rsyslog简介

IT那活儿 2025-03-31
27

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!


基本概述

rsyslog是一个强大的日志管理工具,用于收集、处理和转发来自各种来源的日志消息。

它是syslog协议的扩展和实现,提供了比传统syslog更多的功能和更高的性能。Rsyslog支持多种日志输入源,包括本地文件系统、网络协议(如UDP、TCP)、系统日志接口等,并可以将日志消息输出到本地文件系统、远程服务器、数据库等多种目的地。


安装rsyslog

在Linux中安装rsyslog的步骤如下:

2.1 安装rsyslog

基于Debian的系统:sudo apt install rsyslog

对于基于Red Hat的系统:sudo yum install rsyslog

2.2 启动和启用rsyslog服务

启动rsyslog服务:sudo systemctl start rsyslog(或sudo service rsyslog start,取决于系统)。

启用rsyslog服务以便在系统启动时自动启动:sudo systemctl enable rsyslog(或sudo chkconfig rsyslog on,取决于系统)。

2.3 检查rsyslog服务状态

使用命令sudo systemctl status rsyslog来检查rsyslog服务的运行状态。


配置rsyslog

rsyslog的主配置文件通常位于/etc/rsyslog.conf,子配置位于/etc/rsyslog.d/目录下的配置文件。rsyslog的配置文件由多个部分组成,包括模块加载、全局指令、模板定义、规则设置等。

3.1 模块加载

在配置文件的开始部分,通常会加载所需的输入、输出和解析模块。

例如:

3.2 全局指令

全局指令用于设置rsyslog服务的基本操作参数和行为。

例如:

3.3 模板定义

模板用于定义日志消息的格式。可以创建自定义模板来满足特定的日志格式需求。

1)模板定义语法
  • name:模板的名称。

  • type:模板的类型(string、list、subtree、plugin)。

  • String:对于string类型的模板,这里定义了消息的格式字符串(模板内容)。

上面的模板日志打印格式为:

  • RFC3339格式的时间戳 发送日志消息的主机名 产生日志的程序或进程(标签) 日志消息的实际内容 换行符。

2)模板内容定义

在定义模板内容时,可以使用多种属性来指定日志消息中应包含的信息。

以下是一些常用的属性及其含义:

  • %property%

    属性替换符用于从日志消息中提取特定信息,并将其插入到格式字符串中。

  • %timestamp%

    日志消息的时间戳。

  • %HOSTNAME%

    产生日志消息的主机名。

  • %syslogtag%

    日志消息的标签,通常与产生日志的程序或进程相关。

  • %msg%

    日志消息的正文内容。

  • %fromhost%

    如果日志消息是从远程主机转发的,则显示远程主机的主机名。

  • %programname%

    产生日志消息的程序名。

  • %syslogfacility%

    日志消息的设施(facility)代码,用于标识日志消息的来源类型(如auth、cron等)。

  • %syslogfacility-text%

    日志消息的设施文本描述。

  • %syslogseverity%

    日志消息的优先级(severity)代码,用于标识日志消息的严重程度(如debug、info、warning等)。

  • %syslogseverity-text%

    日志消息的优先级文本描述。


规则设置

规则部分定义了日志消息的处理方式。每条规则都由一个选择器和一个或多个动作组成。选择器用于匹配特定的日志消息,而动作则定义了当消息匹配时应该执行的操作。

4.1 rsyslog日志类型

Rsyslog支持多种日志类型,这些类型用于区分不同类型的日志消息。以下是一些常见的日志类型:

日志类型

描述

auth

安全和认证相关的消息,如登录尝试等。

authpriv

私有的安全和认证相关消息,如SSH、FTP等服务的登录验证信息。

cron

与系统定时任务(如crontab)相关的消息。

daemon

与守护进程相关的消息,守护进程是在后台运行的进程。

kern

内核产生的消息,如内核崩溃、硬件相关的事件等。

lpr

打印服务产生的消息。

mail

邮件服务产生的消息,如邮件发送、接收等。

mark

Rsyslog服务内部的时间标识消息。

news

与新闻服务器相关的消息。

syslog

Rsyslog服务自身产生的消息。

user

用户等级类别的消息,如用户程序产生的日志。

uucp

与UUCP(Unix-to-Unix Copy Program)相关的消息,UUCP是一种早期的Unix系统间数据传输协议。

local0-local7

本地使用的预留服务,用户可以根据自己的需求自定义这些日志类型。

4.2 rsyslog日志等级

日志等级

数字代号

描述

emerg

0

内核崩溃等严重情况,系统不可用。

alert

1

需要立刻修改的信息,如系统严重损坏。

crit

2

非常严重的状况,阻止整个系统或软件正常工作。

err

3

错误信息,阻止某个功能或模块正常工作。

warning

4

警告信息,表示可能出现问题但系统仍能正常工作。

notice

5

稍微需要注意的信息,表示正常但重要的条件。

info

6

一般信息的日志,最常用,表示系统正常运行的信息。

debug

7

调试信息,包含最多的日志信息,主要用于开发人员调试。

4.3 使用示例

rsyslog还提供了许多其他配置选项,如日志轮转、过滤、远程转发等。这些选项可以通过编辑配置文件来实现。

例如:

  • 要实现日志轮转,可以使用logrotate工具与rsyslog配合使用。

  • 要实现日志过滤,可以在规则中使用条件语句来匹配特定的日志消息。

  • 要实现远程转发,可以配置rsyslog将日志消息发送到远程服务器。


END


本文作者:李易明(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论