CentOS 7 常用查看日志命令
1、系统日志

/var/log/messages:系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一。
/var/log/secure:与安全相关的日志信息,如登录、sudo操作等。
/var/log/maillog:与邮件相关的日志信息。
/var/log/cron:与定时任务相关的日志信息。
/var/log/boot.log:守护进程启动和停止相关的日志消息。
2、查看日志的方法

cat:用于查看整个日志文件内容,例如cat /var/log/messages。
less:分页查看日志文件,可以方便地浏览大文件,例如less /var/log/messages。
tail:查看文件末尾部分的内容,通常用于查看最新的日志条目,例如tail n 20 /var/log/messages(显示最后20行)。
grep:筛选包含特定关键词的日志行,例如grep "error" /var/log/messages。
journalctl:用于查看由systemd管理的日志,支持多种过滤和搜索功能,例如journalctl u httpd.service(查看httpd服务的日志)。
日志管理工具 journalctl

1、基本使用
查看所有日志:journalctl。
查看内核日志:journalctl k。
查看系统本次启动的日志:journalctl b。
查看上一次启动的日志:需更改设置以启用永久存储,然后使用journalctl b 1。
查看指定时间的日志:使用since和until选项,例如journalctl since "20171030 18:10:30"。
2、按服务过滤日志
查看特定服务的日志:journalctl u <服务名>.service,例如journalctl u httpd.service。
按进程ID过滤日志:journalctl _PID=<进程ID>。
按用户或群组ID过滤日志:journalctl _UID=<用户ID>或journalctl _GID=<群组ID>。
3、高级用法
实时滚动显示最新日志:journalctl f。
合并显示多个服务的日志:journalctl u nginx.service u phpfpm.service since today。
按优先级过滤日志:journalctl p <优先级>,例如journalctl p err(只显示错误级别及以上的日志)。
日志配置与优化
1、持久化存储
创建/var/log/journal目录并重启日志服务:
```bash
sudo mkdir /var/log/journal
sudo chown root:systemdjournal /var/log/journal
sudo chmod 2775 /var/log/journal
sudo systemctl restart systemdjournald.service
```
修改配置文件/etc/systemd/journald.conf,将Storage从auto改为persistent,然后重启日志服务。
2、日志数据清理
按大小清理日志:journalctl vacuumsize=1G。
按时间清理日志:journalctl vacuumtime=1d。
3、配置日志容量限制
编辑/etc/systemd/journald.conf文件,设置以下参数:
SystemMaxUse:指定日志所能使用的最高持久存储容量。
SystemKeepFree:指定在添加新条目时需要保留的剩余空间。
SystemMaxFileSize:控制单一日志文件大小。
RuntimeMaxUse:指定易失性存储中的最大可用磁盘容量。
RuntimeKeepFree:指定向易失性存储内写入数据时为其它应用保留的空间量。
RuntimeMaxFileSize:指定单一日志文件可占用的最大易失性存储容量。
相关问答 FAQs
1、如何查看CentOS 7中某个服务的日志?
可以使用journalctl u <服务名>.service命令来查看某个服务的日志,要查看httpd服务的日志,可以执行journalctl u httpd.service。
2、如何在CentOS 7中持久化保存日志?
可以通过以下步骤实现日志的持久化保存:
1. 创建/var/log/journal目录并设置权限:
```bash
sudo mkdir /var/log/journal
sudo chown root:systemdjournal /var/log/journal
sudo chmod 2775 /var/log/journal
```
2. 修改/etc/systemd/journald.conf配置文件,将Storage从auto改为persistent。
3. 重启systemdjournald服务:sudo systemctl restart systemdjournald.service。
