日 志 文 件 说 明
tail /var/log/messages //系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
tail -f /var/log/secure //与安全相关的日志信息
tail /var/log/maillog //与邮件相关的日志信息
tail /var/log/cron //与定时任务相关的日志信息
tail /var/log/dmesg //和系统启动相关
tail /var/log/audit/audit.log //系统审计日志
tail /var/log/yum.log //yum
tail /var/log/xferlog //和访问FTP服务器相关
tail /var/log/wtmp //当前登录的用户(命令:w)
tail /var/log/btmp //最近登录的用户(命令last)
tail /var/log/lastlog //所有用户的登录情况(命令lastlog )
tail /var/log/boot.log //守护进程启动和停止相关的日志消息
tail /var/log/spooler //与UUCP和news设备相关的日志信息
cat /dev/null > /var/log/boot.log
cat /dev/null > /var/log/btmp
cat /dev/null > /var/log/cron
cat /dev/null > /var/log/dmesg
cat /dev/null > /var/log/firewalld
cat /dev/null > /var/log/grubby
cat /dev/null > /var/log/lastlog
cat /dev/null > /var/log/mail.info
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/messages
cat /dev/null > /var/log/secure
cat /dev/null > /var/log/spooler
cat /dev/null > /var/log/syslog
cat /dev/null > /var/log/tallylog
cat /dev/null > /var/log/wpa_supplicant.log
cat /dev/null > /var/log/wtmp
cat /dev/null > /var/log/yum.log
1、概述
日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息。 Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。 日志的配置文件是/etc/systemd/journald.conf。
2、查看所有日志
[root@CENTOS57 proc]
3、查看内核日志
(不显示应用日志)
[root@CENTOS57 proc]
4、查看系统本次启动的日志
journalctl -b
journalctl -b -0
journalctl -b 0
5、查看上一次启动的日志
需更改设置/etc/systemd/journald.conf文件,以开启永久存储。
[root@CENTOS57 proc]
要查看journald知道的引导,请使用以下–list-boots选项:
[root@centos7 ~]
-1 00d066e11cbee123b5 Thu 2018-02-22 17:01:47 CST—Thu 2018-02-22 17:09:15 CST
0 63f75abbe94c3b5710 Thu 2018-02-22 17:09:10 CST—Thu 2018-02-22 17:10:19 CST
这将为每次启动显示一行。第一列是启动的偏移量,可用于轻松引用启动journalctl。
如果您需要绝对参考,则启动ID位于第二列。您可以通过在结束时列出的两个时间规范来指出引导会话引用的时间。
6、查看指定时间的日志
可以使用–since和–until选项过滤任意时间限制,这些限制分别显示给定时间之前或之后的条目。 可以使用“yesterday”、“today”、“tomorrow”或者“now”等表达。 另外,我们也可以使用“-”或者“+”设定相对值,或者使用“ago”之前的表达。
journalctl --since="2017-10-30 18:10:30"
journalctl --since yesterday
journalctl --since 09:00 --until "1 hour ago"
journalctl --since "20 min ago"
journalctl --since "2017-01-10" --until "2017-01-11 03:00"
journalctl --since"15:15" --until now
7、按服务过滤消息日志
[root@centos7 ~]
-- Logs begin at Thu 2018-02-22 17:01:47 CST, end at Thu 2018-02-22 17:30:01 CST. --
Feb 22 17:29:27 centos7.localdomain systemd[1]: Starting The Apache HTTP Server...
Feb 22 17:29:27 centos7.localdomain httpd[1610]: AH00558: httpd: Could not reliably determine t
Feb 22 17:29:28 centos7.localdomain systemd[1]: Started The Apache HTTP Server.
[root@centos7 ~]
8、按进程、用户或者群组ID
journalctl _PID=8088
journalctl _UID=33 --since today
journalctl _GID=20 --since today
journalctl -n
journalctl -n 20
journalctl -f
journalctl /usr/lib/systemd/systemd
journalctl /usr/bin/bash
journalctl -u nginx.service -f
journalctl -u nginx.service -u php-fpm.service --since today
9、按优先级
使用journalctl配合-p选项显示特定优先级的信息,从而过滤掉优先级较低的信息。
由最高到最低优先级: 0: emerg 1: alert 2: crit 3: err 4: warning 5: notice 6: info 7: debug
只显示错误级别或者更高的日志条目:
[root@centos7 ~]
-- Logs begin at Thu 2018-02-22 17:01:47 CST, end at Thu 2018-02-22 17:40:02 CST. --
Feb 22 17:09:10 centos7.localdomain kernel: sd 0:0:0:0: [sda] Assuming drive cache: write throu
Feb 22 17:09:12 centos7.localdomain kernel: piix4_smbus 0000:00:07.3: SMBus Host Controller not
Feb 22 17:09:15 centos7.localdomain rsyslogd[593]: error during parsing file /etc/rsyslog.conf,
Feb 22 17:09:47 centos7.localdomain pulseaudio[1232]: [alsa-sink-ES1371/1] alsa-sink.c: ALSA wo
Feb 22 17:09:47 centos7.localdomain pulseaudio[1232]: [alsa-sink-ES1371/1] alsa-sink.c: Most li
Feb 22 17:09:47 centos7.localdomain pulseaudio[1232]: [alsa-sink-ES1371/1] alsa-sink.c: We were
Feb 22 17:09:48 centos7.localdomain spice-vdagent[1274]: Cannot access vdagent virtio channel /
lines 1-8/8 (END)
或者[root@centos7 ~]
10、输出格式
[root@CENTOS57 proc]
{ "__CURSOR" : "s=54b7b8c9391c4489a9a206c9123e723b;i=7db;b=b2d84e8bf26a462e9639384e1c0be5cf;m=eddf635;t=5b3a0187d82cb;x=90ce86876890254e", "__REALTIME_TIMESTAMP" : "160
{ "__CURSOR" : "s=54b7b8c9391c4489a9a206c9123e723b;i=7f2;b=b2d84e8bf26a462e9639384e1c0be5cf;m=ee4987b;t=5b3a018842511;x=a984025285f8f913", "__REALTIME_TIMESTAMP" : "160
{ "__CURSOR" : "s=54b7b8c9391c4489a9a206c9123e723b;i=7f3;b=b2d84e8bf26a462e9639384e1c0be5cf;m=ee5a191;t=5b3a018852e27;x=c0c8530ea7133468", "__REALTIME_TIMESTAMP" : "160
#使用json-pretty格式以更好地处理数据结构
[root@CENTOS57 proc]# journalctl -u httpd -o json-pretty
{
"__CURSOR" : "s=54b7b8c9391c4489a9a206c9123e723b;i=7db;b=b2d84e8bf26a462e9639384e1c0be5cf;m=eddf635;t=5b3a0187d82cb;x=90ce86876890254e",
"__REALTIME_TIMESTAMP" : "1604875070571211",
"__MONOTONIC_TIMESTAMP" : "249427509",
"_BOOT_ID" : "b2d84e8bf26a462e9639384e1c0be5cf",
"PRIORITY" : "6",
"_UID" : "0",
"_GID" : "0",
"_MACHINE_ID" : "9e19325de3e04e56b869967ea97e8dae",
"SYSLOG_FACILITY" : "3",
"SYSLOG_IDENTIFIER" : "systemd",
"_TRANSPORT" : "journal",
"_PID" : "1",
"_COMM" : "systemd",
"_EXE" : "/usr/lib/systemd/systemd",
"_CAP_EFFECTIVE" : "1fffffffff",
"_SYSTEMD_CGROUP" : "/",
"CODE_FILE" : "src/core/unit.c",
"CODE_LINE" : "1417",
"CODE_FUNCTION" : "unit_status_log_starting_stopping_reloading",
"MESSAGE_ID" : "7d4958e842da4a758f6c1cdc7b36dcc5",
"_HOSTNAME" : "CENTOS57",
"_CMDLINE" : "/usr/lib/systemd/systemd --switched-root --system --deserialize 21",
"UNIT" : "httpd.service",
"MESSAGE" : "Starting The Apache HTTP Server...",
"_SOURCE_REALTIME_TIMESTAMP" : "1604875070570852"
}
以下为可用于显示的各类格式:
cat: 只显示信息字段本身。
export: 适合传输或备份的二进制格式。
json: 标准JSON,每行一个条目。
json-pretty: JSON格式,适合人类阅读习惯。
json-sse: JSON格式,经过打包以兼容server-sent事件。
short: 默认syslog类输出格式。
short-iso: 默认格式,强调显示ISO 8601挂钟时间戳。
short-monotonic: 默认格式,提供普通时间戳。
short-precise: 默认格式,提供微秒级精度。
verbose: 显示该条目的全部可用journal字段,包括通常被内部隐藏的字段。
11、journal维护
[root@centos7 ~]
Archived and active journals take up 8.0M on disk.
journalctl --vacuum-size=1G
journalctl --vacuum-time=1years
journalctl --vacuum-time=2d
journalctl --vacuum-size=500M
journalctl --no-pager
journalctl --no-full
journalctl --verify
12、启用日志消息的持久存储
要启用日志限制持久性配置,你可以修改journald的配置文件 /etc/systemd/journald.conf 将该Storage=选项设置为“persistent”以启用持久记录。
Storge选项为:
volatile,则日记日志数据将仅存储在内存中,即/run/log/journal中。 persistent,则数据将最好存储在磁盘上,即在/var/log/journal的下方。 auto,类似于“ persistent”,但是如果需要的话不会创建目录/var/log/journal,因此它的存在控制着日志数据的去向。
[root@CENTOS57 proc]
[Journal]
Storage=persistent
默认journalctl的日志都是保存到内存中。要保存到文件,只需创建/var/log/journal目录,重启journald服务即可。
在CentOS 7上,您必须启用日志消息的持久存储:
[root@CENTOS57 proc]
[root@CENTOS57 proc]
[root@CENTOS57 proc]
否则,启动之间将不会保留日志日志消息。
journalctl相关配置
以下条目可用于限定journal体积的膨胀速度:
SystemMaxUse=: 指定journal所能使用的最高持久存储容量。
SystemKeepFree=: 指定journal在添加新条目时需要保留的剩余空间。
SystemMaxFileSize=: 控制单一journal文件大小,符合要求方可被转为持久存储。
RuntimeMaxUse=: 指定易失性存储中的最大可用磁盘容量(/run文件系统之内)。
RuntimeKeepFree=: 指定向易失性存储内写入数据时为其它应用保留的空间量(/run文件系统之内)。
RuntimeMaxFileSize=: 指定单一journal文件可占用的最大易失性存储容量(/run文件系统之内)。
通过设置上述值,大家可以控制journald对服务器空间的消耗及保留方式。
|