systemd の status の結果で、ログもうちょっと多く見たい
takuya@:mysql$ systemctl status nginx
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2018-07-23 13:52:28 JST; 41min ago
Docs: man:nginx(8)
Main PID: 15612 (nginx)
Tasks: 10 (limit: 4915)
Memory: 26.1M
CPU: 1.534s
CGroup: /system.slice/nginx.service
├─15612 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
├─15613 nginx: worker process
├─15619 nginx: worker process
└─15621 nginx: cache manager process
7月 23 13:52:28 acid systemd[1]: Starting A high performance web server and a reverse proxy server...
7月 23 13:52:28 acid systemd[1]: Started A high performance web server and a reverse proxy server.
## ここをもっと見たい
status で、末尾に表示されるログは最新のプロセス起動後のログだけなので、過去の再起動時のプロセスもあわせて見たいと思いますよね。
journalctl -u で見れます。
journalctl -u nginx.service
または service を省略しても見られます。
journalctl -u nginx
tailf / tail -f 的なことがやりたい
tailf / tail -f みたいにログをフォローして表示したい
journalctl -f
これが便利。/var/log/ を探さなくていいんです。楽
その他のオプション
今日のログを見たい --since today をつければ見れる。
takuya@:nginx$ journalctl -u nginx --since today -- Logs begin at Tue 2018-05-29 01:08:01 JST, end at Mon 2018-07-23 14:36:01 JST. -- 7月 23 13:51:53 acid systemd[1]: Stopping A high performance web server and a reverse proxy server... 7月 23 13:51:53 acid systemd[1]: Stopped A high performance web server and a reverse proxy server. 7月 23 13:52:28 acid systemd[1]: Starting A high performance web server and a reverse proxy server... 7月 23 13:52:28 acid systemd[1]: Started A high performance web server and a reverse proxy server.
date で解釈できるものなら何でも行けそう
journalctl -u nginx --since 2018-06-01 journalctl -u nginx --since yesterday journalctl -u nginx --since '3 days ago' journalctl -u nginx --since '3 hours ago'
since と until を組み合わせて期間
since と似たようなものに until があります。
since / until と組み合わせて、ログの表示期間を指定することができる。
json でくれ
-o json-pretty をつければ json でみれるぜ
journalctl -u nginx --since 'today' -o json-pretty
{
"__CURSOR" : "s=0997617705f94f34ae01266fa219a576;i=550fb9;b=2bf63364741441b1a80057285897e9b8;m=9ae801170e;t=571a3677f43ab;x=294ec4728d5abe08",
"__REALTIME_TIMESTAMP" : "1532321513554859",
"__MONOTONIC_TIMESTAMP" : "665317349134",
"_BOOT_ID" : "2bf63364741441b1a80057285897e9b8",
"_MACHINE_ID" : "19458862819a493f879c4a7d4730c653",
"_HOSTNAME" : "acid",
"PRIORITY" : "6",
"SYSLOG_FACILITY" : "3",
"SYSLOG_IDENTIFIER" : "systemd",
"_UID" : "0",
"_GID" : "0",
"_TRANSPORT" : "journal",
"_CAP_EFFECTIVE" : "3fffffffff",
"CODE_FILE" : "../src/core/unit.c",
"CODE_LINE" : "1493",
"CODE_FUNCTION" : "unit_status_log_starting_stopping_reloading",
"_PID" : "1",
"_COMM" : "systemd",
"_EXE" : "/lib/systemd/systemd",
"_CMDLINE" : "/sbin/init",
"_SYSTEMD_CGROUP" : "/init.scope",
"_SYSTEMD_UNIT" : "init.scope",
"_SYSTEMD_SLICE" : "-.slice",
"UNIT" : "nginx.service",
"MESSAGE_ID" : "de5b426a63be47a7b6ac3eaac82e2f6f",
"MESSAGE" : "Stopping A high performance web server and a reverse proxy server...",
"_SOURCE_REALTIME_TIMESTAMP" : "1532321513554828"
}
他のフィルタ方法
その他にも
_PID=8088 として プロセスIDごとで見たり
_UID=108 として UID ごとで見たり
--no-pager でページャーを無効にしたり
でも、これってgrep である程度できるので特に実験はしない。
日付の絞り込みはgrep では苦手な分野なので重宝しそう。
また、grep ができないことや日付以外は jq を使えば条件書けるし工夫次第では便利だと思う。