Azure Linux 基于 systemd 构建,并使用 systemd 日志作为其主日志记录系统。 内核、系统服务和应用程序的日志通过收集并编制索引 journalctl,从而提供系统活动的统一可查询视图。 Azure Linux 附带用于监视文件系统、磁盘、内存、进程、服务和网络的标准 Linux 工具集。
本文介绍如何通过系统日志查看系统日志、查找传统应用程序日志文件,以及使用标准实用工具监视 Azure Linux 系统上的系统运行状况和性能。
Note
Azure Linux 4.0 现在位于 preview 中,严格限制为评估和测试目的。 它不适合生产用途。
先决条件
- 可以使用 shell 访问进行身份验证的 Azure Linux 系统。
- 具有
sudo特权的用户帐户。 某些日志和审核事件需要提升的权限才能读取。
使用 systemd 日志查看系统日志
systemd journal 是 Azure Linux 上的中央日志记录系统。
journalctl使用命令从内核、系统服务和应用程序查询和筛选日志条目。
查看所有日志条目
使用以下命令查看日志收集的每个日志条目:
journalctl
该命令将在寻呼器中打开日记,以便滚动浏览从最旧到最新的条目。
查看特定服务的日志
使用以下命令仅查看特定服务发出的日志条目。 替换为 <SERVICE> 服务名称,例如 sshd 或 systemd-networkd:
journalctl -u <SERVICE>
例如,若要查看 SSH 服务日志,请运行:
journalctl -u sshd
实时跟踪日志
使用以下命令跟踪新写入的日志条目,类似于 tail -f:
journalctl -f
使用 Ctrl+C 停止关注日志。
按优先级筛选日志
通过将该优先级传递给 journalctl,仅显示具有给定严重级别或更高级别的条目。 例如,若要仅显示错误级别条目及更高条目,请运行以下命令:
journalctl -p err
有效的优先级范围为 emerg(最严重)到 debug(最轻微)。
Note
当该目录存在时,systemd 日志会将日志持久存储在 /var/log/journal/ 下。 如果 /var/log/journal/ 缺少日志数据,则日志数据仅保留在内存中,并在重新启动时丢失。
journalctl 与系统计时器集成,以便进行自动日志记录。
查看传统日志文件
许多应用程序和服务还会将传统日志文件写入 /var/log/。 下表列出了 Azure Linux 虚拟机上的常见位置(VM):
| 路径 | Purpose |
|---|---|
/var/log/messages |
内核和系统服务中的常规系统消息。 |
/var/log/secure |
身份验证和 sudo 事件。 |
/var/log/dmesg |
来自最新启动的内核消息。 |
/var/log/httpd/ |
安装 httpd 时的 Apache HTTP 服务器日志 |
/var/log/mysql/ |
安装这些软件包后生成的 MySQL 或 MariaDB 日志。 |
使用以下命令实时监视传统日志文件。 将路径替换为要遵循的日志文件:
sudo tail -f /var/log/messages
查看内核环缓冲区消息
使用以下命令直接查看内核环缓冲区消息:
sudo dmesg
监视系统运行状况和性能
Azure Linux 包括用于监视文件系统、内存、进程、服务和网络的标准 Linux 实用工具集。
监视文件系统和磁盘
使用以下命令检查磁盘空间、阻止设备和文件系统状态:
-
df -h:以易读单位显示已挂载文件系统的磁盘使用情况。 -
du -sh <DIRECTORY>:显示目录的总磁盘使用情况。 -
lsblk:以树状视图列出块设备及其关系。 -
blkid:显示每个块设备的文件系统类型和 UUID。 -
tune2fs:检查或修改ext2、ext3或ext4文件系统的参数。 -
fsck.ext4:检查并修复ext4文件系统。
监视内存和进程
使用以下命令检查内存使用情况、CPU 使用率和正在运行的进程:
-
free -h:以易于阅读的单位显示内存和交换空间使用情况。 -
top:提供 CPU、内存和进程活动的实时视图。 -
iostat:报告 CPU 和磁盘 I/O 统计信息。 -
vmstat:以固定间隔报告内存、CPU 和 I/O 统计信息。 -
sar:收集和报告历史 CPU、内存、磁盘和网络使用情况。sar由sysstat包提供。
监视服务和系统运行状况
使用以下命令检查服务状态和整体系统运行状况:
-
systemctl status <SERVICE>:显示服务是否在启动时加载、处于活动状态和启用,以及最近的日志条目。 -
systemd-analyze:分析系统启动性能,包括每个单元花费的时间。 -
uptime:显示系统运行的时间以及当前负载平均值。
监视网络
使用以下命令检查侦听端口和活动网络连接:
-
ss:列出活动套接字、侦听端口和已建立的连接。ss是netstat的现代替代方案。 -
netstat:用于列出网络连接的旧版工具,适用于ss不可用时,或在需要其特定输出格式时。
审计和轮转日志
Azure Linux 包括用于审核安全相关事件和管理日志文件增长的额外工具:
-
auditd:收集系统调用、文件访问和安全事件的审核记录。 -
ausearch:查询由auditd生成的审核日志记录。 -
aureport:从审核日志记录生成摘要报告。 -
logrotate:根据配置的保留策略轮换、压缩和删除日志文件。
相关内容
若要详细了解 Azure Linux 系统管理,请参阅 Get Azure Linux 系统管理入门。