如何通过systemd-journal-gatewayd API使用since和until过滤日志?
通过systemd-journal-gatewayd API按时间过滤日志
虽然官方文档仅提及基于cursor的Range头部语法,但实际上systemd-journal-gatewayd支持通过Range头部直接指定since和until参数实现时间过滤,语法和journalctl的--since/--until完全兼容:
核心语法
使用Range头部的时间过滤格式如下:
Range: entries=since:"<时间表达式>"[;until:"<时间表达式>"]
也可以先指定until再指定since,顺序不影响效果。
支持的时间表达式类型
- 绝对时间:采用ISO 8601格式,例如
2024-05-20T14:30:00、2024-05-20 - 相对时间:和
journalctl的语法一致,例如1h ago、yesterday、30min ago、now
实际请求示例
仅过滤指定时间之后的日志
GET /entries HTTP/1.1 Host: your-gatewayd-host:19531 Range: entries=since:"2024-05-20T00:00:00"
过滤时间范围内的日志
GET /entries HTTP/1.1 Host: your-gatewayd-host:19531 Range: entries=since:"1h ago";until:"now"
补充说明
该语法在官方文档中未明确提及,但从request_parse_range_time的代码实现可以确认,它完全复用了journalctl的时间解析逻辑,所以你可以直接使用熟悉的时间表达式来实现日志的时间范围过滤。
内容的提问来源于stack exchange,提问作者Ynv
相关产品推荐
相关产品推荐

