多臺服務器間免密登錄|免密拷貝
Cenos7 搭建Minio集群部署服務器(一)
Cenos7 搭建Minio集群Nginx統一訪問入口|反向動態代理(二)?
Spring Boot 與Minio整合實現文件上傳與下載(三)?
CentOS7的journalctl日志查看方法
MySQL8.xx一主兩從復制安裝與配置
?
1、概述
日志管理工具journalctl是centos7上專有的日志管理工具,該工具是從message這個文件里讀取信息。
Systemd統一管理所有Unit的啟動日志。帶來的好處就是,可以只用journalctl一個命令,查看所有日志(內核日志和應用日志)
日志的配置文件是/etc/systemd/journald.conf
[root@www log]# journalctl -u mysql.service --since="2023-08-15" ?| grep -i error
8月 15 16:17:30 www.yhchange.com mysqld[1754]: 2023-08-15T08:17:30.042500Z 0 [ERROR] [MY-011811] [Server] Can't start server: can't check PID filepath: No such file or directory
8月 15 16:19:02 www.yhchange.com mysqld[1814]: 2023-08-15T08:19:02.630984Z 0 [ERROR] [MY-011811] [Server] Can't start server: can't check PID filepath: No such file or directory
?
?查看某個時間段的日志
[root@www log]#
journalctl -u minio --since "2023-08-14 7:21:48" --until "2023-08-15 16:21:49"
-- Logs begin at 二 2023-08-15 16:14:21 CST, end at 二 2023-08-15 16:29:28 CST. --
8月 15 16:14:29 www.yhchange.com systemd[1]: Starting Minio...
8月 15 16:14:29 www.yhchange.com systemd[1]: Started Minio.
8月 15 16:14:30 www.yhchange.com minio[1142]: WARNING: Detected Linux kernel version older than 4.0.0 release, there are some known potential performance problems with this kernel version. MinIO recommends a minimum of 4.x.x linux kernel version
8月 15 16:14:30 www.yhchange.com minio[1142]: MinIO Object Storage Server
8月 15 16:14:30 www.yhchange.com minio[1142]: Copyright: 2015-2023 MinIO, Inc.
8月 15 16:14:30 www.yhchange.com minio[1142]: License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
8月 15 16:14:30 www.yhchange.com minio[1142]: Version: RELEASE.2023-08-09T23-30-22Z (go1.19.12 linux/amd64)
8月 15 16:14:30 www.yhchange.com minio[1142]: Status: ? ? ? ? 1 Online, 0 Offline.
8月 15 16:14:30 www.yhchange.com minio[1142]: S3-API: http://192.168.1.100:9666
8月 15 16:14:30 www.yhchange.com minio[1142]: Console: http://192.168.1.100:33806
8月 15 16:14:30 www.yhchange.com minio[1142]: Documentation: https://min.io/docs/minio/linux/index.html
8月 15 16:14:30 www.yhchange.com minio[1142]: Warning: The standard parity is set to 0. This can lead to data loss.
lines 1-13/13 (END)
2、查看所有日志
(默認情況下 ,只保存本次啟動的日志)
[root@www log]# journalctl
3、查看內核日志
[root@www log]# journalctl -k
要查看journald知道的引導,請使用以下--list-boots選項:
[root@www log]# journalctl --list-boots? ??
?0 354e33ea430e4af497b8e050b1f5b41e 二 2023-08-15 16:14:21 CST—二 2023-08-15 16:29:28 CST
查看上一次啟動的日志:? ?0為上次啟動的pid
[root@www log]# journalctl -b -0
4、查看指定時間的日志
可以使用--since和--until選項過濾任意時間限制,這些限制分別顯示給定時間之前或之后的條目。
可以使用“yesterday”、“today”、“tomorrow”或者“now”等表達。
另外,我們也可以使用“-”或者“+”設定相對值,或者使用“ago”之前的表達
#"顯示2017年10月30號,18點10分30秒到當前時間之間的所有日志信息" journalctl --since="2022-10-30 18:10:30"#獲取昨天的日志如下: journalctl –since yesterday#獲取某一個時間段到當前時間的前一個小時的日志 journalctl --since 09:00 --until "1 hour ago" #獲取當前時間的前20分鐘的日志 journalctl --since "20 min ago"#獲取某一天到某一個時間段的日志信息 journalctl --since "2023-01-10" --until "2017-01-11 03:00" #獲取15:15到現在的日志 journalctl --since"15:15" --until now
5、按服務過濾消息日志
#查看httpd服務的日志信息
[root@centos7 ~]# journalctl -u mysql.service?
-- 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.
#查看httpd服務當天的運行狀況
[root@centos7 ~]# journalctl -u mysql.service --since today
按進程、用戶或者群組ID?
#通過進程ID實現查詢,需要指定_PID字段。
journalctl _PID=8088
#查看指定用戶的日志
journalctl _UID=33 ?--since today
#查看指定用戶組的日志
journalctl _GID=20 ?--since today
#顯示尾部的最新10行日志
journalctl ?-n
#顯示尾部指定行數的日志
journalctl -n 20
#實時滾動顯示最新日志
journalctl ? -f
#查看指定服務的日志
journalctl ?/usr/lib/systemd/systemd
#查看某個路徑的腳本的日志
journalctl ? ?/usr/bin/bash
#實時滾動顯示某個Unit的最新日志
journalctl ?-u nginx.service ?-f
#合并顯示多個Unit的日志
journalctl ?-u nginx.service ?-u php-fpm.service ?--since today
6、按優先級
使用journalctl配合-p選項顯示特定優先級的信息,從而過濾掉優先級較低的信息。
由最高到最低優先級:
? ? 0: emerg
? ? 1: alert
? ? 2: crit
? ? 3: err
? ? 4: warning
? ? 5: notice
? ? 6: info
? ? 7: debug
只顯示錯誤級別或者更高的日志條目:
[root@centos7 ~]# journalctl -p err -b
-- Logs begin at Thu 2022-02-22 17:01:47 CST, end at Thu 2022-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)
7、輸出格式
#journal能夠以多種格式進行顯示,只須添加-o選項加格式說明即可。
#將journal條目輸出為JSON格式:
[root@CENTOS57 proc]# journalctl -b -u mysql -o json
{ "__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格式以更好地處理數據結構
{
? ? ? ? "__CURSOR" : "s=b7cf8ab5d6f34c478d81ac7a3dc48777;i=803;b=354e33ea430e4af497b8e050b1f5b41e;m=96b326;t=602f1c4a45c1d;x=54f58a57fe011c5f",
? ? ? ? "__REALTIME_TIMESTAMP" : "1692087269743645",
? ? ? ? "__MONOTONIC_TIMESTAMP" : "9876262",
? ? ? ? "_BOOT_ID" : "354e33ea430e4af497b8e050b1f5b41e",
? ? ? ? "PRIORITY" : "6",
? ? ? ? "_UID" : "0",
? ? ? ? "_GID" : "0",
? ? ? ? "_MACHINE_ID" : "9b27343e24254d7fb4c5d0554ff20cb8",
? ? ? ? "_HOSTNAME" : "www.yhchange.com",
? ? ? ? "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" : "1439",
? ? ? ? "CODE_FUNCTION" : "unit_status_log_starting_stopping_reloading",
? ? ? ? "MESSAGE_ID" : "7d4958e842da4a758f6c1cdc7b36dcc5",
? ? ? ? "_CMDLINE" : "/usr/lib/systemd/systemd --switched-root --system --deserialize 22",
? ? ? ? "UNIT" : "minio.service",
? ? ? ? "MESSAGE" : "Starting Minio...",
? ? ? ? "_SOURCE_REALTIME_TIMESTAMP" : "1692087269743136"
}
{
? ? ? ? "__CURSOR" : "s=b7cf8ab5d6f34c478d81ac7a3dc48777;i=809;b=354e33ea430e4af497b8e050b1f5b41e;m=96d8db;t=602f1c4a481d2;x=e6cda0d816d8992b",
? ? ? ? "__REALTIME_TIMESTAMP" : "1692087269753298",
? ? ? ? "__MONOTONIC_TIMESTAMP" : "9885915",
? ? ? ? "_BOOT_ID" : "354e33ea430e4af497b8e050b1f5b41e",
? ? ? ? "PRIORITY" : "6",
? ? ? ? "_UID" : "0",
? ? ? ? "_GID" : "0",
? ? ? ? "_MACHINE_ID" : "9b27343e24254d7fb4c5d0554ff20cb8",
? ? ? ? "_HOSTNAME" : "www.yhchange.com",
? ? ? ? "SYSLOG_FACILITY" : "3",
? ? ? ? "SYSLOG_IDENTIFIER" : "systemd",
? ? ? ? "_TRANSPORT" : "journal",
? ? ? ? "CODE_FILE" : "src/core/job.c",
? ? ? ? "CODE_LINE" : "774",
? ? ? ? "CODE_FUNCTION" : "job_log_status_message",
? ? ? ? "MESSAGE_ID" : "39f53479d3a045ac8e11786248231fbf",
? ? ? ? "RESULT" : "done",
? ? ? ? "_PID" : "1",
? ? ? ? "_COMM" : "systemd",
? ? ? ? "_EXE" : "/usr/lib/systemd/systemd",
? ? ? ? "_CAP_EFFECTIVE" : "1fffffffff",
? ? ? ? "_SYSTEMD_CGROUP" : "/",
? ? ? ? "_CMDLINE" : "/usr/lib/systemd/systemd --switched-root --system --deserialize 22",
? ? ? ? "UNIT" : "minio.service",
? ? ? ? "MESSAGE" : "Started Minio.",
? ? ? ? "_SOURCE_REALTIME_TIMESTAMP" : "1692087269752411"
}
以下為可用于顯示的各類格式:
? ? cat: 只顯示信息字段本身。
? ? export: 適合傳輸或備份的二進制格式。
? ? json: 標準JSON,每行一個條目。
? ? json-pretty: JSON格式,適合人類閱讀習慣。
? ? json-sse: JSON格式,經過打包以兼容server-sent事件。
? ? short: 默認syslog類輸出格式。
? ? short-iso: 默認格式,強調顯示ISO 8601掛鐘時間戳。
? ? short-monotonic: 默認格式,提供普通時間戳。
? ? short-precise: 默認格式,提供微秒級精度。
? ? verbose: 顯示該條目的全部可用journal字段,包括通常被內部隱藏的字段。
#查看當前日志占用磁盤的空間的總大小
[root@centos7 ~]# journalctl --disk-usage?
Archived and active journals take up 8.0M on disk.
#指定日志文件最大空間
journalctl --vacuum-size=1G
#指定日志文件保存多久
journalctl --vacuum-time=1years #1年journalctl --vacuum-time=2d ? ? #2天journalctl --vacuum-size=500M ? #500M
8、啟用日志消息的持久存儲
要啟用日志限制持久性配置,你可以修改journald的配置文件
/etc/systemd/journald.conf
將該Storage=選項設置為“persistent”以啟用持久記錄。
Storge選項為:
volatile,則日記日志數據將僅存儲在內存中,即/run/log/journal中。
persistent,則數據將最好存儲在磁盤上,即在/var/log/journal的下方。
auto,類似于“ persistent”,但是如果需要的話不會創建目錄/var/log/journal,因此它的存在控制著日志數據的去向。
[root@www log]# vim /etc/systemd/journald.conf[Journal] Storage=persistent
默認journalctl的日志都是保存到內存中。要保存到文件,只需創建/var/log/journal目錄,重啟journald服務即可。?
在CentOS 7上,您必須啟用日志消息的持久存儲:
[root@www log]# mkdir /var/log/journal
[root@www log]# systemd-tmpfiles --create --prefix /var/log/journal
[root@www log]#? systemctl restart systemd-journald
否則,啟動之間將不會保留日志日志消息。
journalctl相關配置
以下條目可用于限定journal體積的膨脹速度:
? ? SystemMaxUse=: 指定journal所能使用的最高持久存儲容量。
? ? SystemKeepFree=: 指定journal在添加新條目時需要保留的剩余空間。
? ? SystemMaxFileSize=: 控制單一journal文件大小,符合要求方可被轉為持久存儲。
? ? RuntimeMaxUse=: 指定易失性存儲中的最大可用磁盤容量(/run文件系統之內)。
? ? RuntimeKeepFree=: 指定向易失性存儲內寫入數據時為其它應用保留的空間量(/run文件系統之內)。
? ? RuntimeMaxFileSize=: 指定單一journal文件可占用的最大易失性存儲容量(/run文件系統之內)。
? ? 通過設置上述值,大家可以控制journald對服務器空間的消耗及保留方式。
9、常見日志文件
# tail /var/log/messages ? ? ? ?//系統主日志文件
# tail -20 /var/log/messages
# tail -f /var/log/messages ? ? ? ? //動態查看日志文件的尾部
# tailf /var/log/secure ? ? ? ? ?//認證、安全
# tail /var/log/maillog ? ? ? ? ?//跟郵件postfix相關
# tail /var/log/cron ? ? ? ? ? ?//crond、at進程產生的日志
# tail /var/log/dmesg ? ? ? ? ? ?//和系統啟動相關
# tail /var/log/audit/audit.log ? ? ?//系統審計日志
# tail /var/log/yum.log ? ? ? ? ?//yum
# tail /var/log/mysqld.log ? ? ?//MySQL
# tail /var/log/xferlog ? ? ? ? ? ? //和訪問FTP服務器相關
# tail ?/var/log/wtmp ? ? ? ? ? ? ? ? ? //當前登錄的用戶(命令:w)
# tail ?/var/log/btmp ? ? ? ? ? ? ? //最近登錄的用戶(命令last ? ?)
# tail ?/var/log/lastlog ? ? ? ? ? ? ? ?//所有用戶的登錄情況(命令lastlog )
#清理日志文件
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
如何在CentOS 7下顯示以前啟動時的日志消息
如何在CentOS 7下顯示以前啟動時的日志消息?