本文介绍如何为 BlobFuse 配置日志记录行为。 默认情况下,BlobFuse 将警告记录到系统日志。 但是,可以将日志路由到本地目录、更改日志中显示的信息类型,或者通过更改默认配置完全禁用日志。
配置参数
下表描述了每个参数及其默认设置。
| 参数 | Description | 默认值 |
|---|---|---|
| 日志类型 | 系统使用的记录器类型 | Syslog |
| 日志级别 | 日志的严重性级别 | 仅警告 |
| 文件路径 | 用于存储日志文件的路径 | $HOME/.blobfuse2/blobfuse2.log |
日志级别参数设置
下表描述了每个日志严重性级别。 选择最适合工作负荷要求的级别。
| 日志级别 | Description |
|---|---|
log_off |
禁用日志记录。 |
log_crit |
记录阻止 BlobFuse 启动的关键问题。 |
log_err |
记录导致错误返回到调用方的问题。 例如,如果写入数据后尝试关闭文件句柄,但由于某种原因 BlobFuse 未能正确连接到 Azure 存储以提交数据,则此事件会在 log_err 级别被记录(并导致试图关闭文件句柄的进程失败)。 |
log-warning |
记录 BlobFuse 遇到的问题,这些问题可能不是实际错误,但仍有价值记录。 例如,如果网络作失败但可以重试,则会在自动重试开始之前记录警告。 |
log_info |
记录所有与将 Blob 数据上传或下载到 Azure 存储相关的操作。 此级别还记录了一些其他操作,如果遇到问题,可能会提供有用的信息。 |
log-trace |
记录对 BlobFuse 的所有调用的跟踪语句。 此级别非常详细,包含有用的调试信息,如行号、方法名称、方法输入和返回值。 仅当还查看源代码时,此级别才很有用。 |
log-debug |
记录额外的有用调试信息。 |
配置日志设置
以下示例将这些值设置为命令的参数 mount 。
sudo blobfuse2 mount ~/mycontainer --log-level=log_err --file-path=$HOME/.mycustomdirectory/blobfuse2.log
以下示例演示如何在 BlobFuse 配置文件中显示这些设置:
logging:
type: base
level: log_err
file-path: $HOME/.mycustomdirectory/blobfuse2.log
注释
可以在装载容器后修改日志记录行为,方法是更改配置文件中的设置并保存文件。 如果仅使用命令行参数来设置行为,则必须首先卸载容器,然后使用该命令以及正确的参数再次 mount 装载它。
在 Syslog 中查找日志
默认情况下,系统将日志写入 /var/log/syslog 文件。 如果选择使用 syslog 作为输出位置,则可以使用 grep 命令查找日志,并将字符串 blobfuse 作为参数传递。 以下示例演示如何在 syslog 中查找 BlobFuse 日志。
grep blobfuse /var/log/syslog
将日志路由到本地目录
将日志路由到文件以外的 /var/log/syslog 位置的最简单方法是将输出位置设置为配置文件中的输出位置 base 。
但是,如果要保持输出位置设置为 syslog,可以改为将 /var/log/syslog 文件中的日志重定向到单独的文件位置。 以下示例介绍如何执行此操作:
注释
这些命令所需的文件是 BlobFuse 包的一部分。 还可以在源代码中的 systemd 目录下找到它们。
copy setup/11-blobfuse2.conf to /etc/rsyslog.d/
copy setup/blobfuse2-logrotate to /etc/logrotate.d/
service rsyslog restart
启用 LibFuse 日志记录
LibFuse 库在装载命令中提供了一个选项 -d ,用于在控制台上启用详细日志记录。 此选项在库中启用调试日志,并输出在主机上进行的所有系统调用及其返回值。 或者,可以通过指定配置文件参数 libfuse.fuse-trace: true来启用 LibFuse 日志记录。
启用 SDK 日志记录
如果日志指示问题来自存储 SDK,请启用 SDK 日志记录以获取 REST 调用的详细日志。 此信息有助于诊断 BlobFuse、SDK 或服务中是否存在问题。 若要启用 SDK 日志记录,请指定配置文件参数 azstorage.sdk-trace: true。