答案是掌握journalctl和文件型日志查看方法,优先使用journalctl分析系统日志,结合grep、awk等工具筛选,并通过logrotate和集中式方案实现自动化管理。

在CentOS系统里查看日志,核心思路就是找到对的工具去读对的文件。最直接的方法,你可以用
journalctl
systemd
/var/log/messages
/var/log/secure
cat
less
tail -f
要深入理解并有效查看CentOS的系统日志,我们需要掌握两类主要方法:基于
systemd-journald
journalctl
首先,对于现代CentOS(如CentOS 7/8及更高版本),
systemd
journalctl
systemd-journald
基本查看:
journalctl
less
journalctl | less
查看特定服务日志: 如果你想查看某个特定服务的日志,比如
sshd
nginx
journalctl -u sshd.service
journalctl -u sshd
实时追踪日志: 类似于
tail -f
journalctl -f
按时间范围查看: 这是
journalctl
-S
--since
-U
--until
journalctl -S "2023-10-26 10:00:00" -U "2023-10-26 10:30:00"
journalctl -S "yesterday"
journalctl -S "1 hour ago"
查看特定启动会话的日志: 系统每次启动都会有一个独立的会话ID。你可以先用
journalctl --list-boots
journalctl -b [boot_id]
journalctl -b -1
其次,对于那些不完全由
systemd-journald
/var/log/
通用文件查看命令:
cat /var/log/messages
less /var/log/secure
tail -f /var/log/nginx/access.log
head /var/log/dmesg
结合grep
grep
grep "error" /var/log/messages
tail -f /var/log/nginx/error.log | grep "failed"
我的经验是,对于系统级事件和服务日志,
journalctl
tail -f
在CentOS系统中,绝大多数日志文件都集中在
/var/log/
常见的日志文件及其用途包括:
/var/log/messages
/var/log/secure
sudo
/var/log/boot.log
/var/log/cron
cron
/var/log/maillog
/var/log/dmesg
/var/log/httpd/
/var/log/nginx/
access.log
error.log
/var/log/yum.log
yum
dnf
/var/log/audit/audit.log
auditd
至于优先查看哪些日志,这真的取决于你遇到的具体问题。没有一成不变的“优先级”列表,更多的是一种基于问题上下文的判断。
/var/log/messages
journalctl
/var/log/secure
/var/log/httpd/error.log
/var/log/nginx/error.log
/var/log/cron
/var/log/boot.log
dmesg
我的经验是,很多时候我会先有个大致的猜测,然后直奔对应的日志文件。如果没找到线索,再扩大范围,通过
journalctl
/var/log/messages
面对海量的日志数据,如果只是简单地
cat
less
首先,
journalctl
journalctl -p err
journalctl -p warning..err
emerg
alert
crit
err
warning
notice
info
debug
-U
_PID=
_UID=
journalctl _PID=1234
journalctl _COMM=sshd
journalctl -o json
journalctl -o short-iso
grep
journalctl
grep
journalctl -u httpd -S "yesterday" | grep "404"
httpd
其次,对于传统的文件型日志,
grep
grep -E "error|fail|warning" /var/log/messages
grep -P "\[\d{4}-\d{2}-\d{2}.*?ERROR\]" /var/log/myapp.loggrep -C 5 "specific_error" /var/log/myapp.log
grep -B 3 "specific_error" /var/log/myapp.log
grep -A 2 "specific_error" /var/log/myapp.log
grep -v "info" /var/log/messages
awk
sed
awk
sed
awk
cat /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr我的实践中,通常会先用
journalctl
tail -f
grep
awk
tail -f /var/log/nginx/access.log
grep
awk
手动查看日志对于排查即时问题非常有效,但对于长期监控、预防性维护和大规模系统管理来说,自动化是必不可少的。在CentOS环境下,我们有多种方法来实现日志的自动化监控和管理,从而减轻人工负担,提高系统可靠性。
首先,
logrotate
logrotate
logrotate
/etc/logrotate.conf
/etc/logrotate.d/
/var/log/nginx/*.log {
daily
missingok
rotate 5
compress
delaycompress
notifempty
create 0640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}这个配置表示Nginx的日志每天轮转,保留5个旧日志,压缩,等等。
postrotate
其次,对于更复杂的环境,特别是多台服务器,我们需要集中式日志管理方案。
rsyslog
最后,日志监控工具可以帮助我们主动发现问题。
node_exporter
grok_exporter
我的经验是,
logrotate
以上就是CentOS日志文件如何查看_CentOS系统日志查看与分析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号