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 を使えば条件書けるし工夫次第では便利だと思う。