journalctl 实施查询 systemd 日志
部分可用选项
-f持续(following)显示日志输出
-n仅显示最后 N 条日志
-k,--dmesg显示内核相关消息
-b显示启动信息
-u,--unit筛选特定 UNIT
__UID,__PID,__SYSTEMD_UNIT筛选特定 UID, PID 或 UNIT
-p <priority>筛选消息优先级- -p err 显示到 error 级别
--since,--until限制日志时间范围--since yesterday从昨天起--until 15:00:00到 15 点为止
-e直接跳转到日志末尾
systemd-journal 日志持久化
- 没有
/var/log/journal目录时存放在/run/log/journal
vim /etc/systemd/journald.conf
- 添加配置项以持久化存储
Storage=persistent
- 其他可用配置项
Storage=auto- 目录
/var/log/journal存在时写入对应路径 Storage=volatile- 写入到
/run/log/journal目录
mkdir -p /var/log/journal && \ chown root:systemd-journal /var/log/journal && \ chmod 2755 /var/log/journal
systemctl restart systemd-journal-flush
ls -al /var/log/journal
rsyslogd 用于持久化处理系统日志的守护进程
配置文件位置
/etc/rsyslog.conf
/etc/rsyslog.d/*
logrotate 日志文件管理,如定期轮换、压缩和删除旧的日志文件
配置文件位置
/etc/logrotate.conf
/etc/logrotate.d/
定时执行
/etc/cron.daily/logrotate
手动轮换
logrotate -f /etc/logrotate.conf- 全部执行
logrotate -f /etc/logrotate.d/nginx- 执行特定软件配置
systemd 配置 journal, rsyslog 和 logrotate 管理系统日志
journal负责短时间内实时查询日志,rsyslog或syslog-ng负责持久化日志存储,logrotate负责日志存储轮询
apt install rsyslog logrotate
mkdir -p /etc/systemd/journald.conf.d /etc/rsyslog.d /var/log/journal
vim /etc/systemd/journald.conf.d/99-custom.conf
MaxLevelStore=info自身仅记录到 info 级别
ForwardToSyslog=yes, MaxLevelSyslog=debug转发日志到 syslog
vim /etc/rsyslog.conf
module(load="imuxsock") 依赖 journal 中的 ForwardToSyslog=Yes
SysSock.RateLimit.Interval="30" SysSock.RateLimit.Burst="1000"防范日志爆破- 与
RateLimit=1000, RateLimitIntervalSec=30s相对应
module(load="imjournal") 读取 journal 数据库,比使用 imuxsock 时慢
- 只有在需要结构化数据时才必须使用 imjournal,否则可以直接用 imuxsock 替换 imjournal
-/log/to/path代表异步写入,优化性能
*.emerg :omusrmsg:*将所有 emergency 级别的日志广播给所有已登录用户的终端(如wall命令效果)
vim /etc/logrotate.d/rsyslog
- 测试
rsyslog rsyslogd -N 1
边缘节点通过 syslog-ng 发送 RFC5424 格式日志至远程 alloy
- 以 openwrt 或 alpine 为例
apk add syslog-ngopkg install syslog-ng
- 核心流程
如果无法从 /dev/kern 读取内核日志, 自行调整日志来源
- d_alloy 为 alloy 接口, 如果远程采用 rsyslog 收集日志可自行调整
- d_backup 配置本地备份到
/var/log/backup.log
vim /etc/syslog-ng/syslog-ng.conf
- 采用 RFC5424 日志格式
vim /etc/syslog-ng/syslog-ng.conf
- 采用 RFC5424 日志格式
- 本地备份到
/var/log/backup.log
syslog-ng 收集 openwrt smartdns 日志
vim /etc/syslog-ng/conf.d/smartdns.conf
syslog-ng 收集 alpine etcd json 格式日志
vim /etc/syslog-ng/conf.d/etcd.conf
- Author:白鸟3
- URL:https://blog.kun2peng.top/operation/linux_log
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
