Ubuntu 22.04 安装 rsyslog 8.2112.0 指南
Ubuntu 22.04 安装 rsyslog 8.2112.0 全流程实录:发行版仓库/Adiscon PPA(上游 8.2608.0)/离线 deb 三方案实测,含配置文件布局、systemd 单元解读、514 端口启用与收发验证、版本锁定与卸载清理,回显逐行实测。
Ubuntu 22.04 安装 rsyslog 8.2112.0 指南
目标:在 Ubuntu 22.04 服务器上完成 rsyslog 的安装、验证与日常管理,覆盖发行版仓库安装、Adiscon 官方 PPA 升级到上游最新版、离线 deb 安装三种方案,以及 systemd 托管、514 端口启用、版本锁定与卸载清理。全部命令与回显在 Ubuntu 22.04.4 LTS 实机逐条实测。
一、环境信息
本文全部操作在以下环境实测,回显均取自真实执行结果:
- 操作系统:Ubuntu 22.04.4 LTS(x86_64),主机名
ops - 实测时间:2026-10-20
- rsyslog 版本:系统预装 8.2112.0-2ubuntu2.5(jammy-updates/main)
- systemd 版本:Ubuntu 22.04 自带(
/lib/systemd/system/rsyslog.service单元由 rsyslog 包提供) - 涉及路径:
/etc/rsyslog.conf、/etc/rsyslog.d/、/lib/systemd/system/rsyslog.service、/var/spool/rsyslog/、/etc/logrotate.d/rsyslog - 软件源:cn.archive.ubuntu.com(jammy / jammy-updates / jammy-security)+ security.ubuntu.com
💡 说明:Ubuntu 22.04 桌面版与服务器版默认已预装并启用 rsyslog——它是发行版日志体系的组成部分。因此本文的「安装」在多数机器上是「确认 + 补装」:先确认预装状态,再按需选择升级到上游最新版(PPA 方案)。软件定位与选型背景见《rsyslog 8.2608.0 介绍与选型指南》。
二、前置条件
安装前先确认三件事:系统版本、是否已预装、apt 源可达。三条命令与实测回显如下。
确认系统版本与架构:
cat /etc/os-release | head -2
uname -m
实测回显:
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
x86_64
确认当前 rsyslog 安装状态(已预装时 dpkg -l 第二列应为 ii):
dpkg -l rsyslog 2>/dev/null | tail -1
实测回显:
ii rsyslog 8.2112.0-2ubuntu2.5 amd64 reliable system and kernel logging daemon
⚠️ 注意:如果这一步显示
rc(已删除但配置残留)或无输出,说明机器没有可用的 rsyslog,按第四章方案 A 直接安装即可;显示ii则安装章可以跳过,直接进入版本选型判断要不要升级。
确认 apt 源中 rsyslog 的候选版本:
apt-cache policy rsyslog
实测回显:
rsyslog:
已安装:8.2112.0-2ubuntu2.5
候选: 8.2112.0-2ubuntu2.5
版本列表:
*** 8.2112.0-2ubuntu2.5 500
500 http://cn.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
100 /var/lib/dpkg/status
8.2112.0-2ubuntu2 500
500 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
候选 一行就是要装到的版本;本机候选与已安装一致,说明系统补丁是最新的。
三、版本选型说明
rsyslog 的版本选择有两个坐标系:发行版仓库版本与上游最新稳定版,两者差距在 Ubuntu 22.04 上相当明显(2026-10-20 实查):
| 版本来源 | 版本号 | 发布/维护状态 | 获取方式 |
|---|---|---|---|
| Ubuntu jammy 仓库 | 8.2112.0-2ubuntu2.5 | 2021.12 功能基线,Canonical 持续回移植安全补丁(已迭代 5 个补丁号) | apt-get install rsyslog |
| 上游最新稳定版 | 8.2608.0 | 2026-08-18 发布(GitHub Release v8.2608.0) | 方案 B 的 Adiscon PPA |
| Adiscon PPA 实供版本 | 8.2608.0-0adiscon1jammy2 | 与上游最新版同源,打包适配 jammy | 方案 B |
关键差异与选型建议:
- 默认选发行版仓库版(8.2112.0):与 Ubuntu 的 systemd、logrotate、AppArmor 配置深度集成,安全更新自动到达,
apt升级不会引入行为突变。syslog daemon 属于系统底座,除非明确需要上游新特性,不建议主动换版本; - 需要新特性再上 PPA:rsyslog v8 的 RainerScript、模块在 8.2112 与 8.2608 之间语法兼容,主要差异在性能优化、新模块与缺陷修复。若要用 omkafka 新参数、更新的问题修复,PPA 一步到位(实测
apt-cache policy显示 PPA 可直接提供 8.2608.0); - 不要源码编译:rsyslog 依赖 libestr/libfastjson/liblogging 等一组基础库,源码编译需要自建整套依赖且失去 apt 的安全更新通道;PPA 已覆盖「用上最新版」的需求,编译场景只剩定制裁剪(本文不展开);
- 上游版本节奏与完整对比数据见《rsyslog 8.2608.0 介绍与选型指南》第七章。
四、方案 A:发行版仓库在线安装(推荐)
这是 Ubuntu 的默认路径:一个 apt-get install 命令,包管理器自动处理依赖、systemd 单元注册与开机自启。apt 还会自动安装两个运行时依赖库 libestr0(字符串处理)与 libfastjson4(JSON 解析),它们是 rsyslog 解析能力的基础库。
执行安装:
apt-get install -y rsyslog
本机实测回显(已预装场景,如实呈现):
rsyslog 已经是最新版 (8.2112.0-2ubuntu2.5)。
rsyslog 已设置为手动安装。
下列软件包是自动安装的并且现在不需要了:
libqrencode4 qrencode
使用'apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 219 个软件包未被升级。
💡 说明:Ubuntu 22.04 出厂即预装 rsyslog,所以实测回显是「已经是最新版、0 个新安装」——这是真实且常见的回显。若你的机器是最小化安装的系统没有预装,同一条命令会走真实的下载与解包流程,回显末行形如「新安装了 N 个软件包」(N 视既有依赖而定,通常为 1-3 个:rsyslog + libestr0 + libfastjson4),后续验证步骤完全相同。
安装完成后,包管理器已经完成三件事:rsyslogd 主程序就位(/usr/sbin/rsyslogd)、systemd 单元注册(/lib/systemd/system/rsyslog.service)、默认规则与轮转配置写入。包内文件清单可用 dpkg -L rsyslog 核对,实测关键输出:
/etc/rsyslog.conf
/etc/rsyslog.d
/etc/logrotate.d/rsyslog
/lib/systemd/system/dmesg.service
/lib/systemd/system/rsyslog.service
/usr/sbin/rsyslogd
/var/spool/rsyslog
其中 /var/spool/rsyslog 是队列缓冲目录(磁盘队列的工作区),/etc/logrotate.d/rsyslog 是随包安装的日志轮转规则(第九章实测它与 rsyslog 的联动)。
五、方案 B:Adiscon 官方 PPA 安装上游最新版
Adiscon(rsyslog 商业支持公司)在 Launchpad 维护 ppa:adiscon/v8-stable,把上游最新稳定版打包适配各 Ubuntu 版本。需要上游新特性时用这个方案。以下全程实测,实测完成后已把 PPA 移除还原(本章末尾给出还原命令)。
添加 PPA(add-apt-repository 会自动注册源、导入签名密钥并刷新索引):
add-apt-repository -y ppa:adiscon/v8-stable
实测回显(节选):
Repository: 'deb https://ppa.launchpadcontent.net/adiscon/v8-stable/ubuntu/ jammy main'
Description:
Contains the latest RSyslog V8-Stable packages and dependencies.
More info: https://launchpad.net/~adiscon/+archive/ubuntu/v8-stable
Adding repository.
Adding deb entry to /etc/apt/sources.list.d/adiscon-ubuntu-v8-stable-jammy.list
Adding disabled deb-src entry to /etc/apt/sources.list.d/adiscon-ubuntu-v8-stable-jammy.list
Adding key to /etc/apt/trusted.gpg.d/adiscon-ubuntu-v8-stable.gpg with fingerprint E6373CEF14AB1E84033628FEB9EFD12FBD347BD0
刷新索引后查看版本策略,确认 PPA 已提供上游最新版:
apt-get update
apt-cache policy rsyslog
实测回显:
rsyslog:
已安装:8.2112.0-2ubuntu2.5
候选: 8.2608.0-0adiscon1jammy2
版本列表:
8.2608.0-0adiscon1jammy2 500
500 https://ppa.launchpadcontent.net/adiscon/v8-stable/ubuntu jammy/main amd64 Packages
*** 8.2112.0-2ubuntu2.5 500
500 http://cn.archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages
100 /var/lib/dpkg/status
8.2112.0-2ubuntu2 500
500 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 Packages
此时 候选 已自动切到 PPA 的 8.2608.0-0adiscon1jammy2。执行升级安装:
apt-get install -y rsyslog
安装后用 rsyslogd -v 确认版本横幅(版本字符串会变为 8.2608.0,配置文件路径与 PID 文件路径不变)。如需固定在某个版本而不是跟随 PPA 升级,用「包名=版本」精确安装:
apt-get install -y rsyslog=8.2608.0-0adiscon1jammy2
⚠️ 注意:PPA 升级会替换系统 syslog daemon,升级后务必执行
systemctl status rsyslog确认active (running),并logger发一条测试消息验证落盘(命令见第九章)。生产操作建议先在一台低风险机器验证。
还原为发行版仓库版(实测后已执行,确保系统回到 Canonical 支持的版本与源状态):
add-apt-repository -r -y ppa:adiscon/v8-stable
apt-get update
实测回显(节选):
Disabling deb entry in /etc/apt/sources.list.d/adiscon-ubuntu-v8-stable-jammy.list
Removing disabled deb entry from /etc/apt/sources.list.d/adiscon-ubuntu-v8-stable-jammy.list
Removing disabled deb-src entry from /etc/apt/sources.list.d/adiscon-ubuntu-v8-stable-jammy.list
还原后 apt-cache policy rsyslog 的候选应回到 8.2112.0-2ubuntu2.5(本机还原后实测已回到该值)。若已经从 PPA 装了 8.2608.0,还原源后用 apt-get install -y rsyslog=8.2112.0-2ubuntu2.5 显式降回发行版版本。
六、方案 C:离线 deb 包安装(断网机器)
内网隔离机器无法 apt-get install 时,在一台同版本的联网机器上用 apt-get download 把 deb 拷贝过去安装。apt-get download 只下载包本身(不含依赖),rsyslog 主包的依赖 libestr0、libfastjson4 在标准 Ubuntu 22.04 上通常已存在;若是极简环境,用 apt-get download libestr0 libfastjson4 一并下载。
下载离线包(在联网机器执行):
apt-get download rsyslog
实测回显:
已下载 497 kB,耗时 1秒 (439 kB/s)
确认包元数据(版本、架构是否与目标机匹配):
ls -la rsyslog_*.deb
dpkg -I rsyslog_8.2112.0-2ubuntu2.5_amd64.deb | head -14
实测回显:
-rw-r--r-- 1 root root 496916 9月 21 19:29 rsyslog_8.2112.0-2ubuntu2.5_amd64.deb
新格式的 Debian 软件包,格式版本 2.0。
大小 496916 字节:主控包=4637 字节。
115 字节, 4 行 conffiles
1379 字节, 29 行 control
3916 字节, 51 行 md5sums
5237 字节, 143 行 * postinst #!/bin/sh
2143 字节, 60 行 * postrm #!/bin/sh
856 字节, 28 行 * preinst #!/bin/sh
693 字节, 19 行 * prerm #!/bin/sh
32 字节, 1 行 triggers
Package: rsyslog
Version: 8.2112.0-2ubuntu2.5
Architecture: amd64
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
把 deb 拷贝到目标机后安装并修复依赖(目标机执行,实测回显与在线安装一致):
dpkg -i rsyslog_8.2112.0-2ubuntu2.5_amd64.deb
apt-get install -f -y
⚠️ 注意:
dpkg -i不校验版本仓库来源,升级已运行的 rsyslog 时 dpkg 会直接替换二进制;旧进程仍在内存中运行,需要systemctl restart rsyslog让新版本生效。离线批量分发建议把 deb 收进内网软件源(dpkg-scanpackages建 repo),比逐台dpkg -i更可控。
七、多方案对比与选择建议
| 维度 | 方案 A:发行版仓库 | 方案 B:Adiscon PPA | 方案 C:离线 deb |
|---|---|---|---|
| 可装版本 | 8.2112.0-2ubuntu2.5(随 jammy 补丁更新) | 8.2608.0-0adiscon1jammy2(上游最新) | 与 deb 包一致 |
| 是否需联网 | 是(apt 源) | 是(Launchpad) | 否(拷包安装) |
| 依赖处理 | apt 全自动 | apt 全自动(可能引入新版 libestr/libfastjson) | 手动(apt-get install -f 补齐) |
| 安全更新 | 随 jammy-security 自动 | 随 PPA 手动 apt upgrade | 完全手动 |
| 与系统集成 | 与 systemd/AppArmor/logrotate 默认适配 | 同左(同一套打包脚本) | 同左 |
| 适用场景 | 默认选择、绝大多数服务器 | 需要上游新特性/新修复 | 断网内网、批量预置 |
选择建议一句话:能联网就方案 A,要最新版加 PPA(方案 B),断网才用方案 C。三者装出的配置文件布局与 systemd 托管方式完全一致,后续章节的验证与管理对三种方案通用。
八、配置说明
安装只是起点,rsyslog 的行为由「配置文件布局 + systemd 单元」决定。Ubuntu 的默认布局分三层,改配置只动第三层。
8.1 配置文件布局
主配置 /etc/rsyslog.conf(实测全文如下)只负责装载模块、全局指令与加载 drop-in 目录:
# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html
#
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf
#################
#### MODULES ####
#################
module(load="imuxsock") # provides support for local system logging
#module(load="immark") # provides --MARK-- message capability
# provides UDP syslog reception
#module(load="imudp")
#input(type="imudp" port="514")
# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")
# provides kernel logging support and enable non-kernel klog messages
module(load="imklog" permitnonkernelfacility="on")
###########################
#### GLOBAL DIRECTIVES ####
###########################
#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Filter duplicated messages
$RepeatedMsgReduction on
#
# Set the default permissions for all log files.
#
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
#
# Where to place spool and state files
#
$WorkDirectory /var/spool/rsyslog
#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf
逐项解读关键指令:
module(load="imuxsock"):本地 Unix socket 输入,应用通过logger/syslog(3) 投递日志的入口;module(load="imklog" permitnonkernelfacility="on"):内核日志输入;$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat:文件时间戳用传统格式(Oct 20 13:09:15),注释掉即启用高精度 RFC 3339 时间戳;$RepeatedMsgReduction on:连续重复消息折叠为「last message repeated N times」;$FileOwner syslog / $FileGroup adm / $FileCreateMode 0640:落地日志文件的属主与权限(/var/log/syslog属主 syslog:adm 的来源);$PrivDropToUser syslog / $PrivDropToGroup syslog:启动后降权到 syslog 用户运行,最小权限原则;$WorkDirectory /var/spool/rsyslog:队列与状态文件的工作目录(磁盘队列缓冲区,实测该目录属主 syslog:adm);$IncludeConfig /etc/rsyslog.d/*.conf:按文件名字典序合并 drop-in 目录。
规则都放在 /etc/rsyslog.d/。本机实测目录内容(前两个是其他软件包带来的 drop-in,说明「装包自动注册日志规则」是 Ubuntu 惯例):
20-ufw.conf # ufw 包提供:ufw 日志走 kern facility
49-haproxy.conf # haproxy 包提供:本地 2 号 socket
50-default.conf # rsyslog 包提供:系统默认落盘规则
其中 50-default.conf 是 /var/log/syslog、/var/log/auth.log 等文件的规则来源(实测节选):
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
kern.* -/var/log/kern.log
mail.* -/var/log/mail.log
mail.err /var/log/mail.err
*.emerg :omusrmsg:*
💡 说明:规则里文件路径前的
-表示「不立即 fsync」(性能取舍,宕机可能丢最后几条),auth,authpriv.*用两个 facility 匹配,:omusrmsg:*表示紧急消息广播给所有登录用户。完整语法见《rsyslog 8.2608.0 介绍与选型指南》第三章与后续配置详解篇。
8.2 systemd 单元
单元文件由 rsyslog 包提供,实测内容:
# /lib/systemd/system/rsyslog.service
[Unit]
Description=System Logging Service
Requires=syslog.socket
Documentation=man:rsyslogd(8)
Documentation=man:rsyslog.conf(5)
Documentation=https://www.rsyslog.com/doc/
[Service]
Type=notify
ExecStart=/usr/sbin/rsyslogd -n -iNONE
StandardOutput=null
Restart=on-failure
# Increase the default a bit in order to allow many simultaneous
# files to be monitored, we might need a lot of fds.
LimitNOFILE=16384
[Install]
WantedBy=multi-user.target
Alias=syslog.service
逐项解读:
Requires=syslog.socket:由 systemd 的 socket 单元把/run/systemd/journal/syslog交给 rsyslog(这就是状态输出里TriggeredBy: ● syslog.socket的来源);Type=notify:rsyslogd 就绪后主动通知 systemd,状态才变active (running);ExecStart=/usr/sbin/rsyslogd -n -iNONE:-n前台运行(systemd 托管模式),-iNONE不写 PID 文件(PID 管理交给 systemd);Restart=on-failure:异常退出自动拉起;LimitNOFILE=16384:文件描述符上限调高,为 imfile 大量文件监听与多连接转发预留;Alias=syslog.service:systemctl status syslog与systemctl status rsyslog等价。
九、systemd 托管与验证
配置讲完,本章给出「装好之后如何确认它真的在工作」的完整验证链:服务状态 → 开机自启 → 端口监听 → 端到端收发。
服务状态与自启(实测回显):
systemctl status rsyslog --no-pager -l | head -16
systemctl is-enabled rsyslog
● rsyslog.service - System Logging Service
Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2026-10-19 23:47:23 CST; 13h ago
TriggeredBy: ● syslog.socket
Docs: man:rsyslogd(8)
man:rsyslog.conf(5)
https://www.rsyslog.com/doc/
Main PID: 884 (rsyslogd)
Tasks: 4 (limit: 38359)
Memory: 8.1M
CPU: 1.576s
CGroup: /system.slice/rsyslog.service
└─884 /usr/sbin/rsyslogd -n -iNONE
10月 19 23:47:23 ops systemd[1]: Starting System Logging Service...
10月 19 23:47:23 ops rsyslogd[884]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2112.0]
enabled
要点:Active: active (running) + enabled 即「在跑且开机自启」;Memory: 8.1M 是 rsyslog 典型的常驻内存水位;启动日志证明它已从 systemd 接管 /run/systemd/journal/syslog。
端到端验证——用 logger 发一条带自定义标签的测试消息,验证「投递 → journal → 传统文件」全链路:
logger -t install-check "rsyslog b1 verify $(date +%H%M%S)"
journalctl -t install-check -n 2 --no-pager
grep install-check /var/log/syslog | tail -1
实测回显:
10月 20 13:09:15 ops install-check[1267476]: rsyslog b1 verify 130915
Oct 20 13:09:15 ops install-check: rsyslog b1 verify 130915
两条输出分别是 journal 视角(中文locale 时间格式)与传统文件视角(RFC 3164 时间戳),能同时看到说明 imuxsock 入口与 omfile 落盘都正常。
默认 514 网络端口验证:Ubuntu 默认不监听 514(/etc/rsyslog.conf 里 imudp/imtcp 是注释状态),实测:
ss -lun | grep -w 514
ss -ltn | grep -w 514
echo $?
1
grep 无匹配返回码 1,证明 UDP/TCP 514 均未监听。要把机器变成中心日志服务器,按文件名序在 drop-in 目录加一个新文件(不动主配置,升级不被覆盖):
printf 'module(load="imudp")\ninput(type="imudp" port="514")\n' > /etc/rsyslog.d/70-imudp.conf
rsyslogd -N1
systemctl restart rsyslog
实测回显(语法校验 + 端口确认 + 远端收包验证):
rsyslogd: version 8.2112.0, config validation run (level 1), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.
UNCONN 0 0 0.0.0.0:514 0.0.0.0:*
UNCONN 0 0 [::]:514 [::]:*
再用 logger 的 UDP 模式模拟一台远端设备投递,验证接收链路:
logger -n 127.0.0.1 -P 514 -d "udp514 recv test $(date +%H%M%S)"
grep "udp514 recv test" /var/log/syslog | tail -1
实测回显:
Oct 20 13:12:05 ops root udp514 recv test 131205
消息经 UDP 514 进入、按默认规则落入 /var/log/syslog,网络接收链路闭环。不需要网络接收时,删掉 /etc/rsyslog.d/70-imudp.conf 并重启服务即可恢复。
⚠️ 注意:生产环境开放 514 前先确认防火墙策略(本机若启用 ufw,其 drop-in
20-ufw.conf已在把 ufw 的 kern 日志写/var/log/ufw.log);对公网暴露建议改用 TCP+TLS(imtcp+ rsyslog-openssl/gnutls 子包)而不是明文 UDP。
十、升级、降级与多版本管理
apt 体系下 rsyslog 的版本管理就是三个动作:跟随仓库升级、锁定版本、精确指版本。逐条实测:
强制重装(文件损坏、验证包完整性时用):
apt-get install --reinstall -y rsyslog
实测回显(节选):
正在设置 rsyslog (8.2112.0-2ubuntu2.5) ...
The user `syslog' is already a member of `adm'.
Skipping profile in /etc/apparmor.d/disable: usr.sbin.rsyslogd
正在处理用于 man-db (2.10.2-1) 的触发器 ...
版本锁定(防止 apt upgrade 意外换版本):
apt-mark hold rsyslog
apt-mark showhold
实测回显:
rsyslog 设置为保留。
rsyslog
解除锁定:
apt-mark unhold rsyslog
实测回显:
取消保留 rsyslog 的设置。
精确指版本安装(在仓库拥有的版本之间切换,版本号取自 apt-cache policy 输出):
apt-get install -y rsyslog=8.2112.0-2ubuntu2.5 # 指定发行版版本
跨版本升降级的三条经验:
- 8.2112 ↔ 8.2608(PPA)之间配置语法兼容,切换后必须
rsyslogd -N1校验 + 重启 + logger 验证; - 从 PPA 降回发行版版本前,先移除 PPA 源再
apt-get install rsyslog=8.2112.0-2ubuntu2.5,否则候选版本会一直被 PPA 抢占; - syslog daemon 属于系统关键路径,任何版本变更安排在可回滚窗口内执行,并在变更后立即做第九章的端到端验证。
十一、常见问题(FAQ)
Q1:apt-get install 报「无法获得锁 /var/lib/dpkg/lock-frontend」?
另一个 apt/dpkg 进程在运行(自动更新 timer 常见)。等它结束或用 lsof /var/lib/dpkg/lock-frontend 找到占用进程,不要直接删锁文件。
Q2:安装后 systemctl status rsyslog 显示 inactive?
先看 journalctl -u rsyslog -n 20。最常见原因是配置语法错误导致启动失败——用 rsyslogd -N1 找出错误行,修复后 systemctl restart rsyslog。这正是在启用 514 前先跑 -N1 的原因。
Q3:logger 发的消息 /var/log/syslog 里找不到?
依次检查:systemctl is-active rsyslog 是否 active;消息的 facility.priority 是否被 50-default.conf 的规则排除(如 mail.* 不会进 syslog,走 /var/log/mail.log);$RepeatedMsgReduction on 是否把重复消息折叠了(journalctl 里能看到原文)。
Q4:PPA 添加后 apt-get update 很慢或失败?
Launchpad 在国内访问不稳定,PPA 源地址 ppa.launchpadcontent.net 走代理或改用方案 A/C。本文实测时 PPA 命中正常,但网络环境差异大,失败时不要重试硬拉,直接回退发行版版本。
Q5:升级 rsyslog 后日志文件属主变 root?
检查主配置 $FileOwner syslog/$FileGroup adm 是否被自定义 drop-in 覆盖,并确认 /var/log 下既有文件的属主(chown syslog:adm /var/log/syslog 修复存量文件)。
十二、卸载与清理
卸载分两档:remove 保留配置文件,purge 连配置一起删。syslog daemon 是系统组件,正式卸载前务必确认已有替代日志方案(如 journald 独立承运)。
预演卸载(-s 模拟模式,不实际执行,用于确认影响面,实测回显):
apt-get remove --purge -s rsyslog
下列软件包将被【卸载】:
rsyslog*
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 217 个软件包未被升级。
Purg rsyslog [8.2112.0-2ubuntu2.5]
💡 说明:模拟输出会同时提示
libestr0 libfastjson4等库可被apt autoremove清理——它们是 rsyslog 专用的运行时依赖,卸载 rsyslog 后不再被引用。
正式卸载(真机执行时去掉 -s):
apt-get remove --purge -y rsyslog # 卸载并删除配置
apt-get autoremove -y # 清理不再使用的依赖库
恢复安装:卸载后重新执行第四章 apt-get install -y rsyslog 即可,包自带的默认配置(/etc/rsyslog.conf、50-default.conf)会随重装恢复;purge 之前手工加的 /etc/rsyslog.d/*.conf 不会被包管理器动,需要手工清理。
卸载验证:
dpkg -l rsyslog | tail -1
systemctl is-active rsyslog
purge 后 dpkg -l 无记录或显示 rc 状态,systemctl is-active 返回 inactive/unknown 即卸载完成。
十三、参考链接
- Ubuntu 包页面(jammy):https://packages.ubuntu.com/jammy/rsyslog
- Adiscon PPA(v8-stable):https://launchpad.net/~adiscon/+archive/ubuntu/v8-stable
- 官方下载页(含各发行版打包指引):https://www.rsyslog.com/downloads/
- 官方文档:https://www.rsyslog.com/doc/
- man 手册:
man rsyslogd(8)、man rsyslog.conf(5)(本地apt install rsyslog-doc可获离线 HTML 文档) - 本专栏相关篇目:《rsyslog 8.2608.0 介绍与选型指南》