我将来自不同主机的日志集中到中央日志服务器中,systemd-journal-remote
链接至软件。所有日志都远程存储在每个主机的一个文件中。现在我想在所有这些日志中搜索,以防journalctl
发生错误。
假设我想在所有四个日志文件中查找错误消息。我这样做:
journalctl -r --file=remote-10.0.0.1.journal --file=remote-10.0.0.2.journal --file=remote-10.0.0.3.journal --file=remote-10.0.0.4.journal --grep=<my_error_msg>
一切正常。问题是由于启动信息使输出杂乱,输出几乎不可读:
-- Boot 9cb37f3f1f0f49c1a6c7aeafdc9ba9bf --
-- Boot 6e509dc14176465c975d564b1ac114cd --
-- Boot 9cb37f3f1f0f49c1a6c7aeafdc9ba9bf --
-- Boot 6e509dc14176465c975d564b1ac114cd --
-- Boot 9cb37f3f1f0f49c1a6c7aeafdc9ba9bf --
-- Boot 6e509dc14176465c975d564b1ac114cd --
-- Boot 9cb37f3f1f0f49c1a6c7aeafdc9ba9bf --
Dec 21 15:34:01 webserver-01 CRON[444444]: (root) CMD ((/var/www/heartbeat.sh "<my_error_msg>"))
-- Boot 6e509dc14176465c975d564b1ac114cd --
Dec 21 15:51:08 webserver-02 CRON[232323]: (root) CMD ((/var/www/heartbeat.sh "<my_error_msg>"))
-- Boot 9cb37f3f1f0f49c1a6c7aeafdc9ba9bf --
-- Boot 6e509dc14176465c975d564b1ac114cd --
-- Boot 9cb37f3f1f0f49c1a6c7aeafdc9ba9bf --
我猜想这样做的原因是所有主机的所有启动都受到尊重。我之所以这么认为是因为如果我添加该选项,输出将保持不变--boot all
。如果我知道想要将日志条目减少到“自上次启动以来”,我会添加该-b 0
选项。问题:它给了我最新的boot–即最后启动的主机。
有没有办法获取上次启动后所有主机的条目?或者有谁有更好的办法在多个日志中搜索 <text_string>?
答案1
我明白了。要删除启动消息,可以使用-q
或--quiet
属性。
请注意,即使它删除了混乱的启动消息并解决了非上次启动场景的问题,-m
或--merge
属性也无法与选项一起使用:--boot
journalctl -r --merge --grep=<search_string> --boot 0
Using --boot or --list-boots with --merge is not supported