2024年4月25日发(作者:)

linux rsyslog 发日志

rsyslog 是 Linux 系统上常用的日志系统,它能够收集、处理和转发系统

日志,并且支持多种协议和格式。在 rsyslog 中,日志消息被解析并组织成结

构化的数据,以便于搜索、分析和可视化。

以下是一些关于如何在 Linux 上使用 rsyslog 发送日志的步骤:

1. 安装 rsyslog

在大多数 Linux 发行版中,rsyslog 已经预装了。如果没有预装,可以使用包

管理器安装它。例如,在 Ubuntu/Debian 上可以使用以下命令安装 rsyslog:

```sql

sudo apt-get update

sudo apt-get install rsyslog

```

2. 配置 rsyslog

rsyslog 的主要配置文件是 `/etc/`。这个文件定义了日志的输入、

输出和过滤规则。你可以使用文本编辑器打开这个文件并对其进行配置。

在配置文件中,你可以定义日志的输入源、日志格式、日志存储位置以及日志过

滤规则。例如,以下配置将 syslog 守护进程作为输入源,将日志写入到

/var/log/syslog 文件中,并使用默认的日志格式:

```bash

# /etc/

# Global configuration

global {

# 设置默认日志格式

# 使用默认的日志格式,输出内容如下:

# [local0]:33654 Aug 29 14:29:11 server01 /var/log/syslog

defaultNetstreamDriver gtls # use gtls driver for encrypted syslog

defaultNetstreamDriverParms "sec=隐私级别=TLSv1.2" # TLS security

setup

}

# Rules for logging messages to syslog

# 在这里定义日志过滤规则,将符合规则的日志消息写入到 syslog 文件中

1

if $fromhost-ip (ip("X.X.X.X") and port(514)) then { # 从指定 IP 地址发送

的日志消息被转发到 syslog 文件

action(type="omfwd" target="127.0.0.1" port="514" protocol="udp")

# 将日志消息转发到本地主机上的 syslogd 服务

} else if $fromhost-ip (ip("Y.Y.Y.Y") and port(514)) then { # 从另一个指定 IP

地址发送的日志消息被转发到 syslog 文件

action(type="omfwd" target="127.0.0.1" port="514" protocol="udp")

# 将日志消息转发到本地主机上的 syslogd 服务

} else { # 其他情况下的日志消息不会被转发到 syslog 文件

}

```

2