journald是rsyslog的现代化替代方案,也不是说完全替代,这两个都用
- 结构化二进制日志
临时存放在/var/log/journal中,减少磁盘占用并提高读写效率
- 多来源日志收集
自动收集:
内核日志
用户空间进程的标准输出/错误
systemd Unit的日志
syslog协议的日志
硬件相关事件
- 日志查询工具journalctl
按时间范围查询
按Unit查询
按PID查询、日志优先级查询
实时跟踪日志
- 日志持久化与轮转
默认systemd-journald持久化需要手动创建/var/log/journal、并修改配置文件/etc/systemd/journald.conf
- 安全性控制
日志文件仅允许root和systemd-journal组用户读取
支持日志签名和校验
配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
[Journal]
Storage=persistent
Compress=yes Seal=yes SplitMode=uid
SystemMaxUse=10% SystemKeepFree=15% SystemMaxFileSize=100M RuntimeMaxUse=10%
MaxRetentionSec=1month MaxFileSec=1month
SystemMaxFiles=100
|
journalctl命令用法参数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
| journalctl -f
journalctl -e
journalctl -r
journalctl --full
journalctl --line-prefix
journalctl -n 20
journalctl --reverse -n 20
journalctl --no-pager journalctl --pager-end
journalctl --since "1 hour ago" journalctl --since "2 days ago" journalctl --since "5 minutes ago"
journalctl --since "10:00" --until "11:00" journalctl --since "09:00" --until "now"
journalctl --since today journalctl --since yesterday --until today
journalctl --since "this week" journalctl --since "monday" --until "friday"
journalctl --since "2024-01-01 00:00:00" journalctl --since "2024-01-01" --until "2024-01-02"
journalctl --since "2024-01-01T00:00:00" journalctl --since "2024-01-01T00:00:00Z" journalctl --since "2024-01-01T00:00:00+08:00"
journalctl --since "yesterday 14:30" journalctl --since "2024-01-01 14:30:00" --until "2024-01-01 15:30:00"
journalctl -b
journalctl -b 0 journalctl -b -1 journalctl -b -2 journalctl -b 2
journalctl --list-boots
journalctl -b -1 --since "2024-01-01 10:00"
journalctl -p 0 journalctl -p 1 journalctl -p 2 journalctl -p 3 journalctl -p 4 journalctl -p 5 journalctl -p 6 journalctl -p 7
journalctl -u nginx.service journalctl -u sshd.service journalctl -u docker.service
journalctl -u nginx.service -u php-fpm.service journalctl -u "nginx*"
journalctl -u nginx.service -p err journalctl -u nginx.service --since "1 hour ago"
journalctl -u nginx.service _SYSTEMD_UNIT_STATE=active journalctl -u nginx.service _SYSTEMD_UNIT_STATE=failed
journalctl -o short
journalctl -o verbose
journalctl -o export
|